MyBatis批量新增,修改和刪除
阿新 • • 發佈:2019-01-27
1. 批量新增元素session.insert(String string,Object o)
public void batchInsertStudent() { List<Student> ls = new ArrayList<Student>(); for (int i = 5; i < 8; i++) { Student student = new Student(); student.setId(i); student.setName("maoyuanjun" + i); student.setSex("man" + i); student.setTel("tel" + i); student.setAddress("浙江省" + i); ls.add(student); } SqlSession session = SessionFactoryUtil.getSqlSessionFactory().openSession(); session.insert("mybatisdemo.domain.Student.batchInsertStudent", ls); session.commit(); session.close(); }
<insert id="batchInsertStudent" parameterType="java.util.List"> insert into student (id, name, sex, tel, address) values <foreach collection="list" item="item" index="index" separator="," > (#{item.id}, #{item.name}, #{item.sex}, #{item.tel}, #{item.address}) </foreach> </insert>
2. 批量修改session. insert (String string, Object o)
例項1:
public void batchUpdateStudent() { List<Integer> ls = new ArrayList<Integer>(); for (int i = 2; i < 8; i++) { ls.add(i); } SqlSession session = SessionFactoryUtil.getSqlSessionFactory().openSession(); session.insert("mybatisdemo.domain.Student.batchUpdateStudent", ls); session.commit(); session.close(); }
<update id="batchUpdateStudent" parameterType="java.util.List">
UPDATE STUDENT SET name = "5566" WHERE id IN
<foreach collection="list" item="item" index="index" open="(" separator="," close=")" >
#{item}
</foreach>
</update>
例項2:
public void batchUpdateStudentWithMap(){
List<Integer> ls = new ArrayList<Integer>();
for(int i = 2;i < 8;i++){
ls.add(i);
}
Map<String,Object> map = new HashMap<String,Object>();
map.put("idList", ls);
map.put("name", "mmao789");
SqlSession session = SessionFactoryUtil.getSqlSessionFactory().openSession();
session.insert("mybatisdemo.domain.Student.batchUpdateStudentWithMap",map);
session.commit();
session.close();
}
<update id="batchUpdateStudentWithMap" parameterType="java.util.Map" >
UPDATE STUDENT SET name = #{name} WHERE id IN
<foreach collection="idList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</update>
3. 批量刪除session.delete(String string,Object o)
public void batchDeleteStudent(){
List<Integer> ls = new ArrayList<Integer>();
for(int i = 4;i < 8;i++){
ls.add(i);
}
SqlSession session = SessionFactoryUtil.getSqlSessionFactory().openSession();
session.delete("mybatisdemo.domain.Student.batchDeleteStudent",ls);
session.commit();
session.close();
}
<delete id="batchDeleteStudent" parameterType="java.util.List">
DELETE FROM STUDENT WHERE id IN
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</delete>