计算机学院管理系统(3)
学生管理页面–添加(后端)
1.Controller层
@RequestMapping("insertStu")
@ResponseBody
public ModelAndView insertStu(Student student) {
ModelAndView mav = new ModelAndView();
int flag = studentService.insertStu(student);
if (flag == 0) {
// 添加失败返回本页面
mav.setViewName("student-add");
} else {
// 返回用户列表并查询数据
mav = selectUserView();
}
return mav;
}
数据添加成功之后页面会默认返回值为1,失败则为0,所以将添加方法赋值给一个int变量,通过该变量判断添加是否成功。如果成功就引用之前的selectUserView()查询方法查询新的数据,失败就跳转到“student-add.jsp”添加页面
2.Service层
int insertStu(Student student);
同查询,直接在controller层点击红色下划线create
3.ServiceImpl层
@Override
public int insertStu(Student student) {
// TODO Auto-generated method stub
return studentDao.insertStu(student);
}
在Impl层create之后引用Dao层的sql语句方法
4.Dao层
// 添加学生记录
@Insert("insert Student values(#{id},#{StudentNum},#{StuClass},#{StudentName},#{sex},#{PhoneNum},#{Address},#{SchoolAddress},#{Rid})")
int insertStu(Student student);
学生管理页面–添加(前端)
1.Student-list页面
给onclick事件添加跳转路径,即点击新建跳转到student-add页面
2.Student-add页面
添加页面写好表格即可,因为这些表格是在form表单下写的,所以在点击保存之后会以post请求的方式把填入的数据返回到后台的insertStu方法中
3.效果演示
学生管理页面–修改(后端)
1.Controller层
// 2.修改学生信息(根据id查询学生信息用来修改)
@RequestMapping("/updateStu")
@ResponseBody
public ModelAndView updateStu(Integer id) {
// 1.获取要修改的信息
Student student = studentService.selectStudentById(id);
// 2.跳转到修改页面
ModelAndView mav = new ModelAndView();
mav.setViewName("student-update");
mav.addObject("student", student);
return mav;
}
// 2.1修改学生信息并且返回信息页面
@RequestMapping("/updateStuData")
public ModelAndView updateStuData(Student student) {
// 1.获取要修改的信息
int flag = studentService.updateStuData(student);
// 2.跳转到对应页面
ModelAndView mav = new ModelAndView();
if (flag > 0) {// 修改成功,跳转到信息页面
mav.setViewName("student-list");
} else {// 修改失败,继续回到修改页面
mav.setViewName("student-update");
}
return mav;
}
修改方法分为两部分,第一部分是根据id查询学生信息进行跳转到修改页面的操作,第二部分是修改学生信息之后可以保存并返回到主页
2.Service层
Student selectStudentById(Integer id);
int updateStuData(Student student);
3.ServiceImpl层
@Override
public Student selectStudentById(Integer id) {
// TODO Auto-generated method stub
return studentDao.selectStudentById(id);
}
@Override
public int updateStuData(Student student) {
// TODO Auto-generated method stub
return studentDao.updateStuData(student);
}
4.Dao层
// 根据id查询学生记录
@Select("select * from Student where id = #{id}")
Student selectStudentById(Integer id);
// 修改学生记录
@Update("update Student set StudentNum=#{StudentNum},StuClass=#{StuClass},StudentName=#{StudentName},sex=#{sex},PhoneNum=#{PhoneNum},Address=#{Address},SchoolAddress=#{SchoolAddress} where id=#{id}")
int updateStuData(Student student);
学生管理页面–修改(前端)
1.Student-list页面
"<button type = 'button' οnclick='update("+StudenInfo.id+")' class='btn bg-olive btn-xs'>修改</button>"+
//修改,先跳转到修改页面
function update(id){
//跳转到修改页面
window.location.href= $webName + "/StudenInfo/updateStu?id="+id;
}
js方法通过页面中的修改按钮的onlick事件获得id,再跳转到修改页面,此时id也会被传值到修改页面
2.Student-update页面
3.效果演示
学生管理页面–删除(后端)
1.Controller层
// 3.批量删除学生信息
@RequestMapping("/deleteStudent")
@ResponseBody
public boolean deleteStudent(Integer[] ids) {
return studentService.deleteStudent(ids);
}
// 4.单行删除产品
@RequestMapping("/deleteStudentOne")
@ResponseBody
public int deleteStudentOne(Integer id) {
return studentService.deleteStudentOne(id);
}
删除分为多行删除和单行删除,其中多行删除是指页面中的多选框进行多项选择再删除,单行删除是只针对一行数据进行的删除
2.Service层
boolean deleteStudent(Integer[] ids);
int deleteStudentOne(Integer id);
3.ServiceImpl层
@Override
public boolean deleteStudent(Integer[] ids) {
// TODO Auto-generated method stub
for (int i = 0; i < ids.length; i++) {
studentDao.deleteStudent(ids[i]);
}
return true;
}
@Override
public int deleteStudentOne(Integer id) {
// TODO Auto-generated method stub
return studentDao.deleteStudentOne(id);
}
这里的多行删除跟单行删除的区别在于多行删除是把每一行的数据存在数组中,再依次进行删除
4.Dao层
// 多行删除语句
@Delete("delete from Student where id=#{id}")
int deleteStudent(int id);
// 单行删除语句
@Delete("delete from Student where id=#{id}")
int deleteStudentOne(Integer id);
这里多行删除跟单行删除共用一个删除语句也可以
学生管理页面–删除(前端)
1.Student-list页面
多行删除
<button type="button" class="btn btn-default" id="deleteUser" title="删除"> //多行删除的按钮
<i class="fa fa-trash-o"></i> 删除
</button>
//批量删除用户
$("#deleteUser").click(function(){ //对id为deleteUser的按钮的js方法
var ids = new Array();
$.each($(".checkItem:checked"),function(){ //选择多选框的方法
var id =$(this).parents("tr").children("td").eq(1).text(); //这里意思是将选择的列的第一排第一个格子中的数据(即学生id)赋值给“id”这个变量
ids.push(id); //将变量id中的值push(依次放入)数组变量ids中
})
if(confirm("确认删除用户吗?")){
//发送ajax请求,批量删除
$.ajax({
url:$webName + "/StudenInfo/deleteStudent",
type:"post",
data:"ids="+ids, //将变量ids传递到后端,所以后端的变量名为ids
success:function(result){
alert("删除成功");
getUserPageInfo($pageNum,$pageSize); //刷新页面
}
});
}
})
单行删除
"<button type = 'button' οnclick='deleteUserOne("+StudenInfo.id+")' class='btn bg-olive btn-xs' >删除</button>"+ //通过onclick事件将id传值给单行删除的js方法
//确认删除单行用户
function deleteUserOne(id){
if(confirm("确认删除用户吗?")){
//发送ajax请求,单行删除
$.ajax({
url:$webName + "/StudenInfo/deleteStudentOne",
type:"post",
data:"id="+id,
success:function(result){
alert("删除成功");
getUserPageInfo($pageNum,$pageSize);
}
});
}
}