DAO层
public interface ClaMapper {
List<Classes> getClasses();
}
public interface StudentMapper {
void insert(Student student );
List<Student> getStudents(Student student);
void delete(int sid);
Student byId(int sid);
void update(Student stu);
}
Mapperd
<?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.ba.dao.ClaMapper">
<select id="getClasses" resultType="classes">
select * from classes
</select>
</mapper>
<?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.b.dao.StudentMapper">
<resultMap type="student" id="mm">
<id column="sid" property="sid" />
<result column="sname" property="sname" />
<result column="age" property="age" />
<result column="gender" property="gender" />
<result column="birthday" property="birthday" />
<association property="classes" javaType="classes">
<id column="cid" property="cid" />
<result column="cname" property="cname" />
</association>
</resultMap>
<select id="getStudents" parameterType="student" resultMap="mm">
select * from student s,classes c where s.cid=c.cid
<if test="sname!=null and sname!=''">
and sname=#{sname}
</if>
</select>
<insert id="insert" parameterType="student">
insert into
student(sname,gender,cid,birthday,age)value(#{sname},#{gender},#{classes.cid},#{birthday},#{age})
</insert>
<delete id="delete" parameterType="int">
delete from student where
sid=#{value}
</delete>
<select id="byId" parameterType="int" resultMap="mm">
select * from student s,classes c where s.cid=c.cid and s.sid=#{value}
</select>
<update id="update" parameterType="student">
update student set
sname=#{sname},cid=#{classes.cid},gender=#{gender},birthday=#{birthday},age=#{age}
where sid=#{sid}
</update>
</mapper>
Service
public interface ClassesService {
List<Classes> getClasses();
}
public interface StudentService {
void insert(Student student );
List<Student> getStudents(Student student);
void delete(int sid) throws Exception;
Student byId(int sid);
void update(Student stu);
}
ServiceImpl
@Transactional
@Service
public class ClassesServiceImpl implements ClassesService{
@Autowired
private ClaMapper cm;
@Override
public List<Classes> getClasses() {
// TODO Auto-generated method stub
return cm.getClasses();
}
}
@Transactional
@Service
public class StudentServiceImpl implements StudentService{
@Autowired
private StudentMapper sm;
@Override
public void insert(Student student) {
// TODO Auto-generated method stub
sm.insert(student);
}
@Override
public List<Student> getStudents(Student student) {
// TODO Auto-generated method stub
return sm.getStudents(student);
}
@Override
public void delete(int sid) throws Exception {
// TODO Auto-generated method stub
sm.delete(sid);
}
@Override
public Student byId(int sid) {
// TODO Auto-generated method stub
return sm.byId(sid);
}
@Override
public void update(Student stu) {
// TODO Auto-generated method stub
sm.update(stu);
}
}
Controller
@Controller
@RequestMapping("cla")
public class ClassesController {
@Autowired
private ClassesService cs;
@RequestMapping("getcla")
public ModelAndView getClasses() {
ModelAndView mav = new ModelAndView();
List<Classes> list = cs.getClasses();
mav.addObject("list",list);
mav.setViewName("insert");
return mav;
}
}
@Controller
@RequestMapping("stu")
public class StudentController {
@Autowired
private ClassesService cs;
@Autowired
private StudentService ss;
@RequestMapping("getstu")
public ModelAndView getStudent(Student stu){
ModelAndView mav = new ModelAndView();
List<Student> list = ss.getStudents(stu);
mav.addObject("list",list);
mav.setViewName("list");
return mav;
}
@RequestMapping("insert")
public String insert(Student stu,@DateTimeFormat(pattern="yyyy-MM-dd")Date b){
stu.setBirthday(b);
ss.insert(stu);
return "redirect:/stu/getstu.do";
}
@RequestMapping("del")
@ResponseBody
public String delete(int sid){
try {
ss.delete(sid);
return "ok";
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "error";
}
}
@RequestMapping("byid")
public ModelAndView byId(int sid){
ModelAndView mav = new ModelAndView();
Student stu = ss.byId(sid);
List<Classes> list = cs.getClasses();
mav.addObject("stu",stu);
mav.addObject("list",list);
mav.setViewName("update");
return mav;
}
@RequestMapping("update")
public String update(Student stu,@DateTimeFormat(pattern="yyyy-MM-dd")Date d){
stu.setBirthday(d);
ss.update(stu);
return "redirect:/stu/getstu.do";
}
}
List JSP页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="f" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(function(){
$(".aaa").click(function(){
if(window.confirm("确定删除吗?")){
$.post("${pageContext.request.contextPath}/stu/del.do",
{"sid":$(this).val()},
function(m){
if (m=="error") {
alert("删除失败!");
}else{
alert("删除成功!");
window.location.reload();
}
},
"json");
}
});
});
</script>
</head>
<body>
<table border="5">
<tr>
<td>姓名</td>
<td>性别</td>
<td>班级</td>
<td>年龄</td>
<td>生日</td>
<td>操作</td>
</tr>
<c:forEach items="${list }" var="s">
<tr>
<td>${s.sname }</td>
<td>${s.gender }</td>
<td>${s.classes.cname }</td>
<td>${s.age }</td>
<td>${s.birthday }</td>
<td>
<button value="${s.sid}" class="aaa">删除</button>
<a href="${pageContext.request.contextPath }/stu/byid.do?sid=${s.sid}">修改</a>
</td>
</tr>
</c:forEach>
</table>
</body>
</html>
insert JSP页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript"
src="${pageContext.request.contextPath }/js/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(function() {
var name = false;
var gender = false;
var bir = false;
var age = false;
$("#a")
.blur(
function() {
$("#na").empty();
if ($("#a").val() == null || $("#a").val() == '') {
var span = "<span id='na'><font color='yellow'>姓名不可空</font></span>";
$("#a").after(span);
name = false;
} else {
name = true;
}
});
$("#c")
.blur(
function() {
$("#ge").empty();
if ($("#c").val() == null || $("#c").val() == '') {
var span = "<span id='ge'><font color='yellow'>姓名不可空</font></span>";
$("#c").after(span);
gender = false;
} else {
gender = true;
}
});
$("#d")
.blur(
function() {
$("#bi").empty();
if ($("#d").val() == null || $("#d").val() == '') {
var span = "<span id='bi'><font color='yellow'>姓名不可空</font></span>";
$("#d").after(span);
bir = false;
} else {
bir = true;
}
});
$("#e")
.blur(
function() {
$("#ag").empty();
if ($("#e").val() == null || $("#e").val() == '') {
var span = "<span id='ag'><font color='yellow'>姓名不可空</font></span>";
$("#e").after(span);
age = false;
} else {
age = true;
}
});
$("#g").click(function() {
if (name && gender && bir && age) {
$("#m").submit();
} else {
alert("请检查表单");
}
});
});
</script>
</head>
<body>
<form action="${pageContext.request.contextPath }/stu/insert.do" id="m">
姓名:<input type="text" name="sname" id="a"><br> 性别:<input
type="text" name="gender" id="c"> <br> 生日:<input
type="date" name="b" id="d"><br> 年龄: <input type="text"
name="age" id="e"><br> 班级: <select name="classes.cid">
<c:forEach items="${list }" var="a">
<option value="${a.cid }">${a.cname }</option>
</c:forEach>
</select><br> <input type="button" value="添加" id="g">
</form>
</body>
</html>
Update
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<form action="${pageContext.request.contextPath }/stu/update.do">
<input type="hidden" name="sid" value="${stu.sid }">
姓名:<input type="text" name="sname" value="${stu.sname }"><br>
性别:<input type="text" name="gender" value="${stu.gender }"> <br>
生日:<input type="date" name="d"
value="<f:formatDate value="${stu.birthday }" pattern="yyyy-MM-dd" />"><br>
年龄: <input type="text" name="age" value="${stu.age }"><br>
班级: <select name="classes.cid">
<c:forEach items="${list }" var="a">
<option value="${a.cid }"
<c:if test="${stu.classes.cid==a.cid }">selected="selected"</c:if>>${a.cname
}</option>
</c:forEach>
</select><br> <input type="submit" value="保存">
</form>
</body>
</html>