社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
mysql批量插入配置
<insert id="insertBatch">
INSERT INTO cms_article_channel
(id,channel_id,article_id)
VALUES
<foreach close="" collection="list" item="CmsArticleChannel" index="index" open="" separator=",">
(#{CmsArticleChannel.id,jdbcType=VARCHAR},
#{CmsArticleChannel.channelId,jdbcType=VARCHAR},
#{CmsArticleChannel.articleId,jdbcType=VARCHAR})
</foreach>
</insert>
一条INSERT语句插入批量数据的写法:
INSERT INTO
[表名]([列名],[列名])
VALUES
([列值],[列值])),
([列值],[列值])),
([列值],[列值]));
可以看到,和原来的常规INSERT语句的区别,仅仅是在VALUES 后面增加值的排列,每条记录之间用英文输入法状态下的逗号隔开
示例:
INSERT INTO
items(name,city,price,number,picture)
VALUES
('耐克运动鞋','广州',500,1000,'003.jpg'),
('耐克运动鞋2','广州2',500,1000,'002.jpg');
这样,就实现了一次性插入了2条数据。
首先数据库连接配置必须加上allowMultiQueries=true
否则会报错 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near;因为mysql驱动开启批量执行sql的开关默认为false 将他开启就行了
xml中配置
<update id="updateSalesScore">
<foreach close="" collection="list" item="CreditRatingAnnual" index="index" open="" separator=";">
UPDATE credit_rating_annual
<set>
SALES_SCORE1=#{CreditRatingAnnual.salesScore1,jdbcType=VARCHAR},
SALES_SCORE2=#{CreditRatingAnnual.salesScore2,jdbcType=VARCHAR}
</set>
WHERE ID=#{CreditRatingAnnual.id}
</foreach>
</update>
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!