Spring + SpringMVC +Mybatis 从零开始 之 Mybatis(1)

  • MyBatis介绍

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进。

MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。

Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

 

  • Mybatis架构

Spring + SpringMVC +Mybatis 从零开始 之 Mybatis(1)

  1. mybatis配置

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

mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。

  1. 通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂
  2. 由会话工厂创建sqlSession即会话,操作数据库需要通过sqlSession进行。
  3. mybatis底层自定义了Executor执行器接口操作数据库,Executor接口有两个实现,一个是基本执行器、一个是缓存执行器。
  4. Mapped Statement也是mybatis一个底层封装对象,它包装了mybatis配置信息及sql映射信息等。mapper.xml文件中一个sql对应一个Mapped Statement对象,sql的id即是Mapped statement的id。
  5. Mapped Statement对sql执行输入参数进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行sql前将输入的java对象映射至sql中,输入参数映射就是jdbc编程中对preparedStatement设置参数。
  6. Mapped Statement对sql执行输出结果进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行sql后将输出结果映射至java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。

 

Spring + SpringMVC +Mybatis 从零开始 之 Mybatis(1) 

  • mybatis下载
  • 创建mysql数据库

创建用户(user)表

Spring + SpringMVC +Mybatis 从零开始 之 Mybatis(1)

  • Mybatis入门

 

 

项目结构

Spring + SpringMVC +Mybatis 从零开始 之 Mybatis(1)

创建项目

Spring + SpringMVC +Mybatis 从零开始 之 Mybatis(1)

编写代码

 编写实体对象

Spring + SpringMVC +Mybatis 从零开始 之 Mybatis(1)

编写配置文件

1.编写User.xml

Spring + SpringMVC +Mybatis 从零开始 之 Mybatis(1)

2.编写SqlMapConfig.xml

 mybatis框架需要加载映射文件,将User.xml添加在SqlMapConfig.xml,如下:

Spring + SpringMVC +Mybatis 从零开始 之 Mybatis(1)

Spring + SpringMVC +Mybatis 从零开始 之 Mybatis(1)

 

3.配置log4j.properties

Spring + SpringMVC +Mybatis 从零开始 之 Mybatis(1)

  1. 测试代码

Spring + SpringMVC +Mybatis 从零开始 之 Mybatis(1)