【准备工作】
1.批量删除的SQL(语法):
-- 同时插入三条数据
insert into 表名(列名1,列名2,列名3,列名4)
values
(值1,值2,值3,值4),(值1,值2,值3,值4),(值1,值2,值3,值4);2.批量删除的SQL(具体SQL):
-- 新增3条车辆信息
insert into
`bus`(busNumber,busByLineId,busSinessId)
values
('湘AJI212',1,2),('湘AJI213',2,3),('湘AJI214',2,3);一、实体类
1、Bus实体类
package com.entity;
public class Bus {
private int busId;
private String busNumber;
private int busByLineId;
private int busSinessId;
public int getBusId() {
return busId;
}
public void setBusId(int busId) {
this.busId = busId;
}
public String getBusNumber() {
return busNumber;
}
public void setBusNumber(String busNumber) {
this.busNumber = busNumber;
}
public int getBusByLineId() {
return busByLineId;
}
public void setBusByLineId(int busByLineId) {
this.busByLineId = busByLineId;
}
public int getBusSinessId() {
return busSinessId;
}
public void setBusSinessId(int busSinessId) {
this.busSinessId = busSinessId;
}
@Override
public String toString() {
return "Bus [busId=" + busId + ", busNumber=" + busNumber
+ ", busByLineId=" + busByLineId + ", busSinessId="
+ busSinessId + "]";
}
public Bus() {
}
public Bus(int busId, String busNumber, int busByLineId, int busSinessId) {
super();
this.busId = busId;
this.busNumber = busNumber;
this.busByLineId = busByLineId;
this.busSinessId = busSinessId;
}
}
2、BusList实体类
package com.entity;
import java.util.List;
public class BusList {
private List<Bus> buslist;
public List<Bus> getBuslist() {
return buslist;
}
public void setBuslist(List<Bus> buslist) {
this.buslist = buslist;
}
@Override
public String toString() {
return "BusList [buslist=" + buslist + "]";
}
public BusList() {
}
public BusList(List<Bus> buslist) {
super();
this.buslist = buslist;
}
}
二、Mapper层
1、接口
package com.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.entity.Bus;
public interface BusMapper {
// 批量新增的方法
// 参数为对象集合
public int ManyRegister(@Param(value="list")List<Bus> list);
}2、xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mapper.BusMapper">
<!-- 新增的SQL标签 参数为List-->
<!-- 多个对象放置在foreach 标签中循环迭代-->
<!-- foreach:-->
<!-- collection:迭代的数据类型-->
<!-- item:迭代时的别名-->
<!-- separator:分隔符-->
<insert id="ManyRegister" parameterType="java.util.List">
insert into
`bus`(busNumber,busByLineId,busSinessId)
values
<foreach collection="list" item="item" separator=",">
(#{item.busNumber},#{item.busByLineId},#{item.busSinessId})
</foreach>
</insert>
<!-- 注:item.属性需要与实体类中的属性名一致、大小写一致 !-->
</mapper>
三、Service层
1、接口
package com.service;
import com.entity.BusList;
public interface BusService {
// 注!
// service层中的参数为BusList封装的实体类
public int ManyRegister(BusList list);
}
2、实现类
package com.service;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.entity.Bus;
import com.entity.BusList;
import com.mapper.BusMapper;
@Service
public class BusServiceImpl implements BusService{
@Resource
private BusMapper dao;
@Override
public int ManyRegister(BusList list) {
// 获取BusList 对象中的List集合
List<Bus> bus = list.getBuslist();
// 作为参数传递给Dao层
return dao.ManyRegister(bus);
}
}
四、controller层
package com.controller;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.entity.BusList;
import com.service.BusService;
@Controller
@RequestMapping("user")
public class TestController {
// 依赖注入
@Resource
private BusService service;
// 编写控制层方法,用于进入批量新增的jsp页面
@RequestMapping("test")
public String test(){
return "testInsert";
}
// 编写控制层方法,用于实现批量新增
@RequestMapping("ManyRegister")
public String ManyRegister(BusList list){
// 输出前端传来的list的内容
System.out.println("===list:"+list);
// 调用Service层批量新增的方法
int count = service.ManyRegister(list);
System.out.println("===count:"+count);
return "testInsert";
}
}
五、JSP
<form name="blogsform" method="post" action="${pageContext.request.contextPath}/user/ManyRegister">
<table>
<tr>
<!--注:name下标前的值需要与BusList封装实体类中的属性名一致 -->
<!--
public class BusList {
private List<Bus> buslist;
}
-->
<!--注:name下标后的值需要与Bus实体类中的属性名一致 -->
<!--
public class Bus{
private String busNumber;
private int busByLineId;
private int busSinessId;
}
-->
<td><input name="buslist[0].busNumber" value="test1" /> </td>
<td><input name="buslist[0].busByLineId" value="1"/> </td>
<td><input name="buslist[0].busSinessId" value="1"/> </td>
</tr>
<tr>
<td><input name="buslist[1].busNumber" value="test2" /> </td>
<td><input name="buslist[1].busByLineId" value="2"/> </td>
<td><input name="buslist[1].busSinessId" value="2"/> </td>
</tr>
</table>
<button type="submit">提交</button>
</form>六、测试


版权声明:本文为weixin_41583535原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。