Mybatis之核心配置文件解析

目录

核心配置文件

环境配置(environments)

属性(Properties)

类型别名(typeAliases)

设置(Settings)

映射器(mappers)

SqlSession的原理与使用


核心配置文件

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

环境配置(environments)

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

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

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

属性(Properties)


 

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

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

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

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

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

类型别名(typeAliases)

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

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

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

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

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

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

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

设置(Settings)

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

映射器(mappers)

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

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

  • resources
<!--每一个Mapper.XML都需要在Mybatis核心配置文件中注册!-->
<mappers>
    <mapper resource="com/kuang/dao/UserMapper.xml"/>
</mappers>
  • class

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

<!--每一个Mapper.XML都需要在Mybatis核心配置文件中注册!-->
<mappers>
    <mapper class="com.kuang.dao.UserMapper"/>
</mappers>
  • package
使用这种方式:接口和他的Mapper配置文件必须同名!接口和他的Mapper配置文件必须在同一包下!
 
<!--每一个Mapper.XML都需要在Mybatis核心配置文件中注册!-->
<mappers>
    <package name="com.kuang.dao"/>
</mappers>
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==uploading.4e448015.gif转存失败重新上传取消 wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

SqlSession的原理与使用

mybatis执行图解wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==uploading.4e448015.gif转存失败重新上传取消wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

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

  • SqlSessionFactoryBuilder

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

  • SqlSessionFactory

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

  • SqlSession

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

可以对比理解一下~

发布了568 篇原创文章 · 获赞 180 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/Delicious_Life/article/details/105649744