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. AIX查看端口被占用
  2. ScrollView中的LinearLayout不能使用android:layout_heig...
  3. Docker网络和服务发现
  4. 3-2:类与对象上篇——类的对象模型和计算类的大小以及this指针问题
  5. 小米汽车总部正式落户北京,注册地为北京经济技术开发区
  6. 当.NET遇到SYBASE
  7. BigDecimal源码分析及使用
  8. 明日之后维护服务器什么情况,明日之后无法连接服务器是什么原因
  9. 三、【React-Router6】重定向 Navigate
  10. MarkdownPad2安装汉化与注册码
  11. 直击|支付宝还信用卡下月开始收费 每月2000免费额度
  12. aws mysql 多区_Amazon RDS 多可用区部署
  13. ubuntu下搭建pptp服务器
  14. 笔记本显示dns服务器,笔记本电脑显示无线网DNS设置错误该怎么解决
  15. Mybatis常见错误 Could not find resource com/mybatis/mapper/UserInfoMapper.xml
  16. python中占位符包括_python中占位符
  17. SSH2远程连接例子
  18. linux查看端口pvid,交换机端口及常见问题定位(二)
  19. 计算机网络课程设计(一)网络聊天程序的设计与实现
  20. idea两个好用的插件-Code Reading Note与RestfulTool

热门文章

  1. 【“赤裸裸展现”时代下如何保障网上隐私?】
  2. windows下 QT 的 Android 环境搭建(附软件测试)
  3. 安全狗| 一家云原生安全厂商的成长独白
  4. 帆软报表实现Excel数据导入和校验(转载)
  5. macro min passed 3 arguments, but takes just 2 min(const _Tp, const _Tp, _Compare);
  6. windows下composer 安装设置阿里镜像
  7. Hibernate的基本用法
  8. C++(数据结构与算法):52---平衡搜索树之分裂树/伸展树
  9. 使用NPOI 汇出EXCEL,设置样式,字体等
  10. 10个让你烧脑让你晕的数学悖论!