JDBC(Java DataBase Connectivity) 称为Java数据库连接,它是一种用于数据库访问的应用程序API,由一组用Java语言编写的类和接口组成,有了JDBC就可以用同一的语法对多种关系数据库进行访问,而不用担心其数据库操作语言的差异。 有了JDBC,就不必为访问Mysql数据库专门写一个程序,为访问Oracle又专门写一个程序等等。
0 我的开发环境
操作系统:Win10 x64
数据库: 达梦DM8 64-bit
Powerbuilder : 11.5
网上搜了一通,大部分是通过32位的ODBC连接达梦数据库,我折腾了半天也不行,用JDBC一下就行了。
1 JDBC连接设置
1.1 设置Java Classpath
pb11菜单【Tools】-【System Options…】- 【Java】
选择 达梦数据库 安装目录下的jdbc驱动,我的驱动在这里:
E:\RDB\DM\dmdbms\drivers\jdbc\DmJdbcDriver16.jar
检查jvm status,pb11默认会安装jdk1.6的。 设置好后【OK】确定会提示您重启pb
1.2 设置JDBC连接
1 pb11菜单【Tools】-【Database Painter】-【JDB JDBC】
2 新建一个JDBC连接,Connection设置如下:
Profile Name : 自己随便起名
Driver Name : dm.jdbc.driver.DmDriver
URL:jdbc:dm://localhost:5236/BLMA
Login ID:DM8账号
Password:登录密码
说明:localhost:5236 为达梦dm8服务器所在IP和端口
CQYH :为数据库 数据库模式名
3 数据库表的过滤,非必须
2 JDBC连接Demo
2.1 创建一个数据窗口Datawindow:d_guci
随便选一个表:guci
2.2 创建一个PB窗口Window:w_jdbc_demo
窗口上放一个数据窗口控件Datawindow control:dw_1
设置 dataobject : d_guci
2.3 pb代码连接数据库并取数到数据窗口
w_jdbc_demo的open事件代码:
// Profile dm8
SQLCA.DBMS = "JDBC"
SQLCA.LogPass = "dameng5217"
SQLCA.LogId = "BLMA"
SQLCA.AutoCommit = False
SQLCA.DBParm = "Driver='dm.jdbc.driver.DmDriver',URL='jdbc:dm://localhost:5236/BLMA',TableCriteria=',BLMA'"
connect using sqlca;
connect using sqlca;if sqlca.sqlcode <> 0 then MessageBox("错误信息","数据库连接错误" + string(sqlca.sqlcode) + sqlca.SQLErrtext)return
end ifdw_1.settransobject( sqlca)
dw_1.retrieve( )
3 运行Demo
OK 数据获取成功!!!