MyBatis的参数传递
parameterType(输入类型)

<!--传递简单类型-->
<delete id="deleteUser" parameterType="int">

    DELETE from user where id = #{id}

</delete>
<!--传递POJO包装对象-->
<select id="findByVo" parameterType="QueryVo" resultType="fun.chenqi.ssm.domain.User">

SELECT *  from user WHERE username = #{user.username}

</select>
<!--传递POJO对象-->
<update id="updateUser" parameterType="fun.chenqi.ssm.domain.User">

UPDATE user  set username = #{username} ,birthday = #{birthday},sex = #{sex} ,address = #{address} WHERE  id = #{id}

</update>
MyBatis的结果封装
resultType (输出类型)

<!--输出简单类型-->
<select id="findUserCount" resultType="int">

SELECT count(*) from user;

</select>
<!--输出POJO列表-->
<select id="findAll" resultType="fun.chenqi.ssm.domain.User">
SELECT * FROM user;
</select>
<!--输出POJO对象-->
<select id="findUserByUsername" resultType="fun.chenqi.ssm.domain.User">

SELECT * from user where username like '%${value}%';

</select>
resultMap 结果类型
resultType 可以指定 pojo 将查询结果映射为 pojo,但需要 pojo 的属性名和 sql 查询的列名一致
方可映射成功。
如果 sql 查询字段名和 pojo 的属性名不一致, 可以通过 resultMap 将字段名和属性名作一个对应
关系 , resultMap 实质上还需要将查询结果映射到 pojo 对象中。
resultMap 可以实现将查询结果映射为复杂类型的 pojo,比如在查询结果映射对象中包括 pojo
和 list 实现一对一查询和一对多查询。

<select id="findByVo" parameterType="QueryVo" resultMap="UserMap">

SELECT id id_ ,username username_ , birthday birthday_ ,sex sex_ , address address_  from user WHERE username = #{user.username}

</select>

<resultMap id="UserMap" type="user">

<id column="id_" property="id"></id>
<!--<result column="id_" property="id"></result>-->
<result column="username_" property="username"></result>
<result column="birthday_" property="birthday"></result>
<result column="sex_" property="sex"></result>
<result column="address_" property="address"></result>

</resultMap>
<!--
id:此属性表示查询结果集的唯一标识,非常重要。如果是多个字段为复合唯一约束则定义多个
property:表示 User 类的属性。
column:表示 sql 查询出来的字段名。
column 和 property 放在一块儿表示将 sql 查询出来的字段映射到指定的 pojo 类属性上。
result:普通结果,即 pojo 的属性。
-->

最后修改:2019 年 07 月 29 日 07 : 02 PM