数据库:
/*
SQLyog Ultimate v12.09 (64 bit)
MySQL - 5.7.27-log : Database - myshool
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`myshool` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `myshool`;
/*Table structure for table `student` */
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` int(32) NOT NULL AUTO_INCREMENT,
`stuName` varchar(100) NOT NULL,
`stuAge` int(32) NOT NULL,
`stuSex` int(32) NOT NULL,
`stuBirthday` date DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
/*Data for the table `student` */
insert into `student`(`id`,`stuName`,`stuAge`,`stuSex`,`stuBirthday`) values (4,'库里',19,1,'2001-01-02'),(5,'欧文',11,2,'2003-03-03'),(6,'詹姆斯',23,1,'2003-02-23');
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
StudentsManager:
dao:
public interface StudentDao {
//查询全部的方法
List<Student> getAll();
//添加的方法
int addStudent(Student student);
//根据id查询
Student getStudentById(int id);
//修改的方法
int updateStudent(Student student);
}
impl:
public class StudentDaoImpl extends BaseDao implements StudentDao {
@Override
public List<Student> getAll() {
//1.准备sql
String sql="select * from student";
ResultSet rs = this.executeQuery(sql, null);
List<Student> studentList=new ArrayList<>();
try {
while(rs.next()){
Student student=new Student();
student.setId(rs.getInt("id"));
student.setStuName(rs.getString("stuName"));
student.setStuAge(rs.getInt("stuAge"));
student.setStuSex(rs.getInt("stuSex"));
student.setStuBirthday(rs.getDate("stuBirthday"));
studentList.add(student);
}
}catch (Exception ex){
ex.printStackTrace();
}
return studentList;
}
@Override
public int addStudent(Student student) {
String sql="INSERT INTO student(stuName,stuAge,stuSex,stuBirthday)VALUES(?,?,?,?)";
Object [] objects={student.getStuName(),student.getStuAge(),student.getStuSex(),student.getStuBirthday()};
return this.executeUpdate(sql,objects);
}
@Override
public Student getStudentById(int id) {
String sql="select * from student where id=?";
Object [] objects={id};
ResultSet rs = this.executeQuery(sql, objects);
Student student=null;
try {
if(rs.next()){
student=new Student();
student.setId(rs.getInt("id"));
student.setStuName(rs.getString("stuName"));
student.setStuAge(rs.getInt("stuAge"));
student.setStuSex(rs.getInt("stuSex"));
student.setStuBirthday(rs.getDate("stuBirthday"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return student;
}
@Override
public int updateStudent(Student student) {
String sql="update student set stuName=?,stuAge=?,stuSex=?,stuBirthday=? where id=?";
Object[] objects={student.getStuName(),student.getStuAge(),student.getStuSex(),student.getStuBirthday(),student.getId()};
return this.executeUpdate(sql,objects);
}
}
pojo:
public class Student {
private int id;
private String stuName;
private int stuAge;
private int stuSex;
private Date stuBirthday;
}
Service:
public interface StudentService {
//查询全部的方法
List<Student> getAll();
//添加的方法
boolean addStudent(Student student);
//根据id查询
Student getStudentById(int id);
//修改的方法
boolean updateStudent(Student student);
}
impl:
public class StudentServiceImpl implements StudentService {
//创建Dao层对象
StudentDao sd=new StudentDaoImpl();
@Override
public List<Student> getAll() {
return sd.getAll();
}
@Override
public boolean addStudent(Student student) {
if(sd.addStudent(student)>0){
return true;
}
return false;
}
@Override
public Student getStudentById(int id) {
return sd.getStudentById(id);
}
@Override
public boolean updateStudent(Student student) {
if(sd.updateStudent(student)>0){
return true;
}
return false;
}
}
StudentServlet:
@WebServlet("/StudentServlet")
public class StudentServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置字符集
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=UTF-8");
String path=req.getParameter("path");
StudentService ss=new StudentServiceImpl();
HttpSession session=req.getSession();
if(path==null ){
//查询全部
List<Student> studentList = ss.getAll();
req.setAttribute("students",studentList);
req.getRequestDispatcher("show.jsp").forward(req,resp);
}else if(path.equals("addOrUpdate")){
String id=req.getParameter("id");
String stuName=req.getParameter("stuName");
String stuSex=req.getParameter("stuSex");
String stuAge=req.getParameter("stuAge");
String stuBirthday=req.getParameter("stuBirthday");
Student student=new Student();
student.setId(Integer.valueOf(id));
student.setStuName(stuName);
student.setStuAge(Integer.valueOf(stuAge));
student.setStuSex(Integer.valueOf(stuSex));
Date birthday=null;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
try {
birthday = sdf.parse(stuBirthday);
} catch (ParseException e) {
e.printStackTrace();
}
student.setStuBirthday(birthday);
boolean flag;
if(id==null || id.equals(" ")|| id.equals("")){
//添加
flag = ss.addStudent(student);
}else{
//修改
flag = ss.updateStudent(student);
}
if(flag){
resp.getWriter().print("<script>alert('成功'); window.location='StudentServlet';</script>");
}else{
resp.getWriter().print("<script>alert('失败'); window.location='StudentServlet';</script>");
}
}else if(path.equals("getUserById")){
String id=req.getParameter("id");
Student student = ss.getStudentById(Integer.valueOf(id));
req.setAttribute("student",student);
req.getRequestDispatcher("addOrUpdate.jsp").forward(req,resp);
}
}
}
show.jsp:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
Created by IntelliJ IDEA.
User: 12626
Date: 2022/7/13
Time: 10:29
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script src="js/jquery-1.8.2.min.js"></script>
</head>
<body>
<h1 align="center">学员信息</h1>
<table align="center" border="1">
<tr>
<td colspan="6"><a href="addOrUpdate.jsp">添加学生信息</a></td>
</tr>
<tr>
<td>编号</td>
<td>姓名</td>
<td>年龄</td>
<td>性别</td>
<td>出生日期</td>
<td>操作</td>
</tr>
<c:forEach items="${students}" var="student">
<tr>
<td>${student.id}</td>
<td>${student.stuName}</td>
<td>${student.stuAge}</td>
<td><c:if test="${student.stuSex==1}">男</c:if><c:if test="${student.stuSex==2}">女</c:if></td>
<td>${student.stuBirthday}</td>
<td><a href="StudentServlet?path=getUserById&id=${student.id}">修改</a></td>
</tr>
</c:forEach>
</table>
<script>
</script>
</body>
</html>
addOrUpdate.jsp:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
Created by IntelliJ IDEA.
User: 12626
Date: 2022/7/13
Time: 10:54
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="StudentServlet?path=addOrUpdate" method="post">
<h1 align="center">添加或修改学员信息</h1>
<input type="text" name="id" value="${student.id}" hidden >
<table align="center" border="1">
<tr>
<td>姓名</td>
<td><input type="text" name="stuName" value="${student.stuName}"></td>
</tr>
<tr>
<td>性别</td>
<td>
<input type="radio" value="1" name="stuSex" <c:if test="${student.stuSex==1}">checked</c:if>/>男
<input type="radio" value="2" name="stuSex" <c:if test="${student.stuSex==2}">checked</c:if>/>女
</td>
</tr>
<tr>
<td>年龄</td>
<td><input type="text" name="stuAge" value="${student.stuAge}"></td>
</tr>
<tr>
<td>出生日期</td>
<td><input type="text" value="${student.stuBirthday}" name="stuBirthday"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="确认"></td>
</tr>
</table>
</form>
</body>
</html>