前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mybatis(二)核心配置文件

Mybatis(二)核心配置文件

原创
作者头像
麻辣醉虾
修改2022-04-06 12:31:58
3470
修改2022-04-06 12:31:58
举报

Mybatis核心配置文件

命名:习惯命名为 mybatis-config.xml(习惯命名,非强制) 位置:resources文件夹下 加粗代表文件,正常代表文件夹

先放上一篇文章中配置的Mybaits核心配置文件。

代码语言:javascript
复制
<!-- 声明xml的版本号和编码类型-->
<?xml version="1.0" encoding="UTF-8" ?>

<!-- 设置mybatis约束 -->
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

<!-- 设置数据库的环境 -->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>       //事务管理器,类型JDBC
            <dataSource type="POOLED">              //数据源,pooled表示数据库连接池
                <property name="driver" value="com.mysql.jdbc.Driver"/>  //驱动名称
                //链接地址
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
                //数据库账号和密码(按实际情况来)
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    
<!--    引入映射文件-->
    <mappers>
        <mapper resource="mappers/UserMapper.xml"/>
    </mappers>
    
</configuration>

在configuration中,我们可以添加标签,用来管理Mybatis配置,类似"environments","mappers"等,可以称为标签。

核心配置文件中的 引入标签的顺序:

是由约束决定的 通过约束 【ctrl+鼠标左键】 可以进入 约束查看

<!ELEMENT configuration (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?,objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?)>

下面介绍几个常用的标签

1、properties

  • 作用:用于设置属性,这些属性都是可外部配置和可动态替换的。引入properties文件,此时就可以${属性名}的方式访问属性值
  • 例子:<properties resource="jdbc.properties"></properties>

在resources中添加文件jdbc.properties

代码语言:javascript
复制
jdbc.driver=com.mysql.jdbc.Driver
#jdbc:url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=123456

此时,在mybatis-config.xml中,就可使用${属性名}的方式访问属性值

此时的environments 如下所示

代码语言:javascript
复制
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

可以看到,原来的配置信息都使用${jdbc.xxx}来代替。

2、settings

  • 作用:用来配置一些改变运行时行为的信息,例如是否使用缓存机制,是否使用延迟加载,是否使用错误机制等。并且可以设置最大并发请求数量、最大并发事务数量,以及是否启动命名空间等
  • 例子:
代码语言:javascript
复制
    <settings>
        <!--将表中字段的下划线自动转换为驼峰-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <!--开启延迟加载-->
        <setting name="lazyLoadingEnabled" value="true"/>
        <!-- 设置是否启动缓存 -->
  		<setting name="cacheEnabled" value="true"/>
    </settings>

3、typeAliases

  • 作用:别名设置,用来设置一些别名来代替Java的长类型声明(如java.lang.int变成int),减少配置编码的冗余
  • 例子:
代码语言:javascript
复制
 <typeAliases>
        <!--
        type:需要设置别名的类型的全类名
        alias:设置此类型的别名,且别名不区分大小写。若不设置此属性,该类型拥有默认的别名,即类名
        -->
        <!--方法一-->
        <!--<typeAlias type="com.mlzx.entity.User"></typeAlias>-->
        
        <!--方法二-->
        <!--<typeAlias type="com.mlzx.entity.User" alias="user"></typeAlias>-->
        
        <!--方法三-->
        <!--以包为单位,设置改包下所有的类型都拥有默认的别名,即类名且不区分大小写-->
        <package name="com.mlzx.mapper"/>
    </typeAliases>
  • 区别:方法一和二和方法三比较,在配置类较多的时候,会有一定的冗余,所以一般采用方法三。

4、mappers

  • 作用:引入映射文件
代码语言:javascript
复制
<!--引入映射文件-->
    <mappers>
        <!--方法一-->
        <!-- <mapper resource="UserMapper.xml"/> -->
        
        <!--方法二-->
        <!--以包为单位,将包下所有的映射文件引入核心配置文件
        注意:
			1. 此方式必须保证mapper接口和mapper映射文件必须在相同的包下
			2. mapper接口要和mapper映射文件的名字一致
        -->
        <package name="com.mlzx.entity"/>
    </mappers>

最终配置文件

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--引入properties文件,此时就可以${属性名}的方式访问属性值-->
    <properties resource="jdbc.properties" />
    <typeAliases>
    <!--
    typeAlias:设置某个具体的类型的别名
    属性:
    type:需要设置别名的类型的全类名
    alias:设置此类型的别名,且别名不区分大小写。若不设置此属性,该类型拥有默认的别名,即类名
    -->
<!--    <typeAlias type="com.mlzx.entity.User" alias="User"></typeAlias>-->
    <!--以包为单位,设置改包下所有的类型都拥有默认的别名,即类名且不区分大小写-->
    <package name="com.mlzx.entity"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
<!--    引入映射文件-->
    <mappers>
        <package name="com.mlzx.mapper"/>
    </mappers>
</configuration>

查询测试结果

代码语言:javascript
复制
[User{id=1, username='张三', password='12345', age=23, sex='男', email='1234@qq.com'}, 
 User{id=6, username='admins', password='12345', age=23, sex='男', email='1234@qq.com'}]

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Mybatis核心配置文件
    • 1、properties
      • 2、settings
        • 3、typeAliases
          • 4、mappers
          • 最终配置文件
          • 查询测试结果
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档