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();

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

上一篇:ASP.NET MVC5 实现网址伪静态


下一篇:MySQL事务