概述
核心配置文件可以配置下面这些东西:
- configuration配置
根标签 - properties属性
配置属性 - settings设置
设置参数 - typeAliases类型别名
设置别名 - typeHandlers类型处理器
- objectFactory对象工厂
- plugins插件
- environments 环境
environment环境变量
transactionManager 事务管理器
dataSource数据源 - databaseldProvider数据库厂商标识
- mappers映射器
其中每个之间标签需要有特定的顺序,不然会报错
按这样是顺序来
environments 环境
其中,事务管理器(transactionManager) 类型有两种:
JDBC:这个配置就是直接使用了JDBC的提交和回滚设置,它依赖于从数据源得到的连接来管理事务作用域。
MANAGED:这个配置几乎没做什么。它从来不提交或回滚一一个连接, 而是让容器来管理事务的整个生命周期(比如JEE应用服务器的上下文)。默认情况下它会关闭连接,然而一些容器并不希望这样,因此需要将closeConnection属性设置为false 来阻止它默认的关闭行为。
其中,数据源(dataSource) 类型有三种:
UNPOOLED: 这个数据源的实现只是每次被请求时打开和关闭连接。
POOLED:这种数据源的实现利用“池”的概念将JDBC连接对象组织起来。
JNDI:这个数据源的实现是为了能在如EJB或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个JNDI上下文的引用。
暂时仅需记住JDBC和POOLED即可
Mapppers标签
mappers中有mapper标签,用来加载映射文件
有这四种加载方式:
使用相对于类路径的资源引用,例如:
<mapper resource="org/mybatis/builder/AuthorMapper.xml*/>
使用完全限定资源定位符(URL) , 例如:
<mapper url="file://var/mappers/AuthorMapper.xml"/>
使用映射器接口实现类的完全限定名,例如:
<mapper class=" org.mybatis.builder.AuthorMapper*/>
将包内的映射器接口实现全部注册为映射器,例如:
<package name="org.mybatis.builder"/>
后两种是用注解开发MyBatis的时候用
properties属性
实际开发中,习惯将数据源的配置信息单独抽取成一个properties文件, 该标签可以加载额外配置的properties文件
typeAliases类型别名
这里,我们在设置接收或者传递参数类型的时候,这里写的全类名比较麻烦,我们可以自己为这些全类名设置一个类型别名
在MyBatis中,MyBatis自动为我们设置了几个类型别名:
或者,我们自定义:
当我们使用MyBatis自定义的类型别名:
直接使用即可:
MyBatis中的API
常用API: SqISessionF actory build(InputStream inputStream)
通过加载mybatis的核心文件的输入流的形式构建一个SqISessionFactory对象
其中,Resources 工具类,这个类在org.apache.ibatis.io包中。Resources 类帮助我们从类路径下、文件系统或一个web URL中加载资源文件。相应的,我们也可以使用其他的方式来加载文件
SqlSessionFactory有多个个方法创建SqlSession实例。常用的有如下两个:
这里,selectOne方法可查询单个对象,获得单个结果