文章目录
resultMap
对应表与实体类的对应关系太麻烦,我们可以定义一个值对象
,其中封装了多表连接查询返回的字段,我们直接使用值对象接收返回的结果即可显示购物车的模块
,使用的CartVo
/**
* 购物车的值对象
* 用于接收多表连接查询的结果
* @author chenjiabing
*/
public class CartVo implements Serializable {
private static final long serialVersionUID = 8904622535687816912L;
private Integer id; //主键 购物车表中的主键
private String goodsId; //商品的id
private Integer uid; //用户id
private String image; //图片地址
private String title; //商品标题
private Integer price; //商品价格
private Integer num; //加入购物车的商品数量
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getGoodsId() {
return goodsId;
}
public void setGoodsId(String goodsId) {
this.goodsId = goodsId;
}
public Integer getUid() {
return uid;
}
public void setUid(Integer uid) {
this.uid = uid;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
public Integer getNum() {
return num;
}
public void setNum(Integer num) {
this.num = num;
}
@Override
public String toString() {
return "CartVo [id=" + id + ", goodsId=" + goodsId + ", uid=" + uid
+ ", image=" + image + ", title=" + title + ", price=" + price
+ ", num=" + num + "]";
}
}
_
连接的,但是在java中定义是使用驼峰式
的命名风格,因此难免会出现字段不一样的情况,我们一般可以使用resultMap
实现其的对应关系,或者在查询的时候,使用别名即可@Param("")
这个注解来新增加参数@Param()
标记,否则将不能识别delete from 表名 where id in (.....)
<delete>
节点中使用<forEach>
标签来遍历传入的数组<!--
void deleteCartById(Integer[] ids);
批量删除
-->
<delete id="deleteCartById" parameterType="java.lang.Integer">
delete from t_cart
where
id in
<!--
遍历数组ids
collection:需要遍历的数组
item: 数组中的每一个值
open : 开始的内容
close: 结束的内容
separator :每个元素的分割符
最后拼接的就是 (id,id,id,id,id)
-->
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>