栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Mybatis】核心配置文件解析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Mybatis】核心配置文件解析

核心配置文件
configuration(配置)
    properties(属性)
    settings(设置)
    typeAliases(类型别名)
    typeHandlers(类型处理器)
    objectFactory(对象工厂)
    plugins(插件)
    environments(环境配置)
        environment(环境变量)
            transactionManager(事务管理器)
            dataSource(数据源)
    databaseIdProvider(数据库厂商标识)
    mappers(映射器)
环境配置(environments)

MyBatis 可以配置成适应多种环境

尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境

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

属性(properties)

我们可以通过properties属性来实现引用配置文件

properties必须放在mybatis-config配置文件的第一个位置

这些属性都是可以外部配置且可以替换的。可以在java文件中配置,也可以在properties元素的子元素进行传递。

编写一个配置文件

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8
username=root
password=miao

在核心文件中引入


    
    
    
        
              
            
                
                
                
                
            
        
    

如果一个属性在不只一个地方进行了配置,那么,MyBatis 将按照下面的顺序来加载:

  • 首先读取在 properties 元素体内指定的属性。
  • 然后根据 properties 元素中的 resource 属性读取类路径下属性文件,或根据url 属性指定的路径读取属性文件,并覆盖之前读取过的同名属性。
  • 最后读取作为方法参数传递的属性,并覆盖之前读取过的同名属性。

因此,通过方法参数传递的属性具有最高优先级,resource/url属性中指定的配置文件次之,最低优先级的则是 properties 元素中指定的属性。

类型别名(typeAliases)
  • 类型别名可为 Java 类型设置一个缩写名字。
  • 它仅用于 XML 配置,意在降低冗余的全限定类名书写。
  • 放在配置文件的第三个位置

    

也可以指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean

在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名


    

在实体类少时可以使用第一种方式,在实体类多时使用第二种

第二种方式可以通过@Alias注解方式取别名

@Alias("hello")
public class User {
设置(settings)

映射器(mappers)

第一种方法用----resource进行配置:


    

第二种方法—用class进行配置


    

需要Mapper和Mapper的配置文件在一个包内且名字相同

第三种方法—用package进行配置


    

需要Mapper和Mapper的配置文件在一个包内且名字相同

可以直接放在resource文件下,可以直接写文件名


    

作用域(Scope)和生命周期

理解我们之前讨论过的不同作用域和生命周期类别是至关重要的,因为错误的使用会导致非常严重的并发问题

SqlSessionFactoryBuilder:

  • 一旦创建就不用了
  • 局部变量

SqlSessionFactory:

  • 可以看作是数据库连接池
  • 在应用运行期间一直存在
  • 应用作用域

SqlSession:

  • 连接到连接池的一个请求
  • sqlSession的实例不安全,因此不能被共享,因此作用于请求作用域
  • 用完后就关闭

Mapper:

  • 由sqlSession获得
  • 代表一个具体业务
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/644764.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号