Mybatis框架(三)—核心配置文件
配置文件结构
configuration(配置)
-properties(属性) 重点
-settings(设置) 重点
-typeAliases(类型别名) 重点
-environments(环境配置)
--environment(环境变量)
--transactionManager(事务管理器)
--dataSource(数据源)
-mappers(映射器) 重点
属性(properties)
通过properties属性来引用配置文件
方式(一):
1、在resources目录下创建【db.properties】文件
2、编写db.properties配置文件:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8
username=root
password=123456
3、在mybatis核心配置文件中映入db.properties配置文件
<!--引入外部配置文件-->
<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>
方式(二):
1、在resources目录下创建【db.properties】文件
2、编写db.properties配置文件:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8
3、在mybatis核心配置文件中映入db.properties配置文件
<properties resource="db.properties">
<property name="username" value="root"/>
<property name="password" value="123456"/>
</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>
类型别名(typeAliases)
- 类型别名是为 Java 类型设置一个短的名字。
- 存在的意义仅在于用来减少类完全限定名的冗余。
方式一:给实体类起别名
<!--可以给实体类起别名,别名为User-->
<typeAliases>
<typeAlias type="com.kuang.pojo.User" alias="User"/>
</typeAliases>
方式二:给包起别名
<--扫描实体类的包,它的默认别名就为这个类的类名,首字母小写!-->
<typeAliases>
<package name="com.study.pojo"/>
</typeAliases>-->
方式三:用注解给该类起别名
@Alias("user")
public class User {}
设置(settings)
这是MyBatis中极为重要的调整设置,它们会改变MyBatis的运行时行为。下表描述了设置中各项设置的含义、默认值等。
设置名 | 描述 | 有效值 | 默认值 |
---|---|---|---|
cacheEnabled | 全局性地开启或关闭所有映射器配置文件中已配置的任何缓存。 | true | false |
lazyLoadingEnabled | 延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。 特定关联关系中可通过设置 fetchType 属性来覆盖该项的开关状态。 | true | false |
useColumnLabel | 使用列标签代替列名。实际表现依赖于数据库驱动,具体可参考数据库驱动的相关文档,或通过对比测试来观察。 | true | false |
useGeneratedKeys | 允许 JDBC 支持自动生成主键,需要数据库驱动支持。如果设置为 true,将强制使用自动生成主键。尽管一些数据库驱动不支持此特性,但仍可正常工作(如 Derby)。 | true | false |
mapUnderscoreToCamelCase | 是否开启驼峰命名自动映射,即从经典数据库列名 A_COLUMN 映射到经典 Java 属性名 aColumn。 | true | false |
logImpl | 指定 MyBatis 所用日志的具体实现,未指定时将自动查找。 | [SLF4J] [LOG4J] [LOG4J2] [JDK_LOGGING] [COMMONS_LOGGING] [STDOUT_LOGGING] [NO_LOGGING] | 未设置 |
一个配置完整的 settings 元素的示例如下:
<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>
映射器(mappers)
MapperRegistry:注册绑定我们的Mapper文件
方式一: 【推荐使用】
<!-- 使用相对于类路径的资源引用 -->
<mappers>
<mapper resource="com/study/dao/UserMapper.xml"/>
</mappers>
方式二:使用class文件绑定注册
<!-- 使用映射器接口实现类的完全限定类名 -->
<mappers>
<mapper class="com.study.dao.UserMapper"/>
</mappers>
方式三:使用扫描包进行注入绑定
<!-- 将包内的映射器接口实现全部注册为映射器 -->
<mappers>
<package name="com.kuang.dao"/>
</mappers>