首页 /  技术专区  /  Mybatis 宽屏模式 >

Mybatis配置解析

1、核心配置文件

mybatis-config.xml

MyBatis 的配置文件包含了会深深影响MyBatis行为的设置和属性信息。

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

2、环境配置(environments)

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

不过要记住:尽管可以配置多个环境,但每个SqlSessionFactory实例只能选择一种环境。

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

3、属性(properties)

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

这些属性都是可外部配置且可动态替换的,既可以在典型的Java属性文件中配置,亦可通过properties元素的子元素来传递。[db.properties]

编写一个配置文件

db.properties

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8
username=root
password=li980314

在mybatis-config.xml中,引入外部配置文件:

可以直接引入外部文件

<properties resource="db.properties" />

可以在其中增加一些属性配置

<!-- 引入外部配置文件 -->
<properties resource="db.properties">
    <property name="username" value="root"/>
    <property name="password" value="li980314"/>
</properties>

如果两个文件有同一个字段,优先使用外部配置文件的!

4、类型别名(typeAliases)

类型别名是为Java类型设置一个短的名字。

存在的意义仅在于用来减少类完全限定名的冗余。

<!-- 可以给实体类起别名 -->
<typeAliases>
    <typeAlias type="com.allen.pojo.User" alias="User" />
</typeAliases>

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

扫描实体类的包,它的默认别名就为这个类的类名,首字母小写(也可以直接使用,不区分大小写,官网建议小写)!

<!-- 可以给实体类起别名 -->
<typeAliases>
    <package name="com.allen.pojo"/>
</typeAliases>

在实体类比较少的时候,使用第一种方式。

如果实体类十分多,建议使用第二种。

第一种可以DIY别名,第二种则:不行,如果非要改,需要在实体上增加注解。

@Alias("user")
public class User {
}

5、设置(settings)

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

常用:

cacheEnabled:全局性地开启或关闭所有映射器配置文件中已配置的任何缓存。

lazyLoadingEnabled:延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。 特定关联关系中可通过设置 fetchType 属性来覆盖该项的开关状态。

logImpl:指定 MyBatis 所用日志的具体实现,未指定时将自动查找。

还有很多可以参考mybatis官网,这里只列出这三个掌握即可。

6、映射器(mappers)

MapperRegistry:注册绑定我们的Mapper文件;

方式一:使用resource进行绑定注册 【推荐使用】

<mappers>
    <mapper resource="com/allen/dao/UserMapper.xml" />
</mappers>

方式二:使用class文件进行绑定注册

<mappers>
    <mapper class = "com.allen.dao.UserMapper" />
</mappers>

方式三:使用包扫描进行绑定注册

<mappers>
    <package name="com.allen.dao" />
</mappers>

方式二和方式三注意点:

接口和他的Mapper配置文件必须同名!

接口和他的Mapper配置文件必须在同一个包下!

7、其他

typeHandlers(类型处理器)

objectFactory(对象工厂)

plugins(插件)

    mybatis-generator-core

    mybatis-plus

    通用mapper


这些配置了解即可,对于初学者基本是用不到的。


头像
0/200
图片验证码