首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mybatis学习记录

阅读文本大概需要 4 分钟。

MyBatis 本是 apache 的一个开源项目 iBatis, 2010 年这个项目由 apache software foundation 迁移到了 google code,并且改名为 MyBatis。

MyBatis 是一个优秀的持久层框架,它对JDBC 的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建 connection、创建 statement、手动设置参数、结果集检索等 JDBC 繁杂的过程代码。Mybatis 通过 xml 或注解的方式将要执行的 statement 配置起来,并通过java 对象和 statement 中的 sql 进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射成 java 对象并返回。

引入 Mybatis 之前,我们先看下传统的 JDBC 的不雅之处。

1. 将 sql 语句硬编码到 java 代码中,如果修改 sql 语句,需要修改 java 代码,重新编译,系统可维护性不高。设想如何解决?能否将 sql 单独配置在配置文件中。

2. 数据库连接频繁开启和释放,对数据库的资源是一种浪费。设想如何解决?使用数据库连接池管理数据库连接。

3. 向 preparedStatement 中占位符的位置设置参数时,存在硬编码(占位符的位置,设置的变量值)设想如何解决?能否也通过配置的方式,配置设置的参数,自动进行设置参数。

4. 解析结果集时存在硬编码(表的字段名、字段的类型)设想如何解决?能否将查询结果集映射成 java 对象。

可以看到上面这几条对于我们来说还是不太友好了,引入 Mybatis 之后,这些问题就会迎刃而解。先看下 Mybatis 配置文件。

1. mybatis.xml,此文件作为 Mybatis 的全局配置文件,配置了Mybatis 的运行环境等信息。mapper.xml 文件即 sql 映射文件,文件中配置了操作数据库的 sql 语句。此文件需要在 mybatis.xml 中加载。?

2. 通过 Mybatis 环境等配置信息构造 SqlSessionFactory 即会话工厂。

3. 由会话工厂创建 sqlSession 即会话,操作数据库需要通过 sqlSession 进行。

4. Mybatis 底层自定义了 Executor 执行器接口操作数据库,Executor 接口有两个实现,一个是基本执行器、一个是缓存执行器。

5. Mapped Statement 也是 mybatis 一个底层封装对象,它包装了 mybatis 配置信息及 sql 映射信息等。mapper.xml 文件中一个 sql 对应一个 Mapped Statement 对象,sql 的 id 即是Mapped statement 的 id。

6. Mapped Statement 对 sql 执行输入参数进行定义,包括HashMap、基本类型、pojo,Executor 通过 Mapped Statement 在执行 sql 前将输入的 java 对象映射至 sql 中,输入参数映射就是 jdbc 编程中对 preparedStatement 设置参数。

7. Mapped Statement 对 sql 执行输出结果进行定义,包括HashMap、基本类型、pojo,Executor 通过 Mapped Statement 在执行 sql 后将输出结果映射至 java 对象中,输出结果映射过程相当于 jdbc 编程中对结果的解析处理过程。

最后,希望大家有所收获。

一条迷途的咸鱼,

总有一天会游向属于它的天地!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180703G1XZYZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com