mapper.xml

<?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类,查询条件是综合的查询条件,不仅包括用户查询条件还包括其它的查询条件(比如将用户购买商品信息也作为查询条件),这时可以使用包装对象传递输入参数。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值