MyBatis配置说明
config.xml
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
Mybatis的核心配置文件顺序
must match
“(properties?,settings?,typeAliases?,
typeHandlers?,objectFactory?,objectWrapperFactory?,
reflectorFactory?,plugins?,environments?,
databaseIdProvider?,mappers?)”.
常用的配置标签
- configuration 核心配置
- typeAliases typeAlias 别名
type: POJO对象的路径
alias: 为当前的POJO对象起名 - environments 环境配置
<environments default="development">
<!--编辑开发环境-->
<environment id="development">
<!--mybatis采用jdbc的方式控制数据库事务-->
<transactionManager type="JDBC"/>
<!--type="POOLED" 创建一个数据源链接池,每次从池中获取链接-->
<dataSource type="POOLED">
<!--
版本信息:
如果数据源采用5.x的版本 value:com.mysql.jdbc.Driver
如果数据源采用8.x的版本 value:com.mysql.cj.jdbc.driver
-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/jt?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
MyBatis加载Mapper映射文件
mappers mapper
resource 映射mapper.xml文件路径
mapper.xml
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
常用标签
- mapper
namespace 是mybaits映射文件的唯一标识,绑定mapper接口全路径 - select
id 对应接口的方法
resultType对应pojo的实体类的全路径
resultMap 当数据库的字段名与实体类的属性不一致时使用
标签: resultMap
select id=“接口方法” resultMap="同步别名同下 "
SQL语句
selectresultMap id=“同步别名同上” type=“实体类路径”
//表示id
id column=“数据库属性” property=“实体类属性”
//映射其他属性
result column=“数据库属性” property=“实体类属性”
resultMap
标签: foreach 循环遍历集合
标签: foreach 循环遍历集合
- collection 表示遍历的集合类型
数组 关键字array
List集合 关键字List
Map集合 关键字Map中的key- open 循环开始标签
close 循环结束标签 包裹循环体- separator 分割符
- item 当前循环遍历的数据的变量
-
insert
-
update
-
delete
-
关于转义的说明:
xml文件中个别的字母需要转义
大于 >= >
小于 <= <
与号 & &
转义标签 <![CDATA[ 需要转义的内容 ]]>
动态SQL语句
条件
核心思想: 自动判断是否为null 如果为null,该字段不参与SQL
动态SQL规则:
- if test=“写判断条件,可以直接获取属性值”
true: 会拼接 字段条件
false: 不会拼接字段条件
多余的关键字
由于动态sql拼接必然会导致多余的and 或者 or
where标签说明 可以去除 where后边多余的and 或者 or
分支
核心思想: 如果只需要一个条件有效,则使用分支结构用法
- choose
when test=“写判断条件,可以直接获取属性值”
otherwise