目录
1.namespace
namespace命名空间,用于与类中的mapper(dao)层下的Mapper接口相绑定
如:TacherMapper.xml中的namespace="com.example.test.mapper.TeacherMapper"
即表示该xml映射文件对应Teacher Mapper接口(dao)层
2.增删改查语句
在mapper.xml文件中可以在标签中直接写数据库语言
增删改查对应标签:
<update>更新语句</update>
<select>查询语句</select>
<delete>删除语句</delete>
<insert>插入语句</insert>
3.resultType
表示返回值类型
可选类型:
1、java的基础类型及其包装类int,double和java.lang.Integer,java.lang.Double等
2、实体类,自己定义的实体类
等
4.resultMap
属性说明:
- id属性 ,resultMap标签的标识。
- type属性 ,返回值的全限定类名,或类型别名。
子元素说明:
- id元素 ,用于设置主键字段与领域模型属性的映射关系
- result元素 ,用于设置普通字段与领域模型属性的映射关系
<id property = "Id" column = "Id"> //用于设置主键的映射关系
<result property = "idCard" column = "id_card"> //用于设置表中字段的映射关系
property | 需要映射到JavaBean 的属性名称 |
column | 数据库中表的字段 |
例:
<resultMap type="TeacherEntity" id="teacherResultMap">
<id property="teacherID" column="TEACHER_ID" />
<result property="teacherName" column="TEACHER_NAME" />
<result property="teacherSex" column="TEACHER_SEX" />
</resultMap>
<select id="getTeacher" parameterType="String" resultMap="teacherResultMap">
SELECT *
FROM TEACHER_TBL TT
WHERE TT.TEACHER_ID = #{teacherID}
</select>
5.parameterType
传参类型:
- 基本数据类型:int,string,long,Date;
- 复杂数据类型:类和Map
如何获取参数中的值:
- 基本数据类型:#{参数} 获取参数中的值
- 复杂数据类型:#{属性名} ,map中则是#{key}
6.trim
prefix | 在trim开始部分添加内容 |
suffix | 在trim结束部分添加内容 |
prefixOverrides | 去除trim开始部分的内容 |
suffixOverrides | 去除trim结束部分的内容 |
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="name != null and name != ''">name,</if>
<if test="gender != null">gender,</if>
<if test="idCard != null and idCard != ''">id_card,</if>
<if test="birth != null">birth,</if>
<if test="age != null">age,</if>
<if test="department != null">department,</if>
<if test="remark != null">remark,</if>
<if test="creatTime != null">creat_time,</if>
<if test="updateTime != null">update_time,</if>
<if test="updateBy != null">update_by,</if>
</trim>
在上段代码中,在 trim 开始时添加"(" 在 trim 结束时添加")" 在trim结束时删除","
7.if where
为sql语句中的条件查询
8.foreach
foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。
foreach元素的属性主要有 item,index,collection,open,separator,close。
item :表示集合中每一个元素进行迭代时的别名
index :指定一个名字,用于表示在迭代过程中,每次迭代到的位置
open :表示该语句以什么开始
separator :表示在每次进行迭代之间以什么符号作为分隔符
close :表示以什么结束
在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况 下,该属性的值是不一样的,主要有一下3种情况:
1.如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
2.如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
3.如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map