您的位置:首页 > 其它

Maven+SSM框架实例(二)——增删查的功能

2018-01-18 16:56 381 查看
该博客沿用上一篇博客,是之前项目实例的补充

一、增加功能

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ssm maven