达梦数据库(DM8)是国产数据库的代表产品,具备高性能和高安全性,已在多个关键行业广泛应用。Java 作为主流开发语言,通过 JDBC 访问达梦数据库是常见的开发方式。本报告系统梳理了 Java 操作达梦数据库的完整流程,包括驱动获取、连接测试以及增删改查等基本操作,并结合具体代码示例,为开发人员提供可复用的实践参考。
| 项目 | 配置 |
|---|---|
| 操作系统 | CentOS Linux 7 x86_64 |
| CPU | x86_64 |
| 内存 | 4GB |
| 磁盘 | 40GB |
| 处理器 | 2*2 |
| 数据库版本 | DM8 V8(dm8_20260710_x86_CentOS7_64.zip) |
达梦数据库安装完成后,JDBC 驱动位于安装目录下,路径为:
/home/dmdba/dmdbms/drivers/jdbc/DmJdbcDriver8.jar
普通项目可通过以下方式添加驱动:点击 文件 → 项目结构 → 库,添加 DmJdbc 驱动。
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();
}
}
}
-- 创建学生表
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);
// ---------- 插入数据 ----------
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);
// ---------- 查询所有学生 ----------
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();
// ---------- 更新学生姓名 ----------
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, "张三丰");
// ---------- 删除学生 ----------
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);
本次学习实践完成了达梦 JDBC 驱动的配置与连接验证,并基于 PreparedStatement 实现了完整的 CRUD 操作,验证了数据增删改查的正确性。过程中熟悉了达梦自增列语法、模式管理及资源释放规范,积累了国产数据库的实用经验。后续可进一步研究连接池和 ORM 框架的集成,以提升开发效率和系统性能。
文章
阅读量
获赞
