mybatis 操作总结

1.<Select> 标签也可以实现插入语句

使用 Select 标签,实际执行的是Insert 插入是可行的,相对应的不能返回自增id

 <select id="insertTradingAnnouncement">
        insert into t_trading_announcement(trading_account_id,content,visible_status,delete_status,read_number)
        values(#{param.tradingAccountId},#{param.content},1,1,0)
   </select>

2.如何批量插入数据?

<insert id="insertPicture">
    insert into t_comment_picture(url,comment_id) values
    <foreach collection="param.urls" item="url"  separator=",">
        (#{url},#{param.id})
    </foreach>
</insert>

将需要插入的数据使用<foreach> ,将数据集合遍历插入

<foreach> 标签成员属性:

  1. collection 是集合,需要被foreach 的对象
  2. separator  元素之间的分隔符,例如 separator = ","
  3. item 集合迭代的别名
  4. open 一般和 close 一起使用,如 open = "(" , close = ")"
  5. close 
  6. index 在list 中表示的序号,在 map 中,表示元素的 key

3.mybatis 与 mysql 在插入,自增主键如何获取?

 <insert id="commentSubject" useGeneratedKeys="true" keyProperty="id">
        insert into t_comment(from_user_id,subject_id,content,comment_status)
        values(#{param.fromUserId},#{param.subjectId},#{param.content},1)
    </insert>

在<Insert> 标签中加入 useGeneratedKeys = true  与 keyProperty = "被映射的属性",将返回的id 映射到实体 ,执行  commenrtSubject 的结果返回值还是影响的行数,返回的id 需要在实体中获取

public ResponseInfo<?> commentSubject(CommentParam param) {
        commentDao.commentSubject(param);
       System.out.println(param.getId());
     return ResponseInfo.ok(CommentSubCode.INSERT_COMMENT_SUCCESS);
}

 4. sql 语句中的比较符号

<   &lt;

<=   &lt;=

>  &gt;

>=   &gt;=

原文地址:https://www.cnblogs.com/bytecodebuffer/p/13737859.html