一、数据库列名和属性名不一致resultMap配置
<select id="getStandardById" resultMap="m1">
select id, name, description, sort
from pms_album
where id = #{id}
</select>
<resultMap id="m1" type="cn.tude.csmall.product.pojo.vo.AlbumStandardVO">
<result column="product_count" property="productCount"/>
<result column="comment_count" property="commentCount"/>
<result column="positive_comment_count" property="positiveCommentCount"/>
</resultMap>
二、多字段删除
mapper接口定义
/**
* 多删除
*/
int deleteIds(Long...id);
xml中 collection="array"类型 array或者list separator="," 分割符 item="id"与#{id}与循环的名字一样
<!-- int deleteIds(Long...id);-->
<delete id="deleteIds">
delete from pms_album where id in (
<foreach collection="array" separator="," item="id">
#{id}
</foreach>
)
</delete>
测试类中调用传入多参
/**
* 多字段删除
*/
@Test
void delete(){
mapper.deleteIds(2l,3l,4l);
}
三、多字段插入
/**
* 批量插入
* @param albumList
* @return
*/
int insertBatch(List<Album> albumList);
<!-- int insertBatch(List<Album> albumList);-->
<insert id="insertBatch" useGeneratedKeys="true" keyProperty="id">
insert into pms_album(name,description,sort)
values
<foreach collection="list" item="albumList" separator=",">
(#{albumList.name},#{albumList.description},#{albumList.sort})
</foreach>
</insert>
/**
* 批量插入
*/
@Test
void testinsertBatch() {
List<Album> albumList = new ArrayList<>();
for (int i = 0; i <= 10; i++) {
Album album=new Album();
album.setName("批量测试" + i);
album.setDescription("批量测试简介" + i);
album.setSort(i);
albumList. add(album);
}
int insert = mapper.insertBatch(albumList);
System.out.println(this.getClass().getName() + "插入成功,受影响行:" + insert);
}
四、更新单个字段其他字段不受影响
/**
* 选择性更新字段
* @return
*/
int updateById(Album album);
<!--int updateById(Album album);-->
<update id="updateById">
update pms_album
<set>
<if test="name!=null">
name=#{name},
</if>
<if test="description!=null">
description=#{description},
</if>
<if test="sort!=null">
sort=#{sort}
</if>
</set>
where id=#{id}
</update>
/**
* 更新字段
*/
@Test
void testupdate(){
Album album=new Album();
/* album.setName("批量测试3");*/
album.setDescription("批量测试简介5");
/*album.setSort(6);*/
album.setId(5l);
int result =mapper.updateById(album);
System.out.println("影响行数:" + result);
}