MyBatis特点?

   1.轻量级自身不依赖其他任何JAR,但需要提供JDBC实现

   2.灵活,更加适用于需求变化频繁的互联网应用

      3.学习成本低,相比ORM框架而言,掌握MyBatis的使用是很轻松的

4.与JDBC相比,减少了50%以上的代码量

5.最简单的持久化框架、小巧简单易学

6.SQL代码从程序代码中彻底分离出来,可重用

7.提供XML标签,支持编写动态SQL

8.提供映射标签,支持对象与数据库的ORM字段关系映射

MyBstis的缺点?

  • SQL语句编写工作量大,熟练度要高

  • 数据库移植性差,比如mysql移植到Orecle,SQL语句会有差异从而引起err

MyBatis在结构中的位置?

  MyBatis处在DAO(数据访问对象)的位置,回顾一下DAO的工作职责:

  连接数据库

  接收输入数据

  拼接并执行SQL

  解析并返回结果

MyBatis可以做什么?

  使用JDBC完成DAO层存在以下问题

  每次操作都需要手动的创建连接,最后关闭连接

  对于重复代码通常开发者都会进行封装,但是由于每个人的编码风格不同导致封装的代码也没有固定的套路

  MyBatis将数据库连接相关的参数放到配置XML中并封装了创建连接的代码

  频繁的创建和销毁连接

  由于数据库连接使用的是TCP长连接,并发量大的系统中,这样的方式会导致数据库连接资源耗尽

  MyBatis本身实现了连接池,可以解决这一问题,当然后续会更换其他更好的连接池

  接受参数拼接SQL语句并执行

  每一条SQL语句都是直接写在代码中(硬编码),如果后期需求发生变化,则需要修改源码中的SQL,然后重新编译,测试.....

  MyBatis将SQL语句从代码中剥离到Mapper.xml映射文件中

  解析结果

  JDBC返回的是ResultSet,必须手动将其映射到一个个的对象中,同样是重复度很高的代码;并且存在硬编码问题

  MyBatis实现了入参映射到SQL参数,以及结果集映射到POJO对象。

MyBatis的特点相关推荐

  1. mybatis查询报错:com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from string

    mybatis查询报错: com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from strin ...

  2. MyBatis的插入后获得主键的方式

    需求: 使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值. 方法: 在mapper中指定keyProperty属性,示例如下: <insert id=" ...

  3. mybatis使用注解开发

    mybatis使用注解开发 面向接口编程 在之前我们是通过面向对象编程,但是在真正开发的时候我们会选择面向接口编程. 根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的 ...

  4. mybatis ResultMap

    ResultMap 解决属性名和字段的名称不一致的问题. 查询为null的问题 创建java实体类: public class User {private int id; //idprivate St ...

  5. mybatis配置文件解析

    mybatis配置文件解析 mybatis核心配置文件`mybatis-config.xml文件. mybatis的配置文件包含了会深深影响mybatis行为的设置和属性信息. 能配置的内容: con ...

  6. mybatis CRUD操作

    mybatis CRUD操作 select select标签是mybatis最常用的标签之一. select语句有很多属性可以详细的配置每一天sql语句. id 命名空间唯一的标识. 接口中的方法名与 ...

  7. java mybatis基础

    java mybatis基础 1.1 什么是mybatis? mybatis是一个优秀的持久层框架. 避免几乎所有的JDBC代码和手动设置参数以及获取结果集的过程. 可以使用简单的xml或者注解来配置 ...

  8. mybatis的资源过滤错误及xml文件编码错误

    mybatis 解决maven项目内资源过滤的问题 写的配置文件无法被导出或者生效的问题. 解决方案: <build><resources><resource>&l ...

  9. Mybatis传递多个参数的4种方式

    现在大多项目都是使用Mybatis了,但也有些公司使用Hibernate.使用Mybatis最大的特性就是sql需要自己写,而写sql就需要传递多个参数.面对各种复杂的业务场景,传递参数也是一种学问. ...

  10. SpringBoot (五) :SpringBoot整合mybatis

    说在前面 mybatis刚开始使用的时候比较麻烦,需要各种配置文件.实体类.dao层映射关联.还有一大推其它配置.初期开发了generator可以根据表结果自动生产实体类.配置文件和dao层代码,可以 ...

最新文章

  1. 为什么你的应用程序需要崩溃
  2. python实现最长公共子序列的求解
  3. 贪心算法之最短路径问题(Dijkstra算法)
  4. 数据图表可视化_数据可视化十大最有用的图表
  5. 计算机网络之应用层:2、DNS域名解析系统
  6. this is a test
  7. Android 自定义AlertDialog类
  8. Java IO学习笔记总结
  9. 人工智能中蕴含的情商
  10. Hi3516A开发--电阻分压阻值计算
  11. 微信DAT文件转JPG图片(图片恢复)
  12. PAT1003 我要通过! (20 分)(C语言)
  13. 长铗:未来可被预言,区块链可被定义
  14. Linux部署若依项目
  15. ISA SERVER常见问题总结专用贴(转)
  16. Apollo分布式配置中心 - 服务中间件
  17. Java中的不可变集合介绍
  18. Java基础数据类型二进制转换
  19. UML类图的辅助构建的逻辑代码
  20. 计算机网络如何促进幼儿教师专业发展,新学期计算机网络实训报告范文与新幼儿教师的述职报告合集.doc...

热门文章

  1. java多线程与动态代理
  2. Apache Shiro(七)——Shiro的RememberMe功能
  3. 【报告分享】 网易知萌:2020酒行业睿享生活消费趋势报告(附下载)
  4. 算法与数据结构《一》
  5. 转载 JBI与ESB SOA
  6. Android 10.0 SystemUI 仿华为充电动画
  7. java验证公钥私钥是否匹配及公钥私钥与字符串相互转换
  8. 记录一下比较完整的BP神经网络预测模型
  9. uniapp动态气泡上升效果
  10. Delayed 接口解析