mybatis批量增删改查
- BaseDemo1Mapper.xml文件
更新写了多条语句,需要多语句支持。
<mapper namespace="BaseDemo1Mapper">
<!-- 批量增删改查 -->
<insert id="batchinsertData" parameterType="java.util.List">
<selectKey resultType="java.lang.Integer" keyProperty="ID" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
INSERT INTO exercise(
id,stu_name,limit_time,unit,start_time,end_time
)
values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.id},#{item.stu_name},#{item.limit_time},#{item.unit},#{item.start_time},#{item.end_time}
)
</foreach>
</insert>
<delete id="batchdeleteData" parameterType="java.util.List">
delete from exercise where id in
(
<foreach collection="list" item="item" index="index" separator=",">
#{item}
</foreach>
)
</delete>
<update id="batchupdataData" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" separator=";">
update exercise
set
stu_name=#{item.stu_name}
<!-- stu_name=#{stu_name},limit_time=#{limit_time},unit=#{unit},start_time=#{start_time},end_time=#{end_time} -->
where id=#{item.id}
</foreach>
</update>
</mapper>
- 增删改查数据库实现
public boolean updataDataByID(String statement, List<Exercise> exerciseDemo1) {
int count=session.update(statement, exerciseDemo1);
return count>0;
}
public boolean insertDataByID(String statement, List<Exercise> exerciseDemo1) {
int count=session.insert(statement, exerciseDemo1);
return count>0;
}
public boolean deleteDataByID(String statement, List<Integer> exerciseDemo1) {
int count=session.delete(statement, exerciseDemo1);
return count>0;
}
- 测试类
测试类通过return调用DAO层接口的方法并且测试增删改查
//以下为批量增删改查
//修改多条数据
try {
List<Exercise> li=new ArrayList<Exercise>();
String XMLPath="BaseDemo1Mapper.batchupdataData";
for(int i=0;i<3;i++) {
Exercise ex=new Exercise();
ex.setStu_name("dw"+i+2);
ex.setId(i+28);
li.add(ex);
}
exerciseDaoTest.updataDataByID(XMLPath, li);
}catch(Exception e) {
e.printStackTrace();
}
//增加多条数据
try {
List<Exercise> li=new ArrayList<Exercise>();
String XMLPath="BaseDemo1Mapper.batchinsertData";
for(int i=0;i<3;i++) {
Exercise ex=new Exercise();
ex.setStu_name("sw"+i+2);
ex.setUnit("m");
ex.setLimit_time(20.4);
ex.setStart_time(new Date(new java.util.Date().getTime()));
ex.setEnd_time(new Date(new java.util.Date().getTime()));
li.add(ex);
}
exerciseDaoTest.insertDataByID(XMLPath, li);
}catch(Exception e) {
e.printStackTrace();
}
//删除多条数据
try {
String XMLPath="BaseDemo1Mapper.batchdeleteData";
List<Integer> list1=new ArrayList<Integer>();
list1.add(26);
list1.add(27);
exerciseDaoTest.deleteDataByID(XMLPath, list1);
}catch(Exception e) {
e.printStackTrace();
}
//查看多条数据
try {
String XMLPath="BaseDemo1Mapper.selectDataByUNAndET";
Map<String,Object> params=new HashMap<String,Object>();
params.put("unit","米");
//List<Exercise> es=
exerciseDaoTest.selectDataByUNAndET(XMLPath, params);
}catch(Exception e) {
e.printStackTrace();
}
博客围绕MyBatis批量增删改查展开,涉及BaseDemo1Mapper.xml文件,更新需多语句支持。介绍了增删改查在数据库的实现,还包含测试类,通过调用DAO层接口方法对增删改查功能进行测试。
2万+

被折叠的 条评论
为什么被折叠?



