MyBatis概述

MyBatis概述

MyBatis的前身是Apache公司的ibits

首先我们先来分析: 原始的JDBC开发存在的问题:(如下)

  1. 数据库连接,创建, 释放频繁造成系统资源浪费而影响系统性能

  2. sql语句在代码中采用的是硬编码的形式, 造成代码不易维护, 实际应用中sql变化可能较大, sql变动需要改变java代码

    • 其实就是SQL语句和java代码耦合到了一起
  3. 查询操作时,需要手动的将结果集中的数据手动封装到实体中, 执行各种sql操作时需要手动将实体的数据设置到sql语句的占位符位置

那么上面的问题我们要如何进行解决?

  1. 对于频繁的数据库连接, 创建, 释放造成系统资源的浪费, 我们首先能想到的就是使用池化的思想:(就是使用数据库连接池)

    • 池化的思想就相当于共享思想

    • 池化的思想:
      • 如果我们每一次都要建立连接, 释放连接, 就相当于每次出门的时候我们都要遭一辆新车, 使用完之后就将车销毁掉, 下次如果出门的时候又要重新造, 这样无疑是很浪费资源的, 所以我们就可以使用池化的思想进行一个改良, 就是类似于共享汽车, 我们有一个"池" , "池"中有很多的共享汽车, 每次我们出门的时候就先借一辆共享汽车, 使用完之后将我们的共享汽车再放到"池"中, 然后下次如果要用的时候就继续从池中借即可, 利用了池化的思想之后如果我们频繁的建立连接, 释放连接的效率就会高很多了
  2. 对于sql语句变动之后要修改java代码, 其实就是sql和java代码是耦合到一起的, 所以我们就要进行sql和java代码的解耦

    • 对于这种情况我们常用的解耦方式就是: 使用XML配置文件
      • 我们可以将sql语句抽取到XML配置文件中, 从而实现解耦
  3. 需要手动将结果集中返回的数据封装到对应的实体中, 很麻烦

    • 所以我们就可以将这个操作使用反射, 内省等操作实现, 实现之后进行一个封装, 使得表与实体之间可以自动映射
小结: 应对上述问题给出的解决方案:
  1. 使用数据库连接池初始化连接资源
  2. 将sql语句抽取到xml配置文件中
  3. 使用反射,内省等技术, 自动将实体与表进行属性与字段的自动映射
所以针对上述问题我们就提出了MyBatis框架,MyBatis框架可以很好的解决上述的问题

什么是MyBatis框架?

  1. MyBaits是一个优秀的基于Java的持久层框架, 它内部封装了JDBC, 使得开发者只需要关注sql语句本身, 而不需要花费精力去加载驱动, 创建连接, 创建Statement等繁杂的过程

  2. MyBatis通过xml或注解的方式将要执行的各种Statement配置起来, 并通过Java对象和Statement中sql的动态参数进行映射生成最终执行的sql语句

    • 也就是我们将sql语句放到了xml映射文件中之后也是可以使用占位符进行配置的
      • 但是占位符已经不是?了, 而是变成了#{JavaBean中的属性值}
  3. 最后MyBatis框架执行sql并将结果映射为Java对象并返回

    • 采用了ORM思想解决了实体和数据映射的问题,对于jdbc进行了封装, 屏蔽了jdbc底层访问的细节, 使我们不用与jdbc API打交道就可以完成对数据库的持久化操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值