Mybatis与JPA比较

Mybatis与JPA比较


Mybatis

  • 需要在spring-boot的主类添加@MapperScan(“com.example.demo.dao”)
  • 需要添加Mapper(Dao)接口,自定义所有的Dao方法以及使用注解或者xml添加对应方法的sql实现。
  • 没有自动建表,需要手动建表。
  • 配置application.properties连接数据库属性。

JPA

  • 需要在pojo类添加注解@Entity,pojo类对应的每个属性需要添加@Id或者@Column。
  • 添加Repository(Dao)接口,需要实现JpaRepository接口,可以不写方法声明。
  • 配置application.properties连接数据库属性。
  • 可通过配置spring.jpa.properties.hibernate.hbm2ddl.auto=update属性实现自动建表。

总结:都需要添加Dao类,Mybatis的Dao类需要实现具体sql(注解或者xml),JPA不需要。对于pojo类的侵入性而言,Mybatis无需更改pojo类的任何地方,而JPA需要添加注解实现映射。