博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis mybatis plus mybatis jpa hibernate spring data jpa比较
阅读量:4072 次
发布时间:2019-05-25

本文共 1298 字,大约阅读时间需要 4 分钟。

mybatis  

               前身是ibatis,是一个轻量级ORM框架,需要自己写sql,DAO(mapper) 只写接口无需写实现,使用xml方式写sql,允许使用OGNL表达式 来动态写sql语句。

MyBatis JPA

               在mybatis的基础上添加了以下特性(比较重要的)

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
  • 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
  • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
  • 支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLServer 等多种数据库
  • 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
  • 支持 XML 热加载:Mapper 对应的 XML 支持热加载,对于简单的 CRUD 操作,甚至可以无 XML 启动
  • 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
  • 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
  • 支持关键词自动转义:支持数据库关键词(order、key......)自动转义,还可自定义关键词

Hibernate

              使用XML做数据库字段和DO 字段映射,使用HQL写sql,最NP的是他可以屏蔽一般关系型数据库的sql语句的区别,使用方言来适配各种类型的数据库,写复杂的查询的话,比较麻烦,性能也不好。

Spring DATA JPA

               spring data jpa其实是 hibernate 实现的,实现的jpa协议。 jpa协议使用注解来标记DO字段和数据库表字段的关系,并且可以很方便的支持一对一,一对多的关联 插入,删除,更新,可以说是双击666 很好用的。

                他还支持根据命名规范写方法名,自动生成sql比如 findByName。

Mybatis JPA

                 实现了部分JPA协议,同样是mybatis的一个插件,拥有mybatis,单表CRUD,一对一,一对多查询功能,支持根据mapper 接口的方法名字自动生成sql,只支持mysql,配合AOP可以支持 主键自动生成,配合基类可以支持ActiveRecord 模式,代码很少,方便定制。

                 项目地址:

 最佳的解决方案是:  Mybatis JPA + Mybatis + Spring DATA JPA 一起使用,既保证了Spring DATA  JPA的多表操作优势,又保证了Mybatis的灵活性。

  FAQ:

                 为什么不能使用Mybatis Plus + Mybatis + Spring DATA JPA 一起用呢?

                  因为Mybatis Plus  自己做了一套ORM 标准不兼容JPA。

 

 

转载地址:http://agwni.baihongyu.com/

你可能感兴趣的文章
c# 如何调用win8自带的屏幕键盘(非osk.exe)
查看>>
build/envsetup.sh 简介
查看>>
Android framework中修改或者添加资源无变化或编译不通过问题详解
查看>>
linux怎么切换到root里面?
查看>>
linux串口操作及设置详解
查看>>
安装alien,DEB与RPM互换
查看>>
编译Android4.0源码时常见错误及解决办法
查看>>
Android 源码编译make的错误处理
查看>>
linux环境下C语言中sleep的问题
查看>>
ubuntu 12.04 安装 GMA3650驱动
查看>>
新版本的linux如何生成xorg.conf
查看>>
xorg.conf的编写
查看>>
启用SELinux时遇到的问题
查看>>
virbr0 虚拟网卡卸载方法
查看>>
No devices detected. Fatal server error: no screens found
查看>>
新版本的linux如何生成xorg.conf
查看>>
virbr0 虚拟网卡卸载方法
查看>>
Centos 6.0_x86-64 终于成功安装官方显卡驱动
查看>>
Linux基础教程:CentOS卸载KDE桌面
查看>>
db sql montior
查看>>