1、mybatis XML 配置文件结果集的作用。
(1)resultMap标签是为了映射select查询出来结果的集合,其主要作用是将实体类中的字段与数据库表中的字段进行关联映射。
注意:当实体类中的字段与数据库表中的字段相同时,可以将resultMap标签中的关联关系忽略不写。当实体类中的字段与数据库表中的字段不相同时,就需要在resultMap标签中将实体类字段与数据库字段一 一进行关联映射。
||| 划重点
一、查询语句需要返回一个结果集,所以才有resultMap属性。
查询也需要接受前台传递的数据,类型必须匹配。
<select id="selectByPrimaryKey" parameterType="java.lang.Integer"
resultMap="BaseResultMap">
二、增加和修改需要接收参数,所以会有parameterType=”“属性,一般参数里边是对应的实体类类型。
<insert id="insert" parameterType="com.chen.bean.Employee">
<update id="updateByExampleSelective" parameterType="map">
三、删除
接收来自需要删除的条件,parameterType类型必须和传递的类型一致。
<delete id="deleteByExample" parameterType="com.chen.bean.EmployeeExample">
查询实例:
这里是sql的查询语句。跟普通的sql没什么区别。
<select id="selectByPrimaryKeyWithDept" resultMap="WithDeptResultMap">
select
//此处动态的引入sql标签的(refID 意思是指向哪个id的sql)也可以写正常的sql
<include refid="WithDept_Column_List" />
FROM tal_emp e LEFT JOIN tnl_dept d ON
tal_emp.`d_id`=tnl_dept.`dept_id`
where emp_id =
#{empId,jdbcType=INTEGER}
</select>
//这里指的是查询语句中需要返回的结果集字段。
<sql id="WithDept_Column_List">
emp_id, emp_name, gender,
email,d_id,dept_id,dept_name
</sql>
//这里是查询语句返回的结果集
<resultMap type="com.chen.bean.Employee" id="WithDeptResultMap">
<id column="emp_id" jdbcType="INTEGER" property="empId" />
<result column="emp_name" jdbcType="VARCHAR" property="empName" />
<result column="gender" jdbcType="CHAR" property="gender" />
<result column="email" jdbcType="VARCHAR" property="email" />
<result column="d_id" jdbcType="INTEGER" property="dId" />
<!-- 使用association和collection完成一对一和一对多高级映射(对结果有特殊的映射要求)。 -->
<association property="department" javaType="com.chen.bean.Department">
<id column="dept_id" property="deptId" />
<result column="dept_name" property="deptName" />
</association>
</resultMap>
增加实例
//动态引入的sql
<sql id="Base_Column_Lis">emp_name,email,gender,d_id
</sql>
<insert id="insertSelective" parameterType="com.chen.bean.Employee">
INSERT INTO tal_emp(
<include refid="Base_Column_Lis" />
) VALUES (#{empName}, #{email}, #{gender}, #{dId})
</insert>