转载

Mybatis之使用总结

  • 如果需要使用多表连接查询,使用 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之使用总结/
正文到此结束
Loading...