文章目录
- 1. Mybatis之使用总结
- 1.1. 多表连接查询
- 1.2. 表与实体类中的字段不对应
- 1.3. Mapper方法中参数问题
- 1.4. 批量删除
Mybatis之使用总结
多表连接查询
- 如果需要使用多表连接查询,使用
resultMap
对应表与实体类的对应关系太麻烦,我们可以定义一个值对象
,其中封装了多表连接查询返回的字段,我们直接使用值对象接收返回的结果即可 - 比如我们在商城网站上的
显示购物车的模块
,使用的CartVo
代码语言:javascript
复制
/** * 购物车的值对象 * 用于接收多表连接查询的结果 * @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
实现其的对应关系,或者在查询的时候,使用别名即可
Mapper方法中参数问题
- 默认的mapper接口中的方法只能有一个参数,但是我们可以使用
@Param("")
这个注解来新增加参数
批量删除
- 批量删除mapper接口中方法传入的是数组,必须使用
@Param()
标记,否则将不能识别 - 使用的sql语句:
delete from 表名 where id in (.....)
- 我们可以在
<delete>
节点中使用<forEach>
标签来遍历传入的数组
代码语言:javascript
复制
<!--
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>