运维开发网

PHP与JDBC的达梦数据库接口配置

运维开发网 https://www.qedev.com 2020-12-04 13:44 出处:51CTO 作者:dd6869744
达梦数据库配置PHP和JDBC的开发接口

PHP与JDBC的达梦数据库接口配置

我们通过不同的开发语言对数据库进行连接、访问及修改,这个时候我们需要编写操作数据库的接口代码,以便不同的环境,不同的需求对数据库进行操作,以此达到相应的目的。接下来就DM PHP和DM JDBC两种语言进行介绍及操作。

一、达梦数据库开发接口DM PHP语言:DM PHP 是在 PHP 开放源码的基础上开发的一个动态扩展库,接口的实现参考了 MySQL 的 PHP 扩展。

配置如下:

1、配置PHP(PDO接口)

由于目前最新版的达梦最高只支持到PHP 7.2版本,这里以7.2为例

连接数据库

date_default_timezone_set("GuoYan/NingBo");

header("Content-type:text/html; Charset=utf-8");

$dm_conf = array(

'host'=> '169.0.0.1:5236', //连接地址及端口

'db'=> 'DBNAME', //数据库名

'db_user' => 'SYSDBA', //用户名

'db_pwd'=> '123456789', //密码

);

$pdo = new PDO("dm:host=".$dm_conf['host'].";dbname=".$dm_conf['db']."",$dm_conf['db_user'],$dm_conf['db_pwd']);

创建表

$sql = 'create table "test"."users"

(

"id" INTEGER identity(1, 1) not null ,

"user_name" VARCHAR(20),

"created_at" DATETIME(0),

"updated_at" TIMESTAMP(0) DEFAULT sysdate,

primary key("id")

)';

$result = $pdo->exec($sql);

插入数据

$sql = "insert into test.users (user_name,created_at,updated_at) values ('李华','2020-07-17 10:06:00','".date('Y-m-d H:i:s')."')";

$result = $pdo->exec($sql);

查询数据

$sql = "select * from test.users;";

$stmt = $pdo->prepare($sql);

if($stmt===false){

var_dump($pdo->errorInfo());die;

}

$rs = $stmt->execute();

if ($rs) {

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {

$row = array_change_key_case($row,CASE_LOWER); //将数组的key转为小写

var_dump($row);

}

}

更新数据

$sql = "update test.users set user_name = '张天' where id = 1";

$result = $pdo->exec($sql);

删除数据

$sql = "delete from test.users where id = 1";

$result = $pdo->exec($sql);

2、配置PHP(面向对象接口)

以7.2为例

连接数据库

$link = dm_connect("localhost", "SYSDBA", "SYSDBA");

if(!$link){

echo dm_error().':'.dm_errormsg();exit();

}

dm_setoption($link,1,12345,1); //设置 dm 连接和语句的相关属性,设置UTF8

创建表

$sql = 'create table "test"."users1"

(

"id" INTEGER identity(1, 1) not null,

"user_name" VARCHAR(20),

"created_at" DATETIME(0),

"updated_at" TIMESTAMP(0) DEFAULT sysdate,

primary key("id")

)';

$result = dm_exec($link,$sql);

插入数据

$sql = "insert into test.users1 (user_name,created_at,updated_at) values ('梦华','2020-07-17 10:06:00','".date('Y-m-d H:i:s')."')";

$result = dm_exec($link,$sql);

查询数据

$sql = "select * from test.users limit 10";

$result = dm_exec($link,$sql);

print " 查询结果:</br><pre>";

while ($line = dm_fetch_array($result)){

print_r($line);

echo '<br>';

}

更新数据

$sql = "update test.users set user_name = '刘风' where id = 1";

$result = dm_exec($link,$sql);

删除数据

$sql = "delete from test.users where id = 1";

$result = dm_exec($link,$sql);

二、达梦数据库开发接口DM JDBC语言:JDBC是一种技术,它是Java的开发者制定的数据库连接技术的简称,是为各种常用数据库提供无缝联接的技术。

JDBC对大对象的操作

JDBC标准为增强对大数据对像的操作,在JDBC 3.0标准中增加了 java.sql.Blob和java.sql.Clob这两个接口。通过这两个接口定义了请多操作大对象的方法。

在ResultSet和CallableStatement对象中调用getBlob()和getClob()方法就可以获取Blob和Clob对象:

Blob blob = rs.getBlob(1);

Clob clob = rs.getClob(2);

Lob对象可以像普通数据类型一样进行参数赋值,在操作PreparedStatement、CallableStatement、ResultSet对像时使用:

PreparedStatement pstmt = conn.prepareStatement(“INSERT INTO bio (image,text))”+”VALUES(?,?)”);

//authorImage is a Blob Object

Pstmt.setBlob(1,authorImage);

//authorBio is a Clob Object

Pstmt.setClob(2,authorBio);

Lob接口可以对Lob对象的内容进行任意修改:

Byte[] val = {0,1,2,3,4};

Blob data = rs.getBlob(“DATA”);

Int numWritten = data.setBytes(1,val); //在指定的位置插入数据

PreparedStatement ps = conn.prepareStatement(“UPDATA datatab SET data = ?”);

Ps.setBlob(“DATA”,data);

Ps.executeUpdata();

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号