java中如何读取数据库数据
读取数据库数据的方法
在Java中读取数据库数据通常涉及使用JDBC(Java Database Connectivity)API。以下是几种常见的实现方式:
使用原生JDBC连接
-
加载数据库驱动并建立连接
Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/dbname", "username", "password"); -
创建Statement执行查询

Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM table_name"); -
处理结果集
while(rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); // 处理数据... } -
关闭资源

rs.close(); stmt.close(); conn.close();
使用PreparedStatement防止SQL注入
String sql = "SELECT * FROM users WHERE id = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, userId);
ResultSet rs = pstmt.executeQuery();
使用Try-with-resources自动管理资源
Java 7+支持自动关闭资源:
try (Connection conn = DriverManager.getConnection(url, user, pass);
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery()) {
while(rs.next()) {
// 处理结果...
}
}
使用数据库连接池
常用连接池实现如HikariCP:
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/db");
config.setUsername("user");
config.setPassword("pass");
try (HikariDataSource ds = new HikariDataSource(config);
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement()) {
// 执行查询...
}
使用ORM框架(如Hibernate)
Session session = sessionFactory.openSession();
List<User> users = session.createQuery("FROM User", User.class).list();
session.close();
使用Spring JdbcTemplate
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
List<Map<String, Object>> rows = jdbcTemplate.queryForList("SELECT * FROM table");
注意事项
- 始终确保关闭数据库资源以避免内存泄漏
- 使用PreparedStatement而非Statement防止SQL注入
- 考虑使用连接池提高性能
- 大型项目推荐使用ORM框架简化操作
- 处理SQLException异常情况






