达梦常用接口配置ODBC/JDBC

时间:2024-10-05 17:46:15

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包引用失败,所以很多问题都是因为不仔细导致后面排错耗费时间,前面的小×号代表报错。

 达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台