mybatis-架构

mybatis-架构

官方教程
http://www.mybatis.org/mybatis-3/zh/index.html

应用场景:
适用于小型无需更换数据库的项目

优点:
1. DAO层代码可以通过现有插件直接生成,大大提高编码效率和准确性。
2. mybatis已有的连接池管理,缓存管理等所带来的代码性能优势和可靠性。
3. 一致的编码风格大大减少代码的沟通成本;
4. mybatis提供了一级和二级缓存(需要配置打开),强大的动态sql,自动化的session管理,都比手工维护来的方便和安全。
5. 不用重复写resultset到domain的转化了。
6. 相似的sql不需要重复写。

缺点:
1、mybatis仅有基本的字段映射,对象数据以及对象实际关系仍然需要通过手写sql来实现和管理。
2、mybatis由于需要手写sql,因此与数据库的耦合性直接取决于程序员写sql的方法,如果sql不具通用性而用了很多某数据库特性的sql语句的话,移植性也会随之降低很多,成本很高。
3、整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改,开发效率相对Hibernate低

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

最后推荐几个mybatis代码生成工具
代码自动生成器
intellij下的插件MybatisCodeHelper
https://github.com/astarring/mybatis-generator-gui
https://git.oschina.net/ht896632/mybatis-generator-core
https://git.oschina.net/00fly/javacode-all-in-one

优化建议

  1. Mapper层参数为Map,由Service层负责重载
  2. SQL尽量少用if choose等语句,推荐使用SQL原生的方式来解决一些动态问题
  3. 将重复的SQL片段独立成一个SQL块,然后在各个SQL语句引用重复的SQL块
  4. 用XML注释取代SQL注释
  5. 尽可能使用#{},而不是${}
  6. 大量数据的批量处理(变量绑定)
  7. 连接数据库的配置单独放在一个properties文件中
  8. 为实体类定义别名,简化sql映射xml文件中的引用

参考站点:
http://www.cnblogs.com/KingIceMou/p/7193769.html
https://github.com/brianway/springmvc-mybatis-learning

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值