上一篇
大家好呀!今天我要和大家分享一个超实用的技术干货——如何用Java连接和操作DB2数据库,最近IBM刚发布了DB2 13.5版本(2025年6月更新),性能提升了30%!🚀 不管你是刚入门的小白还是想复习的老手,这篇指南都能帮到你哦~
在开始写代码前,我们需要准备好"武器库":
db2jcc4.jar
(别下错成老版本啦!)// 先看看我们需要的import清单 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;
// 新写法(自动加载,超方便!) // 从JDBC 4.0开始就不需要Class.forName()啦
String url = "jdbc:db2://服务器IP:50000/数据库名"; // jdbc:db2://192.168.1.100:50000/SAMPLE
String user = "你的账号"; String password = "你的密码"; // 记得用加密存储哦!
try (Connection conn = DriverManager.getConnection(url, user, password)) { System.out.println("连接成功!🎉"); // 这里写业务代码... } catch (SQLException e) { System.err.println("连接失败 😢"); e.printStackTrace(); }
生产环境一定要用连接池!这里推荐HikariCP:
HikariConfig config = new HikariConfig(); config.setJdbcUrl("jdbc:db2://localhost:50000/SAMPLE"); config.setUsername("user"); config.setPassword("password"); config.setMaximumPoolSize(10); // 根据业务调整 try (HikariDataSource ds = new HikariDataSource(config); Connection conn = ds.getConnection()) { // 使用连接... }
String sql = "SELECT * FROM EMPLOYEE WHERE DEPT = ?"; try (PreparedStatement pstmt = conn.prepareStatement(sql)) { pstmt.setString(1, "DEV"); // 防SQL注入! ResultSet rs = pstmt.executeQuery(); while (rs.next()) { System.out.println(rs.getString("NAME") + ": " + rs.getDouble("SALARY")); } }
String insertSQL = "INSERT INTO PRODUCTS (ID, NAME, PRICE) VALUES (?, ?, ?)"; try (PreparedStatement pstmt = conn.prepareStatement(insertSQL)) { pstmt.setInt(1, 1001); pstmt.setString(2, "Java编程指南"); pstmt.setBigDecimal(3, new BigDecimal("99.99")); int affectedRows = pstmt.executeUpdate(); System.out.println("插入了 " + affectedRows + " 行数据 ✏️"); }
conn.setAutoCommit(false); // 关闭自动提交 try { // 执行多个操作... conn.commit(); // 成功则提交 System.out.println("事务提交成功 ✅"); } catch (SQLException e) { conn.rollback(); // 失败回滚 System.out.println("事务回滚 ⚠️"); e.printStackTrace(); } finally { conn.setAutoCommit(true); // 恢复默认 }
PreparedStatement
代替Statement
(重用执行计划)REORG
和RUNSTATS
维护表// 设置fetchSize示例 PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setFetchSize(1000); // 一次取1000条
DB2 13.5新增了这些好功能:
希望这篇指南能帮你少走弯路!如果有问题欢迎留言讨论~记得点赞收藏哦!👍
【2025-07信息参考:IBM官方文档、DB2 13.5发布说明、Java社区最佳实践】
本文由 松采南 于2025-07-31发表在【云服务器提供商】,文中图片由(松采南)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/497075.html
发表评论