原文: 最近重构以前写的服务,最大的一个变动是将mybatis切换为spring data jpa,切换的原因很简单,有两点:第一.它是spring的子项目能够和spring boot很好的融合,没有xml文件(关于这一点hibernate似乎也很符合):第二.简单优雅,比如不需要写SQL.对分页有自动化的支持等等,基于以上两点开始了重构之路.在这之前了解了一下hibernate.mybatis和spring data jpa的区别,在这里也简单的记录一下:Hibernate的O/R Mappi
mybatis #与$区别 #{}变量解析到SQL有带引号字符串:如查询条件变量如:select * from user where name = #{name}; 为:select * from user where name = 'Jack'; ${}变量解析到ORACLE是没带引号的字符串:如表前缀 如:select * from ${}.user where name 1=1; 为:select * from TABLEPER.user where name 1=1;
现在Dao持久层的解决方案中,大部分是采用Spring Data JPA或MyBatis解决方案,并且传统企业多用前者,互联网企业多用后者. Spring Data JPA 是Spring Data 在JPA(Java持久层规范)和ORM(对象关系映射)框架之间抽象封装层,它不直接代替ORM框架,默认低层使用的ORM框架是Hibernate,但使用它可以灵活的在各种ORM框架之间切换,并且减少ORM框架接入部分重复代码,进而简化代码. MyBatis是一个持久层框架的,但它设计初衷与Hibern
1 spring Data jpa hibernate引领数据访问技术,使用orm对象关系映射来进行数据库访问,通过模型和数据库进行映射,通过操作对象实现对数据库操作,把数据库相关操作从代码中独立出来.随着hibernate盛行,hibernate主导了JPA规范,即 java persistence api.jps是一个基于orm映射的标准,主要实现有hibernate,eclipselinke,openjpa等.springDataJPA是spirng data的一个子项目,提供了基于jp