本章简述Mybatis框架,搭建环境,并运行”Hello World”示例。有三个小节
- 第一小节简述Mybatis框架,相对于JDBC,它的优点在哪里。
- 第二小节搭建环境,搭建一个Maven项目,引入Mybatis需要的包。
- 第三小节运行了”Hello World”示例,简单运行一个查询示例,并将查询结果打印在控制端。
1、简介
Mybatis最大的优点在于将Java程序与SQL代码解耦。它的其他优点如下:
- 不用反复的建立结果集与Java对象之间的映射关系,在编写JDBC时,从ResultSet中取结果集时,需要不断重复此过程。Mybatis提供了resultMap。在Hibernate中提供了注解方式,建立对象与表,列与属性的映射关系,例如@Table,@Id,@Column,而且在此基础上还提供了校验机制。
- 它可以使用标签,动态生成SQL语句。
- 它支持声明式缓存,一级缓存是默认开启的,二级缓存需要在Mapper文件中配置cache标签,详细内容在第七章节。
2、搭建环境
搭建环境的步骤如下:
- 首先创建任意的数据库表,例如User,原著中为Country。
- 创建任意的Java项目,如果不包含Maven,需要手动添加Mybatis依赖的jar包和数据库的驱动jar包。所以建议使用maven。
- 在项目中添加基本的框架,日志,测试框架,这不是必要的步骤,但建议大家搭建。
- 使用代码生成器,或者直接编写Java类,Mapper文件,config配置文件。其中Java类属性与表一一对应,Mapper文件编写SQL语句,config配置文件配置数据源,指定Mapper的加载位置。
- 获取SqlSessionFactory对象,从配置文件流中获取,如原著中示例。从Configuration对象中获取,如官网示例。
- 从SqlSessionFactory对象中获取sqlSession。
- 从sqlSession对象中获取Mapper接口类,Mapper接口类与Mapper文件之间是通过Mapper配置文件的namespace关联的,将对应的namespace作为参数,可以获取Mapper接口类。
- 执行Mapper接口中的方法,这个方法与Mapper配置文件的标签ID相对应。
如果使用Spring框架,可以在spring配置文件中配置sqlSessionFactory和sqlSession对象,前提是需要引入mybatis-spring架包。
本质是三步,
- 创建项目引入Jar包
- 搭建基础的框架,日志logback,测试Junit,以及其他的,例如spring等等
- 编写示例,依次获取SqlSessionFactory,sqlSession,Mapper核心对象,执行接口中的方法
3、查询示例
搭建环境完成之后,运行Junit测试,如果没有搭建Junit和日志,也可以直接运行main方法。
注意:
在编写框架配置文件和编写日志的配置文件时,需要引入自己的类存放目录和Mapper文件存放目录。具体修改Mapper标签的路径,typeAlias标签的包路径,日志配置文件中的log4j.logger.packageName,其中packageName修改为自己的
在搭建日志框架时,如果不是原著中的log4j,例如我用的是logback,需要修改setting标签中的值,具体修改setting标签的值为logback