当前位置: 首页 > 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.wxhsa.cn/company.asp?id=6646

相关文章:

  • 【中国计算机学会CCF主办】第六届人工智能、大数据与算法国际学术会议(CAIBDA 2026)
  • 图片 - voasem
  • 面试时让你设计一个“朋友圈点赞”功能测试,如何回答才出彩?
  • 企训宝教育培训微信小程序系统
  • Inventor Professional 2026.1.1 产品设计与工程制图
  • 叮当计步微信小程序系统
  • fetch-event-source踩坑sse(getReader)后续 IOS全量返回问题
  • P12508 「ROI 2025 Day2」程序员的日常
  • 手机上有哪些比较好用的待办事项提醒工具 - 指南
  • Redis源码学习 -- 数据类型编码 -- List - -蓝蜗牛
  • 乌班图无法登录桌面,只能终端登录用户。且有网拉不了包(DNS问题)
  • 事半功倍是蠢蛋53 tornado接口报错
  • 完整教程:云手机的技术架构可分为哪些
  • AI提示词遇见精密算法:TimeGuessr如何用数学魔法打造文化游戏新体验
  • Arkime:大规模开源网络分析与数据包捕获系统
  • kylin SP2安装mysql 8.0.41
  • SAP采购订单数据获取
  • get和post如何理解
  • me and my girlfriend WP复盘
  • 顺序表
  • 能源管理的数字神经:MyEMS如何重塑能效认知
  • 开源・数据・能效:MyEMS 如何成为能源管理革新的核心引擎
  • mysql回表,为什么你的查询总是慢半拍?
  • HMCL 3.6.17 Minecraft我的世界启动器
  • 用自带的Nginx为gitlab做白名单
  • XHR/Fetch请求介绍与安全测试
  • 能流新智:MyEMS与开源时代的能源感知
  • ​​普科科技罗氏线圈应用指南:精准掌控电流测量的艺术​​
  • go mod基础
  • go 变量作用域