java 如何获取数据库中的数据
使用JDBC连接数据库
在Java中获取数据库数据通常使用JDBC(Java Database Connectivity)API。需要加载数据库驱动,建立连接,创建Statement或PreparedStatement对象执行SQL查询。
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/dbname", "username", "password");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM table_name");
处理查询结果
通过ResultSet对象遍历获取的数据,使用对应方法获取各列值。ResultSet提供getInt、getString等方法按列名或索引获取数据。
while(rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
System.out.println(id + ", " + name);
}
使用预编译语句
PreparedStatement能防止SQL注入,提高性能。参数用问号占位,通过set方法设置值。
PreparedStatement pstmt = conn.prepareStatement(
"SELECT * FROM users WHERE age > ?");
pstmt.setInt(1, 18);
ResultSet rs = pstmt.executeQuery();
关闭资源
使用完毕后必须关闭ResultSet、Statement和Connection以释放数据库资源。建议使用try-with-resources自动管理。
try (Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql)) {
// 处理结果
} catch (SQLException e) {
e.printStackTrace();
}
使用连接池管理连接
生产环境建议使用连接池如HikariCP、DBCP管理数据库连接,避免频繁创建销毁连接开销。
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost/db");
config.setUsername("user");
config.setPassword("pass");
HikariDataSource ds = new HikariDataSource(config);
Connection conn = ds.getConnection();
使用ORM框架简化操作
JPA、Hibernate等ORM框架可简化数据库操作。通过注解映射Java对象与数据库表,自动生成SQL。
@Entity
@Table(name = "users")
public class User {
@Id
private Long id;
private String name;
// getters & setters
}
EntityManagerFactory emf = Persistence.createEntityManagerFactory("pu");
EntityManager em = emf.createEntityManager();
List<User> users = em.createQuery("SELECT u FROM User u", User.class).getResultList();






