mybatis配置解析

mybatis配置解析

1、核心配置文件
  • mybatis-config.xml
  • mybatis的配置文件包含了会深深影响mybatis行为的设置和属性信息。
configuration(配置)
properties(属性)
settings(设置)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境配置)
environment(环境变量)
transactionManager(事务管理器)
dataSource(数据源)
databaseIdProvider(数据库厂商标识)
mappers(映射器)
2、环境配置

配置多套环境

mybatis默认的事务管理器就是JDBC 连接池:POOLED

3、属性(properties)

我们可以用properties去读取一些配置文件。

这些属性都是可以外部配置且可以动态替换,既可以在典型的Java属性文件,也可以通过Proppertties元素的子元素来传递

编写一个配置文件

db.properties

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

在核心配置文件编写

<?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 resource="db.properties"/>



    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--每一个Mapper.xml 都需要mybatis核心配置文件中注册-->
    <mappers>
        <mapper resource="org/westos/dao/UserMapper.xml" />
    </mappers>
</configuration>
<!---->
  • 可以直接引入一外部文件
  • 可以在其中增加一些属性配置
  • 如果连个文件由同一个字段,优先使用外部配置文件
4、类型别名
  • 类型别名是为 Java 类型设置一个短的名字。
  • 它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余。
    <properties resource="db.properties"/>
<!--可以给实体类启包名-->
    <typeAliases>
        <typeAlias type="org.westos.pogo.User" alias="User"/>
    </typeAliases>
<!-- 别名只能放在第三位,配置文件由严格的次序区别-->

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

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

    <typeAliases>
        <package name="org.westos.pogo"/>
    </typeAliases>
  • 实体类比较少用第一种
  • 实体类比较多用第二种

也可以加注解指定别名,在扫描包的情况下

package org.westos.pogo;

import org.apache.ibatis.type.Alias;

@Alias("User")   //别名
public class User {
    private int id;
    private String name;
    private String pwd;

    public User() {
    }

    public User(int id, String name, String pwd) {
        this.id = id;
        this.name = name;
        this.pwd = pwd;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", pwd='" + pwd + '\'' +
                '}';
    }
}

5.设置
<settings>
  <setting name="cacheEnabled" value="true"/>   //缓存
  <setting name="lazyLoadingEnabled" value="true"/> //懒加载
  <setting name="multipleResultSetsEnabled" value="true"/>
  <setting name="useColumnLabel" value="true"/>
  <setting name="useGeneratedKeys" value="false"/>
  <setting name="autoMappingBehavior" value="PARTIAL"/>
  <setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
  <setting name="defaultExecutorType" value="SIMPLE"/>
  <setting name="defaultStatementTimeout" value="25"/> //过期时长
  <setting name="defaultFetchSize" value="100"/>
  <setting name="safeRowBoundsEnabled" value="false"/>
  <setting name="mapUnderscoreToCamelCase" value="false"/>
  <setting name="localCacheScope" value="SESSION"/>
  <setting name="jdbcTypeForNull" value="OTHER"/>
  <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>
<!-- 这个配置文件 在别名 和 外部配置文件加载中间 所写-->
6.映射器mappers
<!-- 使用相对于类路径的资源引用 -->
<mappers>
  <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  <mapper resource="org/mybatis/builder/PostMapper.xml"/>
</mappers>
<!--相对少的人,来写自定义文件 -->
<!-- 使用完全限定资源定位符(URL) -->
<mappers>
  <mapper url="file:///var/mappers/AuthorMapper.xml"/>
  <mapper url="file:///var/mappers/BlogMapper.xml"/>
  <mapper url="file:///var/mappers/PostMapper.xml"/>
</mappers>
<!-- 使用映射器接口实现类的完全限定类名 -->
<mappers>
  <mapper class="org.mybatis.builder.AuthorMapper"/>
  <mapper class="org.mybatis.builder.BlogMapper"/>
  <mapper class="org.mybatis.builder.PostMapper"/>
</mappers>
<!-- 使用Class 会产生一些问题,导致无法找到对应文件.
接口和Mapper配置文件,必须同名
接口和Mapper配置文件,必须在同一个包下
-->
<!-- 将包内的映射器接口实现全部注册为映射器 -->
<mappers>
  <package name="org.mybatis.builder"/>
</mappers>
<!-- 使用包扫描 会产生一些问题,导致无法找到对应文件.
接口和Mapper配置文件,必须同名
接口和Mapper配置文件,必须在同一个包下
-->
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值