java如何访问数据库
使用JDBC连接数据库
JDBC(Java Database Connectivity)是Java标准库提供的数据库访问接口,支持多种关系型数据库。以下是基本操作步骤:
-
加载驱动 根据数据库类型加载对应的JDBC驱动类:
Class.forName("com.mysql.cj.jdbc.Driver"); // MySQL示例 -
建立连接 使用
DriverManager获取连接对象:String url = "jdbc:mysql://localhost:3306/mydb"; String user = "username"; String password = "password"; Connection conn = DriverManager.getConnection(url, user, password); -
执行SQL 创建
Statement或PreparedStatement执行查询:Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM users"); // 参数化查询更安全 PreparedStatement pstmt = conn.prepareStatement("INSERT INTO users VALUES(?,?)"); pstmt.setString(1, "value1"); pstmt.setInt(2, 123); pstmt.executeUpdate(); -
处理结果 遍历
ResultSet获取查询结果:while(rs.next()) { String name = rs.getString("name"); int age = rs.getInt("age"); } -
释放资源 最后关闭所有资源:
rs.close(); stmt.close(); conn.close();
使用连接池管理连接
直接使用JDBC每次新建连接性能较差,推荐使用连接池:
-
配置连接池 以HikariCP为例:
HikariConfig config = new HikariConfig(); config.setJdbcUrl("jdbc:mysql://localhost/mydb"); config.setUsername("user"); config.setPassword("password"); HikariDataSource ds = new HikariDataSource(config); -
获取连接 从连接池获取连接对象:
try (Connection conn = ds.getConnection()) { // 执行数据库操作 } // 自动归还连接
使用ORM框架简化操作
JPA/Hibernate等框架可减少样板代码:
-
实体类映射 使用注解定义实体:
@Entity @Table(name = "users") public class User { @Id private Long id; private String name; // getters/setters } -
JPA操作 通过
EntityManager操作数据库:EntityManager em = // 获取EntityManager em.getTransaction().begin(); User user = new User(); user.setName("Test"); em.persist(user); em.getTransaction().commit(); -
Spring Data JPA 声明接口自动实现CRUD:
public interface UserRepository extends JpaRepository<User, Long> { List<User> findByName(String name); }
注意事项
- 始终使用
try-with-resources或finally块确保资源释放 - 参数化查询防止SQL注入
- 生产环境必须配置连接池
- 事务管理保持数据一致性
- 处理
SQLException异常情况
不同数据库需使用对应驱动:
- MySQL:
com.mysql.cj.jdbc.Driver - PostgreSQL:
org.postgresql.Driver - Oracle:
oracle.jdbc.OracleDriver







