-
如果需要使用多表连接查询,使用
resultMap
对应表与实体类的对应关系太麻烦,我们可以定义一个 值对象
,其中封装了多表连接查询返回的字段,我们直接使用值对象接收返回的结果即可
-
比如我们在商城网站上的
显示购物车的模块
,使用的 CartVo
/**
* 购物车的值对象
* 用于接收多表连接查询的结果
* @author chenjiabing
*/
public class CartVoimplements 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
实现其的对应关系,或者在查询的时候,使用别名即可
Mapper方法中参数问题
-
默认的mapper接口中的方法只能有一个参数,但是我们可以使用
@Param("")
这个注解来新增加参数
批量删除
-
批量删除mapper接口中方法传入的是数组,必须使用
@Param()
标记,否则将不能识别
-
使用的sql语句:
delete from 表名 where id in (.....)
-
我们可以在
<delete>
节点中使用 <forEach>
标签来遍历传入的数组
<!--
void deleteCartById(Integer[] ids);
批量删除
-->
<deleteid="deleteCartById"parameterType="java.lang.Integer">
delete from t_cart
where
id in
<!--
遍历数组ids
collection:需要遍历的数组
item: 数组中的每一个值
open : 开始的内容
close: 结束的内容
separator :每个元素的分割符
最后拼接的就是 (id,id,id,id,id)
-->
<foreachcollection="ids"item="id"open="("separator=","close=")">
#{id}
</foreach>
</delete>
原文
https://chenjiabing666.github.io/2018/05/21/Mybatis之使用总结/