<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper SYSTEM "http://mybatis.org/dtd/mybatis-3-mapper.dtd" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN">
-<mapper namespace="com.gyf.mapper.UserMapper">
<!-- ===================第一天内容=======================-->
<insert parameterType="user" id="save">INSERT INTO user (username,sex,birthday,address)VALUE (#{username},#{sex},#{birthday},#{address}) </insert>
<select parameterType="int" id="findUserById" resultType="user">SELECT * FROM user WHERE id = #{id} </select>
<!--通过包装类查询用户-->
<select parameterType="userQueryVO" id="findUserByUserQueryVo" resultType="user">SELECT u.* FROM user u WHERE u.id = #{user.id} </select>
<!--通过Map查询数据-->
<select parameterType="hashmap" id="findUserByMap" resultType="user">SELECT u.* FROM user u WHERE username LIKE '%${username}%' AND sex = #{sex} </select>
<!-- ==================第二天内容======================-->
<!--1 设置返回数据为基本类型,int,double,long,string....-->
<!-- 查询用户的个数 -->
<select parameterType="userQueryVO" id="findUserCount" resultType="int">SELECT COUNT(*) FROM user WHERE sex = #{user.sex} </select>
<!--2.设置返回数据为resultMap -->
-<resultMap id="userResultMap" type="user">
<id column="id_" property="id"/>
<result column="username_" property="username"/>
<result column="sex_" property="sex"/>
<result column="birthday_" property="birthday"/>
<result column="address_" property="address"/>
</resultMap>
<select parameterType="int" id="findUserByIdResultMap" resultMap="userResultMap">SELECTid id_,username username_,sex sex_,birthday birthday_,address address_FROM user WHERE id = #{id} </select>
<!-- 3.if和where的使用-->
-<sql id="select_user_where">
-<if test="user != null">
<if test="user.sex != null and user.sex != ''">sex = #{user.sex} </if>
<if test="user.username != null and user.username != ''">and username LIKE '%${user.username}%' </if>
<if test="user.address != null and user.address != ''">and address LIKE '%${user.address}%' </if>
</if>
</sql>
-<select parameterType="userQueryVO" id="findUserList" resultType="user">
/*性别和名字*/ SELECT * FROM user
-<where>
<include refid="select_user_where"/>
</where>
</select>
<!-- 4.foreac使用讲解-->
-<select parameterType="userQueryVO" id="findUserByIds" resultType="user">
<!--性别和名字 SELECT * FROM user WHERE id in (1,2,3) -->
SELECT * FROM user
-<where>
-<if test="ids != null and ids.size > 0">
<!--collection:集合,写集合属性 item:遍历接收变量 open:遍历开始 close:遍历结束 separator:拼接格式 for(Integer id : ids){} -->
<foreach separator="," close=")" open="id in(" item="id" collection="ids">${id} </foreach>
</if>
</where>
</select>
<!-- 5.参数是数组如果参数是数组的话,parameterType可以写全名【java.util.List】,也可以写别名遍历或者判断的时候,都用list变量 -->
-<select parameterType="list" id="findUserByIds2" resultType="user">
<!--性别和名字 SELECT * FROM user WHERE id in (1,2,3) -->
SELECT * FROM user
-<where>
-<if test="list != null and list.size > 0">
<foreach separator="," close=")" open="id in(" item="id" collection="list">${id} </foreach>
</if>
</where>
</select>
<!-- ==============查询用户信息及用户购买的商品信息============-->
-<resultMap id="userRslMap" type="user">
<!-- 1.匹配user属性 -->
<id column="id" property="id"/>
<result column="username" property="username"/>
<result column="password" property="password"/>
<!--2.匹配user的orderList-->
-<collection property="orderList" ofType="orders">
<id column="order_id" property="id"/>
<result column="number" property="number"/>
<result column="createtime" property="createtime"/>
<result column="note" property="note"/>
<!-- 3.匹配Orders里有orderDetails-->
-<collection property="orderDetails" ofType="orderDetail">
<id column="detail_id" property="id"/>
<result column="items_id" property="itemsId"/>
<result column="items_num" property="itemsNum"/>
<!-- 4.配置定单详情的商品信息-->
-<association property="items" javaType="items">
<id column="items_id" property="id"/>
<result column="name" property="name"/>
<result column="price" property="price"/>
<result column="detail" property="detail"/>
</association>
</collection>
</collection>
</resultMap>
<select id="findUserAndOrderInfo" resultMap="userRslMap">SELECTu.id,u.username,u.address,o.id order_id,o.number,o.createtime,o.note,od.id detail_id,od.items_id,od.items_num,it.name,it.price,it.detailFROMuser u,orders o,orderdetail od,items itWHEREo.user_id = u.idAND o.id = od.orders_idAND od.items_id = it.id </select>
</mapper>
pojo类,查询条件是综合的查询条件,不仅包括用户查询条件还包括其它的查询条件(比如将用户购买商品信息也作为查询条件),这时可以使用包装对象传递输入参数。