mybatis文件
<?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="cn.exam.dao.ScoreMapper" >
<update id="update" parameterType="cn.exam.model.Score">
<foreach collection="list" index="index" item="tag" separator=";" >
UPDATE score
<set>
studentscore=#{tag.studentscore}
</set>
WHERE studentid=#{tag.studentid}
</foreach>
</update>
</mapper>
dao层接口方法
int update(List<Score> scoreList);
实体类
public class Score {
private Integer id;
private Integer studentscore;
private Integer studentid;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getStudentscore() {
return studentscore;
}
public void setStudentscore(Integer studentscore) {
this.studentscore = studentscore;
}
public Integer getStudentid() {
return studentid;
}
public void setStudentid(Integer studentid) {
this.studentid = studentid;
}
}
修改mysql 的url
config.url=jdbc:mysql://localhost:3306/frist?allowMultiQueries=true
(mysql版本必须在3.1.1版本以上,allowMultiQueries=true的目的是让mysql通过分号来分别执行每一条sql,也就是支持批量操作)
js页面
<form method="post" action="/ScoreServlet">
<% List<Students> studentList = (List<Students>) request.getAttribute("studentsList");%>
<% for (Students itme : studentList
) {
%>
<div id="zuo">
<input type="hidden" name="scoreid" value="<%=itme.getId()%>">
<div><%=itme.getStudentname()%>
</div>
<div><input type="text" name="scorename"></div>
</div>
<%
}%>
<input type="submit" id="sumit">
</form>
Servlet代码
request.setCharacterEncoding("utf-8");
String action = request.getParameter("action");
if (action == null) {
WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());
IScoreService scoreService = (IScoreService) ctx.getBean("scoreService");
String[] scoreid = request.getParameterValues("scoreid");
String[] scorenames = request.getParameterValues("scorename");
List<Score> list = new ArrayList<Score>();
for (int i = 0; i < scoreid.length; i++) {
Score score = new Score();
score.setStudentid(Integer.parseInt(scoreid[i]));
score.setStudentscore(Integer.parseInt(scorenames[i]));
list.add(score);
}
for (Score item : list
) {
System.out.println(item.getStudentid() + "==================================");
}
int update = scoreService.update(list);
if (update > 0) {
response.sendRedirect("super/jsp/studentsList.jsp");
} else {
System.out.println("失败");
}
}