java如何取出数据库数据
使用JDBC连接数据库
在Java中通过JDBC(Java Database Connectivity)连接数据库需要加载驱动、建立连接。以MySQL为例,需添加驱动依赖(如mysql-connector-java),示例代码如下:
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/db_name";
String user = "username";
String password = "password";
Connection connection = DriverManager.getConnection(url, user, password);
执行SQL查询
通过Statement或PreparedStatement执行SQL查询。推荐使用预编译的PreparedStatement防止SQL注入:
String sql = "SELECT * FROM table_name WHERE id = ?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(1, 123); // 设置参数
ResultSet resultSet = statement.executeQuery();
处理查询结果
遍历ResultSet获取数据,注意按列名或索引提取对应类型的数据:
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
System.out.println("ID: " + id + ", Name: " + name);
}
关闭资源
操作完成后必须关闭连接、Statement和ResultSet以释放资源:
resultSet.close();
statement.close();
connection.close();
使用连接池优化性能
高并发场景建议使用连接池(如HikariCP、Druid)。以HikariCP为例:
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/db_name");
config.setUsername("username");
config.setPassword("password");
HikariDataSource dataSource = new HikariDataSource(config);
try (Connection connection = dataSource.getConnection()) {
// 执行查询...
}
结合ORM框架简化操作
使用MyBatis或Hibernate等ORM框架可减少样板代码。MyBatis示例:
-
定义Mapper接口:
public interface UserMapper { @Select("SELECT * FROM users WHERE id = #{id}") User getUserById(int id); } -
通过SqlSession调用:
try (SqlSession session = sqlSessionFactory.openSession()) { UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.getUserById(123); }
异常处理
数据库操作需处理SQLException,建议结合try-with-resources确保资源释放:
try (Connection conn = dataSource.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql)) {
// 操作逻辑
} catch (SQLException e) {
e.printStackTrace();
}





