结论:CS数据库访问的核心路径是从JDBC入门,逐步掌握连接池如C3P0、DBCP,然后进阶到ORM框架如MyBatis和Hibernate,最后选择Spring Data JPA实现全栈集成。入门用JDBC直连,精通用JPA简化CRUD。技术路径:初级JDBC → 中级连接池+MyBatis → 高级Spring+JPA。
入门:JDBC基础连接
首先,确保你的项目中添加了数据库驱动依赖,例如MySQL的mysql-connector-java。然后编写JDBC代码:Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM users"); while(rs.next()){ System.out.println(rs.getString("name")); } 这是最基本的数据库访问方式。
连接池优化:C3P0使用
C3P0是经典连接池,配置c3p0.properties文件:c3p0.driverClass=com.mysql.jdbc.Driver c3p0.jdbcUrl=jdbc:mysql://localhost:3306/test c3p0.user=root c3p0.password=123456 c3p0.minPoolSize=5 c3p0.maxPoolSize=20 c3p0.initialPoolSize=10。然后通过ComboPooledDataSource dataSource = new ComboPooledDataSource(); 获取连接,提高性能。
MyBatis入门实践
MyBatis配置SqlMapConfig.xml和mapper.xml,接口UserMapper.java:public List
Hibernate全注解开发
Hibernate用@Entity注解实体类:@Entity @Table(name="user") public class User { @Id private int id; @Column private String name; } hbm2ddl.auto=update在hibernate.cfg.xml中自动建表。Session session = sessionFactory.openSession(); User user = session.get(User.class, 1); 纯对象操作。
Spring集成JPA
Spring Boot中application.properties:spring.datasource.url=jdbc:mysql://localhost/test spring.jpa.hibernate.ddl-auto=update。Repository接口:public interface UserRepository extends JpaRepository
性能调优:事务与缓存
使用@Transactional注解管理事务,@Cacheable启用二级缓存。MyBatis中集成Redis:<property name="redis.host" value="127.0.0.1" /> 减少数据库压力。
选择路径建议
小项目用JDBC+连接池,中型用MyBatis,大型企业用Spring Data JPA。路径清晰,从简单到复杂逐步掌握。
FAQ
Q: JDBC和MyBatis哪个适合新手?
A: 新手先学JDBC理解底层,再用MyBatis简化SQL。
Q: 连接池为什么必要?
A: 避免频繁创建连接,节省资源,提高并发。
Q: JPA能完全替换SQL吗?
A: 简单CRUD可以,复杂查询仍需@Query写SQL。
Q: 如何处理数据库迁移?
A: 用Flyway或Liquibase管理脚本。