mybatis是目前主流是ORM框架,没有之一,同时也有很多的缺点,比如需要手写sql语句,对于道行不深的程序员来说难度颇大。对于新手程序员以及单表查询较多的项目 SpringDataJPA就可以完全应对,这个框架内部封装的是Hibernate,只需要手动建立对应数据库的pojo,并且建立一个接口,将pojo与框架绑定起来即可使用框架提供好了的方法。
//建立pojo与框架的关系
public interface AccountRepository extends JpaRepository<Account, Integer> {
Optional<Account> findByIdBetween(int min, int max);
}
关系建立好了,就可以很方便的从service层中调用JPA已经为你实现好的api。
//JPA是基于hibernate的再次封装,真的很简洁有没有
public List<Account> findAll() {
//查询所有数据
return accRep.findAll();
}
JPA非常适合在SpringBoot下的快速开发,多表查询使用次数不多的情况下 JPA就完全足够了。
一个框架的优点同样也是他的缺点,被过度封装 不易扩展,不符合设计原则中的开闭原则(面对更改关闭,面对扩展开放)。这个时候Mybatis可以很好的补充JPA的不足。
Mybatis依赖程序员在xml配置文件中手写sql,建立映射,因此可以相对的保证性能,不会过于黑盒。手写sql倒是无所谓,建立映射就会导致大量的重复代码的出现ÿ