1、使用注解的方式批量添加数据,在该方法中,传进来的参数是一个List集合,使用一个foreach 循环解析集合的数据,最后再批量保存到数据库
代码如下:
//批量保存
@Insert({"
"insert into QUESTION_BANK (NAME, SUBJECT, TYPE,OPTION_A,OPTION_B,OPTION_C,OPTION_D,OPTION_E,OPTION_F,ANSWER,IS_EXISTENCE) ",
"SELECT A.* FROM (",
"",
"(SELECT " +
"#{questionBanks.name} NAME," +
"#{questionBanks.subject} SUBJECT," +
"#{questionBanks.type} TYPE," +
"#{questionBanks.optionA} OPTION_A," +
"#{questionBanks.optionB} OPTION_B," +
"#{questionBanks.optionC} OPTION_C," +
"#{questionBanks.optionD} OPTION_D," +
"#{questionBanks.optionE} OPTION_E," +
"#{questionBanks.optionF} OPTION_F," +
"#{questionBanks.answer} ANSWER," +
"#{questionBanks.isExistence} IS_EXISTENCE FROM DUAL)",
" ) A",
""
})
int saveAll(List questionBanks);
第二种方式是springboot结合mybatis 使用xml文件时候的批量添加数据,在该方法中,传进来的同样是一个List集合数据,需要注意的地方已标红
代码如下:
INSERT All
INTO USERGROUP_RELATION(ENTIEY_UUID,PARENT_UUID,SUPERIOR) VALUES
(
#{item.entieyUuid,jdbcType=VARCHAR},
#{item.parentUuid,jdbcType=VARCHAR},
#{item.superior,jdbcType=NUMERIC}
)
SELECT 1 FROM dual
上面两个添加语句使用的数据库都是Oracle,下面再来介绍一下使用XML 文件往Mysql数据库批量添加数据,不同的数据库批量添加使用的语句还是有一些小区别的,下面直接看代码吧:
INSERT INTO sys_veterinary(
name,
address,
longitude,
latitude,
phone,
store_keeper,
scope,
skill)values(
#{item.name,jdbcType=VARCHAR},
#{item.address,jdbcType=VARCHAR},
#{item.longitude,jdbcType=VARCHAR},
#{item.latitude,jdbcType=VARCHAR},
#{item.phone,jdbcType=VARCHAR},
#{item.storeKeeper,jdbcType=VARCHAR},
#{item.scope,jdbcType=VARCHAR},
#{item.skill,jdbcType=VARCHAR}
)
新增批量删除:(oracle数据库)
delete from User t where id in#{item.userId,jdbcType=VARCHAR} //传进来的是实体类集合,只要获取每条数据的id即可
小提示:一开始可以先用sql语句去数据库中运行添加,看能否成功添加,一般sql语句可以正常执行,再转换一下思路就能在代码中实现了。