Mybatis之核心配置文件解析

目录

核心配置文件

环境配置(environments)

属性(Properties)

类型别名(typeAliases)

设置(Settings)

映射器(mappers)

SqlSession的原理与使用


 

核心配置文件

 

mybatis-config.xml ,下面只讲常用的

Mybatis之核心配置文件解析_第1张图片

 

 

环境配置(environments)

 

Mybatis可以配置成适应多种环境,不过要记住,使用时只能使用其中的一套(有deafult的那套)

Mybatis中默认的事务管理器是JDBC,连接池是POOLED

事务管理器除了JDBC还有MANAGED(用于传统EJB项目),连接池当然也可以设置成UNPOOLED

 

 

属性(Properties)


 

我们可以通过properties来引用配置文件,这些属性都是可外部配置可动态替换的。

一种方案是单独定义一个db.properties配置文件,然后在项目默认配置文件中引用之

注意:引用时xml规定了标签的顺序标签必须在configuration标签紧下面,否则报错。

Mybatis之核心配置文件解析_第2张图片

 

也可以在项目默认的xml配置文件中标签的形式存在

Mybatis之核心配置文件解析_第3张图片

如果外部配置文件中写了用户名密码,你又以标签的形式在主配置文件中又写了一遍用户名密码,mybatis会优先采用外部配置文件里的信息。

Mybatis之核心配置文件解析_第4张图片

 

 

类型别名(typeAliases)

 

在mapper.xml文件中,我们的每条sql都要标注实体类路径名,如果这名字太长,这样是不是太麻烦了

Mybatis之核心配置文件解析_第5张图片

 我们有三种方式可以简化类型别名

  • 1.在主配置文件中给实体类起别名

注意书写位置一定要写在标签和标签之后,否则报错 

Mybatis之核心配置文件解析_第6张图片

 

  • 2.也可以在typeAliases标签中只写包名,具体类名放在mapper中写

Mybatis之核心配置文件解析_第7张图片

  • 3.在第二中方案的基础上,通过给实体类添加Aliases注解的方式

前提是一定要在配置文件中指定是扫描包,然后你给实体类加注解时,起名就可以随意起了

Mybatis之核心配置文件解析_第8张图片

 

 

设置(Settings)

 

这是Mybatis中极为重要的调整设置,它们会改变Mybatis的运行时行为

Mybatis之核心配置文件解析_第9张图片

 

 

映射器(mappers)

 

映射器起到把我们自定义的mapper.xml注册到主配置文件中,供mybatis识别的作用。 

有以下几种方式,推荐使用第一种

  • resources


    
  • class

 使用这种方式:接口和他的Mapper配置文件必须同名!接口和他的Mapper配置文件必须在同一个包下!



    
  • package
使用这种方式:接口和他的Mapper配置文件必须同名!接口和他的Mapper配置文件必须在同一包下!
 


    
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==uploading.4e448015.gif转存失败重新上传取消 wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 

 

SqlSession的原理与使用

 

mybatis执行图解Mybatis之核心配置文件解析_第10张图片wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==uploading.4e448015.gif转存失败重新上传取消wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 

这里面的核心就是Builder、Factory、和SqlSession。我们讲解一下

  • SqlSessionFactoryBuilder

就是用来创建SqlSessionFactory的,所以这东西的作用域为局部变量

  • SqlSessionFactory

可以把它理解为数据库连接池,这个工厂一经创建后,在应用程序运行期间一直存在,因此最佳作用域是应用作用域,通过单例模式或静态单例模式使用

  • SqlSession

连接池中的一条条请求,由于SqlSession存在并发性,因此线程不安全,不能被共享,所以最佳作用域是请求或方法作用域,用完之后马上关闭,防止资源占用出现并发问题

 

可以对比理解一下~

Mybatis之核心配置文件解析_第11张图片

 

 

你可能感兴趣的:([SSM])