mybatis-config.xml配置解析
-
核心配置文件
MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 配置文档的顶层结构如下: configuration(配置) properties(属性) settings(设置) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境配置) environment(环境变量) transactionManager(事务管理器) dataSource(数据源) databaseIdProvider(数据库厂商标识) mappers(映射器)
-
环境配置
MyBatis 可以配置成适应多种环境
不过要记住:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。
mybatis默认的事务管理器是jdbc 连接池pooled
-
属性
可以通过properties属性来实现引用配置文件
db.properties
driver:com.mysql.cj.jdbc.Driver url=dbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 username=root password=123456
在xml中所有的标签都可以规定顺序
在核心配置文件中引入
<!-- 引入外部配置文件 --> <properties resource="db.properties"> </properties>
可以在其中增加一些属性配置
如果两个文件有同一个字段优先使用外部配置文件
-
类型别名
- 类型别名是为java类型设置一个短的名字
- 用来减少类完全限定名的冗余
<!-- 可以给实体类起别名 --> <typeAliases> <typeAlias type="com.yu.pojo.User" alias="User"></typeAlias> </typeAliases>
也可以指定一个包名mybatis会在包名下搜索javabean
扫描实体类的包 默认别名为这个类的类名 首字母小写
<typeAliases> <package name="com.yu.pojo "/> </typeAliases>
在实体类比较少的时候使用第一种
如果实体类比较多建议使用第二种
第一种可以自定义别名,第二种可以通过在实体类增加注解修改
-
设置
设置名 描述 有效值 默认值 cacheEnabled 全局性地开启或关闭所有映射器配置文件中已配置的任何缓存。 true | false true lazyLoadingEnabled 延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。 特定关联关系中可通过设置 fetchType
属性来覆盖该项的开关状态。true | false false logImpl 指定 MyBatis 所用日志的具体实现,未指定时将自动查找。 SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING 未设置 -
映射器
MapperRegistry:注册绑定mapper文件
-
方式一:[推荐]
<mappers> <mapper resource="com/yu/dao/UserMapper.xml"/> </mappers>
-
方式二:使用class文件绑定注册
<mappers> <mapper class="com.yu.dao.UserMapper"/> </mappers>
注意:
- 接口和他的Mapper配置文件必须同名
- 接口和他的Mapper文件必须在同一个包下
-
方式三:使用扫描包进行注入
<mappers> <package name="com.yu.dao"/> </mappers>
-
进行注入
```xml
<mappers>
<package name="com.yu.dao"/>
</mappers>
```