目录
2.1 MyBatis核心配置文件层级关系
2.2MyBatis常用配置解析
1.environments标签
2.mapper标签
3.properties标签
4.typeAlisases标签
2.3 Mybatis相应的API
1.SqlSessionFactory工厂构造器SqlSessionFactoryBuilder
2.SqlSession工厂对象SqlSessionFactory
3.SqlSession会话对象
2.1 MyBatis核心配置文件层级关系
configuration配置
properties属性
settings设置
typeAliases类型别名
typeHandlers类型处理器
objectFactory对象工厂
plugins插件
environments杯境
.environment环境变量
·transactionManager事务管理器
·dataSource数据源
databaseldProvider数据库厂商标示识
mappers映射器
2.2MyBatis常用配置解析
1.environments标签
其中,事务管理器(transactionManager)类型有两种:
JDBC:这个配置就是直接使用了JDBC的提交和回滚设置,它依赖于从数据源得到的连接来管理事务作用域。
MANAGED:这个配置几乎没做什么。它从来不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如EE应用服务器的上下文)。默认情况下它会关闭连接,然而一些容器并不希望这样,因此需要将closeConnection属性设置为false来阻止它默认的关闭行为。
其中,数据源(dataSource)类型有三种:
·UNPOOLED:这个数据源的实现只是每次被请求时打开和关闭连接。
POOLED:这种数据源的实现利用"池”的概念将DBC连接对象组织起来。
JNDl:这个数据源的实现是为了能在如EJB或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个JNDI上下文的引用。
2.mapper标签
该标签的作用是加载映射的,加载方式有如下几种:
·使用相对于类路径的资源引用,例如:<mapper resource="org/mybatis/,builder/AuthorMapper..xml"/>
使用完全限定资源定位符(URL),例如:<mapper url="file:/Nar/mappers/,AuthorMapper.xml"/>
使用映射器接口实现类的完全限定类名,例如:<mapper class=:"org.mybatis.builder.AuthorMapper"/>
将包内的映射器接口实现全部注册为映射器,例如:<package name:="org.mybatis.builder“/>
3.properties标签
实际开发中,习惯将数据源配置信息抽取成一个properties文件,该标签可以加载外配置的properties文件。
<?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> <properties resource="jdbc.properties"></properties> </configuration>
4.typeAlisases标签
类型别名 配置设置如下
<configuration>
<typeAliases>
<typeAlias type="com.hzw.domin.User" alias="user"></typeAlias>
</typeAliases>
</configuration>
使用
<!--修改操作--> <select id="update" parameterType="user"> update user set username=#{username},password=#{password} where id=#{id} </select>
2.3 Mybatis相应的API
1.SqlSessionFactory工厂构造器SqlSessionFactoryBuilder
常用API:SqlSessionFactoryBuilder().build(resourceAsStream)
通过加载mybatis的核心文件的输入流的形式来构建一个SqlSessionFactory对象
//获取核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
//获取Session工厂对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
//获取session会话对象
SqlSession sqlSession = sqlSessionFactory.openSession();
2.SqlSession工厂对象SqlSessionFactory
3.SqlSession会话对象