当前位置: 首页 > news >正文

maven项目连接DM数据库和基本sql使用

直接引入Maven依赖
<!-- DM数据库JDBC驱动 -->
<dependency><groupId>com.dameng</groupId><artifactId>DmJdbcDriver18</artifactId><version>8.1.3.140</version>
</dependency>

demo连接代码

public static void main(String[] args) {// 数据库连接信息Connection conn = null;Statement stmt = null;ResultSet rs = null;try {// 加载DM JDBC驱动Class.forName("dm.jdbc.driver.DmDriver");System.out.println("达梦JDBC驱动加载成功");// 连接到DM数据库 后面跟的库表/模式名String url = "jdbc:dm://localhost:5236/UNIONIST";String user = "SYSDBA";String password = "123456";conn = DriverManager.getConnection(url, user, password);System.out.println("数据库连接成功");// 检查数据库元数据DatabaseMetaData metaData = conn.getMetaData();System.out.println("数据库产品: " + metaData.getDatabaseProductName());System.out.println("数据库版本: " + metaData.getDatabaseProductVersion());// 在连接建立后添加System.out.println("连接的数据库: " + metaData.getURL());System.out.println("当前用户: " + metaData.getUserName());System.out.println("当前模式: " + conn.getSchema()); // DM8支持// 检查表是否存在ResultSet tables = metaData.getTables(null, null, "CITY", new String[]{"TABLE"});if (tables.next()) {System.out.println("找到表: " + tables.getString("TABLE_NAME"));} else {System.out.println("未找到CITY表,尝试不区分大小写查找...");// 尝试不区分大小写查找tables = metaData.getTables(null, null, null, new String[]{"TABLE"});while (tables.next()) {String tableName = tables.getString("TABLE_NAME");if ("CITY".equalsIgnoreCase(tableName)) {System.out.println("找到类似表(不区分大小写): " + tableName);}}}tables.close();// 创建Statement用于执行SQL语句stmt = conn.createStatement();// 先执行一个简单测试查询String testSql = "SELECT COUNT(*) AS cnt FROM USER_TABLES";ResultSet testRs = stmt.executeQuery(testSql);if (testRs.next()) {System.out.println("数据库中的表数量: " + testRs.getInt("cnt"));}testRs.close();// 执行查询并获取结果集String sql = "SELECT * FROM TEST.CITY order by region_id desc";System.out.println("执行SQL: " + sql);rs = stmt.executeQuery(sql);System.out.println("查询执行完成");// 获取结果集元数据ResultSetMetaData rsmd = rs.getMetaData();int columnCount = rsmd.getColumnCount();System.out.println("查询返回列数: " + columnCount);for (int i = 1; i <= columnCount; i++) {System.out.println("列 " + i + ": " + rsmd.getColumnName(i) + " (" + rsmd.getColumnTypeName(i) + ")");}// 处理结果集int rowCount = 0;while (rs.next()) {String id = rs.getString("CITY_ID");String name = rs.getString("CITY_NAME");String region = rs.getString("REGION_ID");// 输出城市信息System.out.println("City ID: " + id + ", Name: " + name + ", Region: " + region);rowCount++;}if (rowCount == 0) {System.out.println("查询成功,但没有返回任何数据");// 尝试另一种查询方式System.out.println("尝试查询所有表数据...");String allDataSql = "SELECT * FROM " +"(SELECT TABLE_NAME FROM USER_TABLES WHERE ROWNUM <= 5)";ResultSet allDataRs = stmt.executeQuery(allDataSql);while (allDataRs.next()) {System.out.println("表名: " + allDataRs.getString("TABLE_NAME"));}allDataRs.close();} else {System.out.println("总共查询到 " + rowCount + " 条记录");}} catch (ClassNotFoundException e) {System.err.println("找不到达梦JDBC驱动: " + e.getMessage());e.printStackTrace();} catch (SQLException e) {System.err.println("数据库操作错误: " + e.getMessage());System.err.println("SQL状态: " + e.getSQLState());System.err.println("错误代码: " + e.getErrorCode());e.printStackTrace();} finally {// 关闭资源try {if (rs != null) rs.close();if (stmt != null) stmt.close();if (conn != null) conn.close();System.out.println("数据库连接已关闭");} catch (SQLException e) {e.printStackTrace();}}}

以上的代码救能对数据库进行相关操作了

附件个配置文件的方式

application.properties 方式

# DM数据库连接配置
spring.datasource.url=jdbc:dm://localhost:5236/your_database_name
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=dm.jdbc.driver.DmDriver

application.yml 方式

spring:datasource:url: jdbc:dm://localhost:5236/your_database_name
    username: your_usernamepassword: your_passworddriver-class-name: dm.jdbc.driver.DmDriver

 

 
http://www.rkmt.cn/news/6717.html

相关文章:

  • Inventor Professional 2026.1.1 产品设计与工程制图
  • 叮当计步微信小程序系统
  • fetch-event-source踩坑sse(getReader)后续 IOS全量返回问题
  • 手机上有哪些比较好用的待办事项提醒工具 - 指南
  • 事半功倍是蠢蛋53 tornado接口报错
  • kylin SP2安装mysql 8.0.41
  • SAP采购订单数据获取
  • 能源管理的数字神经:MyEMS如何重塑能效认知
  • ​​普科科技罗氏线圈应用指南:精准掌控电流测量的艺术​​
  • .NET驾驭Word之力:玩转文本与格式
  • 泰克CT-6交流电流探头测量原理
  • wso2~系统端口总结
  • 故障处理:19C RAC改私网IP后重建集群时报网络找不到
  • Flash Attention详解
  • eclipse插件调用保护后的jar包流程
  • 通义上线 FunAudio-ASR,噪声场景幻觉率降 70%;盒智科技推出 AI 口语练习陪伴设备 Lookee 丨日报
  • AI 视频生成网站 Viddo AI 的 SEO 分析和优化建议
  • GPS简单模拟
  • 多个表格汇总到一个表格不同的sheet,vba宏
  • python读取Excel表合并单元格以及清除空格符
  • 创建sshkey并链接git
  • 【QT】使用QT编写一款自己的串口助手
  • alpine安装docker以及docker-compose
  • 运筹学
  • [CF848D] Shake It!
  • 国产化Excel开发组件Spire.XLS教程:使用 Python 设置 Excel 格式,从基础到专业应用
  • c++国外学习视频心得4-opengl
  • 代码随想录算法训练营第一天 | leetcode 704 27 977
  • 【SPIE出版】第五届计算机图形学、人工智能与数据处理国际学术会议
  • 快速边缘块稀疏贝叶斯学习MATLAB实现