ssm,springboot 插入记录后返回ID,批量插入

无敌的宇宙
无敌的宇宙
擅长邻域:Java,HTML,JavaScript,MySQL,支付,退款,图片上传

分类: Java springboot ssm MySQL 专栏: java springboot ssm Mysql 标签: myibats批量插入

2023-01-02 11:30:34 361浏览

ssm,springboot 插入记录后返回ID,批量插入

加入标签useGeneratedKeys="true" keyProperty="oid" oid是标的主键id,数据库将其设置为自增长

<insert id="add" parameterType="com.ssm.gf.model.SpAddress" useGeneratedKeys="true" keyProperty="id">
		insert into sp_address (aname, cts, is_def,phone,a_add,uid)
		values(#{aname},#{cts},#{is_def},#{phone},#{a_add},#{uid})
	</insert>

注意,这个主键的ID是返回到之前插入的那个作为条件的件对象里的,没必要定义方法的返回值(如果定义了返回值,取出来的也是插入影响的行数)

address.getId()

说明:useGeneratedKeys

取值范围true|false

默认值是:false。

含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。MySQL和SQLServer执行auto-generated key field,因此当数据库设置好自增长主键后,可通过JDBC的getGeneratedKeys方法获取。但像Oralce等不支持auto-generated key field的数据库就不能用这种方法获取主键了

批量插入:

<insert id="addList" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
		insert into dt_stu_answer (stu_id,question_id,score_id, stu_answer, stu_score,  cts, isright)
		values
		<foreach collection="list" item="item"  index="index" separator="," close=";">
                (#{item.stu_id},#{item.question_id},#{item.score_id},#{item.stu_answer},#{item.stu_score},#{item.cts},#{item.isright} )
        </foreach>
	</insert>

dao层

 public void addList(List<DtStuAnswer> li);

注解添加方式

@Insert("insert into et_qtheme (title,cts) values (#{title},#{cts}) ")
	@Options(useGeneratedKeys=true, keyProperty="id", keyColumn="id")
	public void insert(EtQTheme o); 
	
	@Insert("<script> insert into jf_img_log_batch (itype,img,cts,iid,uid ) "
			+ " values "
			+ " <foreach collection=\"list\" item=\"item\"  index=\"index\" separator=\",\" close=\";\">"
			+ " (#{item.itype},#{item.img},#{item.cts},#{item.iid},#{item.uid})  "
			+ " </foreach>"
			+ " </script>")
	@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
	public void insertBatch(List<JfImgLogBatch> list);

好博客就要一起分享哦!分享海报

此处可发布评论

评论(0展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695