MyBatis配置文件
MyBatis配置文件_properties
MyBatis配置文件结构:
1 | -configuration |
properties
属性值定义。properties标签中可以定义属性值,也可以引入外部配置文件。无论是内部定义还是外部引入,都可以使用${name}获取值。
例如:我们可以将数据源配置写到外部的db.properties中,再使用properties标签引入外部配置文件,这样可以做到动态配置数据源。
编写db.properties
1
2
3
4
51
com.mysql.jdbc.Driver =
jdbc:mysql://localhost:3306/mybatis =
root =
root =在配置文件中引入db.properties
1
2
3
4
5
6
7
8
9
10
11
12resource="db.properties"></properties>
default="mysql">
id="mysql">
type="JDBC"></transactionManager>
type="POOLED">
name="driver" value="${jdbc.driver}"/>
name="url" value="${jdbc.url}"/>
name="username" value="${jdbc.username}"/>
name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
当然我们也可以将数据源数据通过<properties>
配置到MyBatis配置文件内,但这样做没什么意义。
1 | <properties> |
MyBatis配置文件_settings
<settings>
是配置MyBatis运行时的一些行为的,例如缓存、延迟加载、命名规则等一系列控制性参数。后期我们会使用该标签配置缓存和延迟加载等。
MyBatis配置文件_plugins
<plugins>
是配置MyBatis插件的。插件可以增强MyBatis功能,比如进行sql增强,打印日志,异常处理等。后期我们会使用该标签配置分页插件。
MyBatis配置文件_typeAliases
MyBatis对常用类有默认别名支持,比如java.lang.Stirng的别名为string。除此之外,我们也可以使用<typeAliases>
设置自定义别名。
为一个类配置别名
1 | <typeAliases> |
此时我们即可在映射文件中使用自定义别名,如:
配置文件:
1
2
3<typeAliases>
type="com.itbaizhan.pojo.User" alias="User"> </typeAlias>
</typeAliases>映射文件:
1
2
3id="findAll" resultType="User">
select * from user
</select>
为一个所有包下的所有类配置别名
1 | <typeAliases> |
此时该包下的所有类都有了别名,别名省略包名,和类名相同。如:
配置文件:
1
2
3<typeAliases>
name="com.itbaizhan.pojo"></package>
映射文件:
1
2
3id="findPage2" resultType="User" parameterType="PageQuery">\
select * from user limit #{startIndex},#{pageSize}
</select>
MyBatis配置文件_mappers
<mappers>
用于注册映射文件或持久层接口,只有注册的映射文件才能使用,共有四种方式都可以完成注册:
使用相对路径注册映射文件
1
2
3<mappers>
resource="com/itbaizhan/mapper/UserMapper.xml"/>
</mappers>使用绝对路径注册映射文件
1
2
3<mappers>
url="file:///C:\Users\a\IdeaProjects\mybatiscase\mybatisDemo1\src\main\resources\com\itbaizhan\mapper\UserMapper.xml"/>
</mappers>注册持久层接口
1
2
3
class="com.itbaizhan.mapper.UserMapper"/>
</mappers>注册一个包下的所有持久层接口
1
2
3<mappers>
name="com.itbaizhan.mapper"/>
MyBatis配置文件_sql 、include标签
<sql>
用来定义可重用的sql片段,通过<include>
引入该片段
如:sql语句查询字段起与Pojo属性相同的别名,该sql片段就可以重用
1 | id="findAllField"> |
1 | id="findAll" resultType="Teacher" > |
MyBatis映射文件_特殊字符处理
在Mybatis映射文件中尽量不要使用一些特殊字符,如:<
,>
等。
我们可以使用符号的实体来表示:
符号 | 实体 |
---|---|
< | < |
> | > |
& | & |
‘ | ' |
“ | " |
如:
1 | id="findById2" resultType="com.itbaizhan.pojo.Teacher"> |