【MyBatis】全局配置文件—mybatis.xml 创建xml模板
文章目录
- 模板文件
- 配置元素
- typeAliases
- settings
模板文件
创建模板
按照顺序打开【File】–>【settings】–>【Editor】–>【File and Code Templates】(或直接搜索)
<?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>
</configuration>
配置元素
<configuration>
元素是 MyBatis 框架的核心配置元素,包含了MyBatis运行时的所有配置信息。
<!ELEMENT configuration (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?)>
MyBatis 配置文件中可能包含的各种子元素及其顺序
<properties>
: 用于引入外部属性文件,可以定义一些变量供整个配置文件使用。<settings>
: 配置MyBatis的行为,比如开启或关闭缓存、设置日志实现等。<typeAliases>
: 为Java类型设置别名,可以在映射文件中使用更短的名字来代替全限定类名。<typeHandlers>
: 定义如何将预处理语句中的参数转换为JDBC可识别的类型,以及如何从结果集转换回Java类型。<objectFactory>
: 当MyBatis需要创建一个新的对象时,会使用到这个工厂类。可以自定义对象的创建方式。<objectWrapperFactory>
: 自定义MyBatis如何包装返回的对象。<reflectorFactory>
: 可以自定义反射器工厂,影响MyBatis如何通过反射访问对象属性。<plugins>
: 插件元素,用于扩展MyBatis的功能,如分页插件等。<environments>
: 定义环境配置,包括事务管理和数据源配置,支持配置多种环境。<databaseIdProvider>
: 提供数据库厂商ID,可以用来根据不同的数据库厂商执行不同的SQL语句。<mappers>
: 映射文件的注册,告诉MyBatis去哪里找映射文件。
typeAliases
<configuration>
<!-- 简化包名 -->
<typeAliases>
<package name="com.hz.pojo"/>
</typeAliases>
<!-- 其他配置项 -->
</configuration>
使用 <package>
标签时,MyBatis 会自动为指定包下的所有类生成别名。别名默认为类名(不包括包名),并且首字母小写。例:
com.hz.pojo.User
的别名为user
com.hz.pojo.Order
的别名为order
若需要为某个类指定一个特定的别名,可以使用 <typeAlias>
标签:
<typeAliases>
<package name="com.hz.pojo"/>
<typeAlias type="com.hz.pojo.Bill" alias="myBill"/>
</typeAliases>
设置后,在SQL映射文件中就可以直接使用这些别名,而不需要写完整的类路径
<mapper namespace="com.hz.dao.BillDao">
<select id="findBillById" parameterType="Long" resultType="bill">
select id,billCode,productName,productDesc
from smbms_bill a where id = #{id}
</select>
</mapper>
settings
<settings>
<!-- 配置 MyBatis 的日志实现 -->
<setting name="logImpl" value="LOG4J"/>
</settings>
MyBatis支持多种日志实现,包括但不限于:SLF4J
、LOG4J
、COMMONS_LOGGING
、STDOUT_LOGGING
、NO_LOGGING
。其中,STDOUT_LOGGING
将日志直接输出到标准输出流(通常是控制台)。
示例:
<?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"></properties>
<settings>
<!-- value="STDOUT_LOGGING" 配置打印SQL语句 -->
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<!--简化包名-->
<typeAliases>
<package name="com.hz.pojo"/>
</typeAliases>
<!--创建数据源 默认加载cs-->
<environments default="development">
<environment id="development">
<!--采用 JDBC方式加载事务-->
<transactionManager type="JDBC"></transactionManager>
<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>
<!--扫描mapper文件-->
<mappers>
<mapper resource="mappers/UserMapper.xml"/>
<mapper resource="mappers/ProviderMapper.xml"/>
</mappers>
</configuration>