Maven+SSM框架例項(二)——增刪查的功能
阿新 • • 發佈:2019-02-09
該部落格沿用上一篇部落格,是之前專案例項的補充
一、增加功能
Dao類(StudentDao):
在該介面加上新增學生的方法,通過前端傳來的姓名——sname,性別——sex,birthplace——出生地。這裡的cid還需要通過classname來查詢獲得。
(稍後會在Controller類中說明)
void addStudent(@Param("sname") String sname, @Param("cid") int cid,
@Param("sex") String sex, @Param("birthplace") String birthplace);//新增學生
在mapper檔案中填寫,添上insert功能:
<insert id="addStudent">
insert into student (sname,cid,sex,birthplace) values
(#{sname},#{cid},#{sex},#{birthplace})
</insert>
StudentService介面:
//新增學生
void addStudent(String sname, int cid, String sex, String birthplace);
StudentServiceImpl實現類:
//提交事務,出了查詢以外的增刪改,都要進行事務的提交
@Transactional(propagation = Propagation.REQUIRED)
public void addStudent(String sname, int cid, String sex, String birthplace) {
studentDao.addStudent(sname, cid, sex, birthplace);
}
StudentAction控制器:
//去新增學生
@RequestMapping("/toAddStudent")
public String toAddStudent() {
return "add";
}
//新增學生
@RequestMapping("/addStudent")
public String addStudent(@RequestParam("sname") String sname, @RequestParam("classname") String classname,
@RequestParam("sex") String sex, @RequestParam("birthplace") String birthplace,
HttpServletRequest request) {
//根據classname查出cid
Integer cid = studentService.findClassBycname(classname);
if (cid == null) {
String msg = "輸入的班級名有誤!請重新輸入";
request.setAttribute("msg",msg);
return "add";
} else {
studentService.addStudent(sname, cid, sex, birthplace);
return "forward:/findall.action";
}
}
寫了兩個方法是因為有個新增學生的連結跳轉到填寫資訊的頁面,所以要去新增,然後才是真正的新增。
add.jsp頁面程式碼:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<div style="text-align: center;">
<label style="color: red">${msg}</label>
<form action="/addStudent.action" method="post">
學生姓名:<input type="text" name="sname" /><br/>
班級:<input type="text" name="classname" /><br/>
性別:<input type="radio" name="sex" value="男" checked="checked" />男
<input type="radio" name="sex" value="女" style="margin-left: 5px" />女<br/>
出生地:<input type="text" name="birthplace" /><br/>
<input type="submit" value="提交">
</form>
</div>
</body>
</html>
二、刪除功能
Dao介面:
void deleteStudent(int sid);//根據學號刪除學生
mapper檔案:
<delete id="deleteStudent" parameterType="Integer">
delete from student where sid = #{sid}
</delete>
Service層就不贅述了
Controller:
//刪除學生
@RequestMapping("/deleteStudent")
public String deleteStudent(@RequestParam("sid")int sid) {
studentService.deleteStudent(sid);
return "forward:/findall.action";
}
我是在顯示所有的列表旁邊多了個刪除的按鈕,點選刪除後再查詢全部。
show.jsp:
<a href="/index.action">返回主頁</a><br />
<table border="1">
<tr>
<td>學號</td>
<td>班級</td>
<td>姓名</td>
<td>性別</td>
<td>出生地</td>
<td colspan="2">操作</td>
</tr>
<c:forEach items="${studentlist }" var="list">
<tr>
<td>${list.sid}</td>
<td>${list.classes.classname}</td>
<td>${list.sname}</td>
<td>${list.sex}</td>
<td>${list.birthplace}</td>
<td><a href="javascript:if(confirm('確實要刪除該學生嗎?'))location='/deleteStudent.action?sid=${list.sid}'">刪除</a></td>
<td><a href="/toupdate.action?sid=${list.sid}">修改</a></td>
</tr>
</c:forEach>
</table>
三、修改功能
Dao介面:
void updateStudent(@Param("sid") int sid, @Param("sname") String sname, @Param("cid") int cid, @Param("sex") String sex,
@Param("birthplace") String birthplace);
mapper檔案:
<update id="updateStudent">
update student set sname = #{sname}, cid = #{cid}, sex = #{sex}, birthplace = #{birthplace} WHERE sid = #{sid}
</update>
Controller類:
//去修改的頁面
@RequestMapping("/toupdate")
public String toUpdate(@RequestParam("sid") int sid, HttpServletRequest request) {
Student student = studentService.findBySid(sid);
request.setAttribute("student",student);
return "update";
}
//修改學生資訊
@RequestMapping("/update")
public String update(@RequestParam("sid") int sid,@RequestParam("sname")String sname,@RequestParam("classname") String classname,
@RequestParam("sex") String sex,@RequestParam("birthplace")String birthplace,
HttpServletRequest request) {
Integer cid = studentService.findClassBycname(classname);
if (cid == null) {
String msg = "輸入的班級名有誤!請重新輸入";
request.setAttribute("msg",msg);
Student student = new Student(sid, sname, new Classes(0, classname), sex, birthplace);
request.setAttribute("student",student);
return "update";
} else {
studentService.updateStudent(sid,sname,cid,sex,birthplace);
return "forward:/findall.action";
}
}
update.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<div style="text-align: center;">
<label style="color: red">${msg}</label>
<form action="/update.action?sid=${student.sid}" method="post">
學生姓名:<input type="text" name="sname" value="${student.sname}" /><br/>
班級:<input type="text" name="classname" value="${student.classes.classname}" /><br/>
性別:<input type="radio" name="sex" value="男" checked="checked" />男
<input type="radio" name="sex" value="女" style="margin-left: 5px" />女<br/>
出生地:<input type="text" name="birthplace" value="${student.birthplace}" /><br/>
<input type="submit" value="提交">
</form>
</div>
</body>
</html>