轻松学会MyBatis框架,只实战,不学究

2022-08-12 15:08:22 浏览数 (2)

通过实际案例充分讲解了MyBatis的各种技术细节和应用场景,对于MyBatis中较难的技术点进行剖析,对于Mybatis源码进行了一定深入探讨。通过学习,能够掌握MyBatis全部的知识内容和各种技巧案例,直击一线开发中的遇到的所有问题,为以后的实战打下了坚实的基础

技术参要

  • MyBatis框架基本理解
  • MyBatis框架结构
  • MyBatis框架搭建
  • MyBatis配置文件以及映射文件讲解及编写
  • MyBatis获取参数值的方式
  • #{}与${}的区别
  • MyBatis中各种复杂条件查询功能
  • MyBatis批量删除,批量增加,批量更新等
  • MyBatis自定义映射
  • 关联关系的处理
  • MyBatis动态SQL
  • MyBatis的动态代理访问
  • 入参是map及返回值是map的封装,
  • MyBatis缓存机制等

MyBatis框架概述

MyBatis 框架: MyBatis 本是 apache 的一个开源项目 iBatis, 2010 年这个项目由 apache software foundation 迁移到了 google code,并且改名为 MyBatis 。2013 年 11 月迁移到 Github。 iBATIS 一词来源于“internet”和“abatis”的组合,是一个基于 Java 的持久层框架。iBATIS 提供的持久层框架包括 SQL Maps 和 Data Access Objects(DAOs) 当前,最新版本是 MyBatis 3.5.7 ,其发布时间是 2021 年 4月 7日。

MyBatis框架解决的主要问题

减轻使用 JDBC 的复杂性,不用编写重复的创建 Connetion , Statement ; 不用编写关闭资源代码。直接使用 java 对象,表示结果数据。让开发者专注 SQ L 的处理。 其他分心的工作由 MyBatis 代劳。

MyBatis 可以完成:

注册数据库的驱动,例如 Class.forName(“com.mysql.jdbc.Driver”))

创建 JDBC 中必须使用的 Connection , Statement, ResultSet 对象

从 xml 中获取 sql,并执行 sql 语句,把 ResultSet 结果转换 java 对象

代码语言:javascript复制
List<Student> list = new ArrayLsit<>();

ResultSet rs = state.executeQuery(“select * from student”);

while(rs.next){

Student student = new Student();

student.setName(rs.getString(“name”)); student.setAge(rs.getInt(“age”));

list.add(student);

}

关闭资源

ResultSet.close() , Statement.close() , Conenection.close()

MyBatis框架的结构

1、mybatis配置

SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。

mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.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编程中对结果的解析处理过程。

0 人点赞