Mybatis
作用域和生命周期
- SqlSessionFactoryBuilder
最佳作用域是方法作用域,一旦创建了SqlSessionFactory就不再需要它了。可以重用SqlSessionFactoryBuilder来创建多个SqlSessionFactory实例,但是不要一直保留SqlSessionFactoryBuilder。
- SqlSessionFactory
一旦被创建就应在应用运行期间一直存在,避免多次创建SqlSessionFactory,作用域是应用作用域。
- SqlSession
每个线程都有它自己的SqlSession实例,不是线程安全的,不能共享,最佳的作用域是请求域或者方法域。
//标准用法
try(SqlSession session = sqlSessionFactory.openSession()){
}
- 映射器实例
绑定一些映射语句的接口,映射器的接口实例是从SqlSession中获得的。最好的作用于就是方法作用域。
try(SqlSession session = sqlSessionFactory.openSession()){
BlogMapper mapper = session.getMapper(BlogMapper.class);
}
Mabatis配置文件的顶层结构
SqlSessionFactoryBuilder拿着配置文件去创建SqlSessionFactory
属性(Properties)
<properties resource="org/mybatis/example/config.properties">
<property name="username" value="root"/>
<property name="password" value="root"/>
</properties>
设置好的属性可以在整个配置文件中替换需要动态配置的值。其中${}里面表达式的值可以通过上面的Properties标签设置的值也可以从config.properties文件中读取相应的配置信息
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
默认属性(MyBatis >= 3.4.2 )
<properties resource="org/mybatis/example/config.properties">
<!-- ... -->
<property name="org.apache.ibatis.parsing.PropertyParser.enable-default-value" value="true"/> <!-- 启用默认值特性 -->
<property name="username" value="${username:ut_user}"/> <!-- 如果属性 'username' 没有被配置,'username' 属性的值将为 'ut_user' -->
</properties>
如果属性名中包含':'那么按如下设置
<properties resource="org/mybatis/example/config.properties">
<!-- ... -->
<property name="org.apache.ibatis.parsing.PropertyParser.enable-default-value" value="true"/> <!-- 启用默认值特性 -->
<property name="org.apache.ibatis.parsing.PropertyParser.default-value-separator" value="?:"/> <!-- 修改默认值的分隔符 -->
</properties>
<property name="username" value="${db:username?:ut_user}"/>
设置(Setting)
类型别名(typeAliases)
<typeAliases>
<typeAlias alias="Author" type="domain.blog.Author"/>
<typeAlias alias="Blog" type="domain.blog.Blog"/>
<typeAlias alias="Comment" type="domain.blog.Comment"/>
<typeAlias alias="Post" type="domain.blog.Post"/>
<typeAlias alias="Section" type="domain.blog.Section"/>
<typeAlias alias="Tag" type="domain.blog.Tag"/>
</typeAliases>
类型处理器(typeHandlers)
MyBatis 在设置预处理语句(PreparedStatement)中的参数或从结果集中取出一个值时, 都会用类型处理器将获取到的值以合适的方式转换成 Java 类型。
标签:String,Mybatis3,ID,id,log4j,type,public From: https://www.cnblogs.com/poteitoutou/p/16987938.html