一直对jdbc spring jdbc jpa等等几个概念感到比较混乱。不知道怎么选择。结合搜索的资料整理的一下知识:
spring+jdbc
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
优势:
可以操作特殊的数据库模式和存储过程
不想通过域模型访问数据库就用jdbcTemplate.低级别的访问,复杂但是强大
比较好调试,发现问题
对操作有100%控制权。没有其他注入或自动生成的代码
劣势
要写很多代码
spring+data+jdbc
理论上是springdata +jdbc的优势结合
至今尚无官方实现。不太活跃
jpa
hibernate mybatis 是具体的实现者
优势
缓存功能
自动创建查询实例
延迟加载等
基础的crud操作简单化
劣势:
通常不太清楚到底发生了什么以及为什么,必须熟悉原理
确保域模型和数据库完全一致
调试困难,比较难发现问题
springdata+jpa
<dependencies>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
</dependency>
<dependencies>
整个底层更加复杂通常问题在hibernate 而不是spring data
参考
http://stackoverflow.com/questions/42470060/spring-data-jdbc-spring-data-jpa-vs-hibernate
https://www.ibm.com/developerworks/cn/opensource/os-cn-spring-jpa/