ODBC和JDBC都是客户端应用程序访问服务器端数据库所需的编程接口。基本上,两者都被称为连接数据库的驱动程序,由RDBMS的供应商提供。
ODBC:开放数据库连接(Open Database Connectivity)是为解决异构数据库间的数据共享而产生的,现已成为WOSA(The Windows Open System Architecture(Windows开放系统体系结构))的主要部分和基于Windows环境的一种数据库访问接口标准。
JDBC:Java数据库连接(Java Database Connectivity)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
综上所述,ODBC的最大优点是能以统一的方式处理所有的数据库。JDBC 在很大程度上是借鉴了ODBC的,从他的基础上发展而来。JDBC 保留了 ODBC 的基本设计特征,因此,熟悉 ODBC 的程序员将发现 JDBC 很容易使用。它们之间最大的区别在于:JDBC 以 Java 风格与优点为基础并进行优化,因此更加易于使用。
ODBC在Linux上的数据源创建:
1.下载unixodbc 官网下载地址:
2.编译安装
#tar -xzvf unixODBC-2.3.
#cd unixODBC-2.3.1
#./configure
#make#make install
查看按照路径
# odbcinst -j
unixODBC 2.3.11
DRIVERS............: /usr/local/etc/
SYSTEM DATA SOURCES: /usr/local/etc/
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /root/.
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
3.编辑配置文件和
# vi /usr/local/etc/
[DM8 ODBC DRIVER]
Description = ODBC DIRVER FOR DM8
DRIVER = /dm8/dbms/bin/
(文件一般在数据库软件安装的bin目录下,记得确认。)
#vi /usr/local/etc/
[dm8]
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = 192.168.1.225
UID = dmhs
PWD = DMHS123456
TCP_PORT = 5236
注意事项:
中的Driver内容一定要与中的达梦驱动定义的节点名称相同,上面已经做标红处理,否则在登陆使用会连接不了数据库。文件中数据库的端口号对应参数是TCP_PORT上面做了加粗标记。
4.到这里ODBC的数据源已配置完毕,登陆、建表测试如下:
ODBC在Windows上的配置数据源:
1.控制面板-管理工具
2.打开ODBC数据源
3. 创建自己需要的DSN(我这里使用的系统DSN)
用户 DSN:添加、删除或配置本机上的数据源,它们只可由当前用户使用;
系统 DSN:添加、删除或配置本机上的数据源,它们可由任何用户使用;
4,配置完毕点击测试,测试数据源,成功即可。
安装windows开发软件Visual Studio 2022,打开服务器资源管理器选择数据连接
选择其他
添加连接
测试连接成功
执行SQL查询
建表测试,T3创建OK
DBeaver使用JDBC连接达梦8数据库配置介绍
工具本地JDK环境大版本保持跟调用数据库的驱动一致如1.6,1.7,1.8我测试环境客户端选择1.8环境。
如下:
启动DBeaver程序配置JDBC连接驱动
设置里添加驱动名称、类名、URL模板、用户和端口
下图是从官方手册截图:
库指定达梦提供的驱动文件jar对应本地JAVA环境的相同版本这里选择1.8
保存之后可以看到驱动里有达梦了
创建连接:
选择刚才新建的达梦驱动,名字可以搜索按照NAME填写内容搜索
填写密码即可,用户名在驱动管理中已经配置
测试连接正常:
数据查询:
建表测试:
ECLIPSE使用JDBC连接数据库建表操作:
import .*;
import ;
import ;public class TEST2 {
public int insert() throws ClassNotFoundException, SQLException {
// driver
("");
// connection
Connection connection = ("jdbc:dm://localhost:5236", "SYSDBA", "SYSDBA");
// sqlstring
String sqlString = " create table t4 as select * from test2";
statement = ();
// int exSta =0;
int exSta =(sqlString);
//release statementX
// while(()) {
// (());
// }
if (statement != null) {
();
}
("over!");
return exSta;
}
public static void main(String[] args) throws SQLException, ClassNotFoundException {
TEST2 l = new TEST2();
();
}
}
JDBC查询操作:
import ;
import ;
import ;
import ;
public class TEST2 {
public int insert() throws ClassNotFoundException, SQLException {
// driver
("");
// connection
Connection connection = ("jdbc:dm://localhost:5236", "SYSDBA", "SYSDBA");
// sqlstring
(" 查询结果如下...");
statement = ();
String sql;
sql = "SELECT * from test2";
ResultSet rs = (sql);
// 展开结果集数据库
while(()){
// 通过字段检索
int PERSONID = ("PERSONID");
String name = ("name");
String phone = ("phone");// 输出数据
("ID: " + PERSONID);
(", 姓名: " + name);
(", 电话: " + phone);}
// while(()) {
// (());
// }
if (statement != null) {
();
}
("over!");
return 0;
}
public static void main(String[] args) throws SQLException, ClassNotFoundException {
TEST2 l = new TEST2();
();
}
}
遇到报错:
问题原因:
环境配置问题,因JAVA版本选择错误,导致java包引用失败,所以很多问题都是因为不仔细导致后面排错耗费时间,前面的小×号代表报错。
达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台