在学习MyBatis的单表的增删改查操作之前,还是再次熟悉下MyBatis这个框架,只有对其熟悉的情况下,才能很好的使用,灵活的开发。

        MyBatis优点:

        1)、简单易学

       mybatis本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。

        2)、灵活

       mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多。

        3)、解除sql与程序代码的耦合

       通过提供DAL层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。对开发人员而言,核心sql还是需要自己优化:sql和java编码分开,功能边界清晰,一个专注业务、 一个专注数据。

        4)、提供映射标签,支持对象与数据库的orm字段关系映射。 

        5)、提供对象关系映射标签,支持对象关系组建维护。

        6)、提供xml标签,支持编写动态sql。

        MyBatis缺点: 

        1)、编写SQL语句时工作量很大,尤其是字段多、关联表多时,更是如此。  

        2)、SQL语句依赖于数据库,导致数据库移植性差,不能更换数据库。 

        3)、框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。

MyBatis与JDBC比较:

SQL夹在Java代码块里,耦合度高导致硬编码内伤,维护不易且实际开发需求中sql是有变化,频繁修改的情况多见。

MyBatis与Hibernate和JPA比较:

长难复杂SQL,对于Hibernate而言处理也不容易,内部自动生产的SQL,不容易做特殊优化。基于全映射的全自动框架,大量字段的POJO进行部分映射时比较困难。 导致数据库性能下降。

        MyBatis与iBatis比较:

        MyBatis是iBatis的升级版,用法有很多的相似之处,但是MyBatis进行了重要的改进。

        1)、Mybatis实现了接口绑定,使用更加方便。

在ibatis2.x中我们需要在DAO的实现类中指定具体对应哪个xml映射文件, 而Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,使用起来变得更加省事和方便。

        2)、对象关系映射的改进,效率更高。

        3)、MyBatis采用功能强大的基于OGNL的表达式来消除其他元素。

    

    下面就来点干货了,MyBatis的单表的增删改查操作,开始表演了,请上车。ForFuture

相信在看完了我的 MyBatis使用步骤 这一文将会很好理解下面这些。

1.编写Mapper映射文件User.xml


2. 测试增删改查



以上就是简单的使用MyBatis进行增删改查了。查看上一篇文章:MyBatis使用步骤

有需要完整学习MyBatis的可以点击下载【完整MyBatis学习笔记
在写完Spring+MyBatis+Spring MVC等文章后、我整理了一套【完整实战文档】,有需要的点击下载

最新文章

  1. Flex ActionScript版本的Map类型
  2. jquery------.resizable()的使用
  3. linux下xargs命令用法详解
  4. python中文处理之encode/decode函数
  5. 陈灯WGF双缓冲绘图框架
  6. 手机摇一摇效果-html5
  7. 学会了 C 语言真的可以开发出很多东西吗?
  8. PAT (Advanced Level) 1057. Stack (30)
  9. 从C#到TypeScript - Promise
  10. 38. leetcode 405. Convert a Number to Hexadecimal
  11. HTTP首部概览
  12. InstallShield 软件打包完整教程(含添加自定义依赖环境)
  13. python删除列表元素
  14. Twisted简介
  15. Ant + Tomcat + Jenkins 实现自动化部署
  16. 01 基于umi搭建React快速开发框架
  17. CentOS 6.5使用Corosync + pacemaker实现httpd服务的高可用
  18. javax.servlet不存在问题的解决
  19. 重命名和重定向RF执行生成的output文件
  20. Java 类引入 学习记录规整

热门文章

  1. 洛谷P4525 【模板】自适应辛普森法1与2
  2. 关于FrameLayout中覆盖的问题
  3. js打印前几天或后几天的日期
  4. 网络共享服务(三)之SAMBA
  5. BZOJ 4239: 巴士走读 最短路
  6. java中equals与==号的区别
  7. VSCode常用插件汇总
  8. UVA12716-连续区间内反向寻因子法
  9. Costco这样的超级零售商,能不能干掉电商?
  10. 在页面布局中,CSS如何实现左侧宽度固定,右侧宽度自适应的布局?