MyBatis是一个支持普通查询、存储过程和高级映射的持久层框架。并不支持纯粹的面向对象,允许开发人员自己编写SQL语句,这样更加灵活。它是一种半自动实现。
A、配置文件
1、配置文件内容:
```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<settingname="logImpl" value="LOG4j"/>
</settings>
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="XDP" />
</dataSource>
</environment>
</environments>
</configuration>
```
2、配置文件属性:
```
properties(属性)
settings(配置)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境集合属性对象)
environment(环境子属性对象)
transactionManager(事务管理)
dataSource(数据源)
mappers(映射器)
```
3、配置文件属性解析:
<configuration…/>是MyBatis配置文件的根元素,中有子元素<settings…/>该元素又有子元素,<setting>可以配置日志信息。根元素中的<environments…/>子元素,用来配置MyBatis的环境,即连接的数据库,该子元素用于将SQL映射应用于多种数据库之中。每个数据库对应一个SqlSessionFactory,可以配置多种环境,但只能为SQLSessionFactory实例选择一个环境,default属性表示选择的环境。子元素<environment…/>子元素用于配置一个环境,<transactionManager…/>子元素用来配置MyBatis当中的事务管理,type=JDBC表示可以直接使用JDBC的提交和回滚设置。<dataSource…/>子元素用来配置数据源,该元素中有多个<property…/>子元素用来配置MyBatis连接数据库的信息。
4、需要的注意:
数据源维持一个数据库的连接池,提高数据库的连接性能。
当程序创建数据源实例时,系统会一次性的创建多个数据连接,并把这些数据库连接保存在连接池中。当程序访问数据库时,无须重新连接数据库,而是从连接池中取出一个空闲的数据库连接,当程序使用数据库连接访问结束后,无须关闭数据库连接,而是将数据库连接归还给连接池。通过这种方式,可避免频繁地获得数据库连接、关闭数据库连接所导致的性能下降。
思维扩散:
B、MyBatis进行持久化操作的步骤:
① 开发持久化类PO和编写持久化的Mapper.xml,在编写执行的SQL语句。
② 获取SqlSessionFactory。
③ 获取SqlSession。
④ 用面向对象的方式操作数据库。
⑤ 关闭事务,关闭SqlSession。
对PO的操作必须在SqlSession的管理下才能同步的数据库中。SqlSession是由SqlSessionFactory工厂产生。SqlSessionFactory是数据库编译后的内存镜像,一个应用对应一个SqlSessionFactory对象。SqlSessionFactory对象通过加载mybatis-config.xml配置文件生成。