注册
Java 操作达梦数据库
专栏/技术分享/ 文章详情 /

Java 操作达梦数据库

xixi 2026/09/18 232 0 0
摘要

1. 概述

达梦数据库(DM8)是国产数据库的代表产品,具备高性能和高安全性,已在多个关键行业广泛应用。Java 作为主流开发语言,通过 JDBC 访问达梦数据库是常见的开发方式。本报告系统梳理了 Java 操作达梦数据库的完整流程,包括驱动获取、连接测试以及增删改查等基本操作,并结合具体代码示例,为开发人员提供可复用的实践参考。

2. 操作环境

项目 配置
操作系统 CentOS Linux 7 x86_64
CPU x86_64
内存 4GB
磁盘 40GB
处理器 2*2
数据库版本 DM8 V8(dm8_20260710_x86_CentOS7_64.zip)

3. 获取驱动方式

达梦数据库安装完成后,JDBC 驱动位于安装目录下,路径为:

/home/dmdba/dmdbms/drivers/jdbc/DmJdbcDriver8.jar

4. 工程添加驱动

普通项目可通过以下方式添加驱动:点击 文件 → 项目结构 → 库,添加 DmJdbc 驱动。
image.png
image.png

5. 测试连接

import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Test_conn { // 定义连接 static Connection con = null; // 定义 DM JDBC 驱动串 static String cname = "dm.jdbc.driver.DmDriver"; // 定义 DM URL 连接串 static String url = "jdbc:dm://192.168.218.155:5236"; // 定义连接用户名 static String userid = "SYSDBA"; // 定义连接用户口令 static String pwd = "Dmdba123"; public static void main(String[] args) { try { Class.forName(cname); con = DriverManager.getConnection(url, userid, pwd); con.setAutoCommit(true); System.out.println("[SUCCESS]conn database"); } catch (Exception e) { System.out.println("[FAIL]conn database:" + e.getMessage()); } } public void disConn(Connection con) throws SQLException { if (con != null) { con.close(); } } }

image.png

6. 执行增删改查(CRUD)操作

6.1 创建一张测试表

-- 创建学生表 CREATE TABLE SYSDBA.STUDENT ( ID INT IDENTITY(1,1) PRIMARY KEY, -- 自增主键 NAME VARCHAR(50) NOT NULL, AGE INT ); -- 插入几条初始数据 INSERT INTO SYSDBA.STUDENT(NAME, AGE) VALUES ('张三', 20); INSERT INTO SYSDBA.STUDENT(NAME, AGE) VALUES ('李四', 22);

image.png

6.2 执行增删改查(CRUD)操作

6.2.1 插入数据(Create)

// ---------- 插入数据 ---------- public static void insertStudent(String name, int age) { String sql = "INSERT INTO SYSDBA.STUDENT (NAME, AGE) VALUES (?, ?)"; try (Connection conn = getConnection(); PreparedStatement pstmt = conn.prepareStatement(sql)) { pstmt.setString(1, name); pstmt.setInt(2, age); int rows = pstmt.executeUpdate(); System.out.println("[插入] 成功,影响了 " + rows + " 行。"); } catch (Exception e) { System.err.println("[插入] 失败:" + e.getMessage()); } } insertStudent("王五", 23); insertStudent("赵六", 24);

image.png

6.2.2 查询数据(Read)

// ---------- 查询所有学生 ---------- public static void queryAllStudents() { String sql = "SELECT ID, NAME, AGE FROM SYSDBA.STUDENT"; try (Connection conn = getConnection(); PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery()) { System.out.println("-------- 学生列表 --------"); System.out.println("ID\t姓名\t年龄"); while (rs.next()) { int id = rs.getInt("ID"); String name = rs.getString("NAME"); int age = rs.getInt("AGE"); System.out.println(id + "\t" + name + "\t" + age); } System.out.println("--------------------------"); } catch (Exception e) { System.err.println("[查询] 失败:" + e.getMessage()); } } queryAllStudents();

image.png

6.2.3 更新数据(Update)

// ---------- 更新学生姓名 ---------- public static void updateStudent(int id, String newName) { String sql = "UPDATE SYSDBA.STUDENT SET NAME = ? WHERE ID = ?"; try (Connection conn = getConnection(); PreparedStatement pstmt = conn.prepareStatement(sql)) { pstmt.setString(1, newName); pstmt.setInt(2, id); int rows = pstmt.executeUpdate(); System.out.println("[更新] 成功,影响了 " + rows + " 行。"); } catch (Exception e) { System.err.println("[更新] 失败:" + e.getMessage()); } } updateStudent(1, "张三丰");

image.png

6.2.4 删除数据(Delete)

// ---------- 删除学生 ---------- public static void deleteStudent(int id) { String sql = "DELETE FROM SYSDBA.STUDENT WHERE ID = ?"; try (Connection conn = getConnection(); PreparedStatement pstmt = conn.prepareStatement(sql)) { pstmt.setInt(1, id); int rows = pstmt.executeUpdate(); System.out.println("[删除] 成功,影响了 " + rows + " 行。"); } catch (Exception e) { System.err.println("[删除] 失败:" + e.getMessage()); } } deleteStudent(2);

image.png

7. 总结

本次学习实践完成了达梦 JDBC 驱动的配置与连接验证,并基于 PreparedStatement 实现了完整的 CRUD 操作,验证了数据增删改查的正确性。过程中熟悉了达梦自增列语法、模式管理及资源释放规范,积累了国产数据库的实用经验。后续可进一步研究连接池和 ORM 框架的集成,以提升开发效率和系统性能。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服