文章目录
八、MyBatis主配置文件
mybatis-config.xml 是MyBatis框架的主配置文件,主要用于配置MyBatis数据源及属性信息
8.1 properties标签
用于设置键值对,或者加载属性文件
1.可以定义键值对
我在这个标签里定义键值对,在下面其他标签中可以直接${ }调用过来。
如:
<properties>
<property name="mysql_url" value="jdbc:mysql://localhost:3306/testmybatis?characterEncoding=utf-8"/>
</properties>
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="${mysql_url}"/> //看这里
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
但是一般不这样用,没什么意义,仍然还是在同一个配置文件里面。
2.可以引用属性文件
- 在resources目录下创建
jdbc.properties
文件,配置键值对如下:
mysql_driver=com.mysql.cj.jdbc.Driver
mysql_url=jdbc:mysql://localhost:3306/testmybatis?characterEncoding=utf-8
mysql_username=root
mysql_password=root
- 在mybatis-config.xml中通过
properties
标签引用jdbc.properties
文件;引入之后,在配置environment时,可以直接使用jdbc.properties的key获取对应的value
<properties resource="jdbc.properties"></properties>
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${mysql_driver}"/>
<property name="url" value="${mysql_url}"/>
<property name="username" value="${mysql_username}"/>
<property name="password" value="${mysql_password}"/>
</dataSource>
</environment>
</environments>
一般这种方法,用的比较多。这样一来,我的项目不用改代码,只需要修改jdbc.properties
里面的配置项,便于进行数据源的动态修改。
8.2 settings标签
<!-- 设置mybatis的属性 -->
<settings>
<!-- 启动二级缓存 -->
<setting name="cacheEnabled" value="true"/>
<!-- 启动延迟加载 -->
<setting name="lazyLoadingEnabled" value="true"/>
</settings>
一般用不到,用到的时候知道就行。
注意,settings
标签必须写在properties
标签的后面。
8.3 typeAliases标签
用于给实体类取别名,在映射文件中可以直接使用别名来替代实体类的全限定名
- 我们在配置映射文件mapper.xml的时候,
<resultMap id="studentMap" type="com.wyl.pojo.Student"> //全名
<id column="sid" property="stuId"/>
<result column="stu_num" property="stuNum"/>
<result column="stu_name" property="stuName"/>
<result column="stu_gender" property="stuGender"/>
<result column="stu_age" property="stuAge"/>
</resultMap>
定义类型的时候总是要写全路径com.wyl.pojo.Student
。
- 在
mybatis-config.xml
中,通过定义这个标签,相当于起了个别名
<typeAliases>
<typeAlias type="com.wyl.pojo.Student" alias="Student"></typeAlias>
</typeAliases>
在mapper文件中就可以直接在type里面写这个别名了:
<resultMap id="studentMap" type="Student"> //alias定义的别名
<id column="sid" property="stuId"/>
<result column="stu_num" property="stuNum"/>
<result column="stu_name" property="stuName"/>
<result column="stu_gender" property="stuGender"/>
<result column="stu_age" property="stuAge"/>
</resultMap>
当然这个别名你叫什么都行,但是为了可读性,一般这个别名与类名保持一致。
8.4 plugins标签
<!-- 用于配置mybatis插件(例如分页插件) -->
<plugins>
<plugin interceptor=""></plugin>
</plugins>
8.5 environments标签
<!--在environments配置数据库连接信息-->
<!--在environments标签中可以定义多个environment标签,每个environment标签可以定义一套数据库连接配置-->
<!--default属性,用来指定使用哪个-->
<environments default="mysql">
<environment id="mysql">
<!--transactionManager标签用于配置数据库管理方式
type="JDBC" 可以进行事务的提交和回滚操作
type="MANAGED" 依赖容器完成事务管理,本身不进行事务的提交和回滚操作-->
<transactionManager type="JDBC"></transactionManager>
<!--dataSource标签用来配置数据库连接信息 POOLED|UNPOOLED-->
<dataSource type="POOLED">
<property name="driver" value="${mysql_driver}"/>
<property name="url" value="${mysql_url}"/>
<property name="username" value="${mysql_username}"/>
<property name="password" value="${mysql_password}"/>
</dataSource>
</environment>
</environments>
8.6 mappers标签
加载映射配置(映射文件、DAO注解)
- mappers标签用于载入映射文件。你项目中有多少映射文件,这里就应该有多少个mapper标签。
<mappers>
<mapper resource="mappers/StudentMapper.xml"></mapper>
</mappers>
也就是但凡你写的映射文件,都必须载入到主配置文件中。
- 加载DAO注解,很好用,也很简单,后面再讲。