首页 > 其他分享 >Mybatis3

Mybatis3

时间:2022-12-16 17:46:54浏览次数:58  
标签:String Mybatis3 ID id log4j type public

Mybatis

作用域和生命周期

  1. SqlSessionFactoryBuilder

最佳作用域是方法作用域,一旦创建了SqlSessionFactory就不再需要它了。可以重用SqlSessionFactoryBuilder来创建多个SqlSessionFactory实例,但是不要一直保留SqlSessionFactoryBuilder。

  1. SqlSessionFactory

一旦被创建就应在应用运行期间一直存在,避免多次创建SqlSessionFactory,作用域是应用作用域。

  1. SqlSession

每个线程都有它自己的SqlSession实例,不是线程安全的,不能共享,最佳的作用域是请求域或者方法域。

//标准用法
try(SqlSession session = sqlSessionFactory.openSession()){

}
  1. 映射器实例

绑定一些映射语句的接口,映射器的接口实例是从SqlSession中获得的。最好的作用于就是方法作用域。

try(SqlSession session = sqlSessionFactory.openSession()){
	BlogMapper mapper = session.getMapper(BlogMapper.class);
}

Mabatis配置文件的顶层结构

image-20221213195056168

image-20221214142956082

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>

image-20221213202907488

类型处理器(typeHandlers)

MyBatis 在设置预处理语句(PreparedStatement)中的参数或从结果集中取出一个值时, 都会用类型处理器将获取到的值以合适的方式转换成 Java 类型。

各种类型处理器

标签:String,Mybatis3,ID,id,log4j,type,public
From: https://www.cnblogs.com/poteitoutou/p/16987938.html

相关文章

  • MyBatis3
    MyBatis-第三章 log4j日志记录可以记录不同级别的日志信息,以备排错和后续信息参考1.配置log4j.properties配置文件,放置在根目录下日志全局设置:log4j.rootLogger=lev......