基于Java Web的学生管理系统

前端 0

零、前提

使用工具:idea、MySQL

使用技术:JDBC、servlet

一、数据库

Database - test1      # 数据库:test1

CREATE TABLE `student` (
  `id` int(3) NOT NULL auto_increment,
  `name` varchar(10) default NULL,
  `age` int(3) default NULL,
  `classes` varchar(10) default NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `index_1` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;      # 表:student

insert  into `student`(`id`,`name`,`age`,`classes`) values (7,'李让',28,'毕业'),(8,'张三',20,'大二'),(9,'张四',10,'三年级'),(11,'小张',10,'三年级'),(12,'张丹',17,'高二'),(13,'小暇',19,'大一'),(14,'小兰',19,'大一'),(15,'李杯狐',12,'五年级');             #表中的内容

二、项目框架

                         

  2-1  domain-Student 实体类

public class Student {    private int id;    private String name;    private int age;    private String classes;    public Student() {    }    public Student(String name, int age, String classes) {        this.name = name;        this.age = age;        this.classes = classes;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public String getClasses() {        return classes;    }    public void setClasses(String classes) {        this.classes = classes;    }}

2-2  util-JdbcUtils  工具类

public class JdbcUtils {    private final static String url = "jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf8";    private final static String user = "root";    private final static String psw = "mysql";    public static Connection getConn() {        Connection conn = null;        try {            Class.forName("com.mysql.jdbc.Driver");            conn = DriverManager.getConnection(url, user, psw);        } catch (Exception e) {            e.printStackTrace();        }        return conn;    }}

2-3  dao-StudentDao接口 

public interface StudentDao {    public List<Student> findAll() throws SQLException, ClassNotFoundException;    public Student findById(int id) throws SQLException, ClassNotFoundException;    public int add(Student s) throws SQLException, ClassNotFoundException;    public int delete(int id) throws SQLException, ClassNotFoundException;    public int modify(int id ,Student s) throws SQLException, ClassNotFoundException;}

2-4  dao-impl-StudentDaoImpl  接口实现

public class StudentDaoImpl implements StudentDao {    private Connection conn = null;    private PreparedStatement ps = null;    private ResultSet rs = null;    @Override    public List<Student> findAll() throws SQLException, ClassNotFoundException {        conn= JdbcUtils.getConn();        String sql = "select * from student";        ps = conn.prepareStatement(sql);        rs = ps.executeQuery();        List<Student> list = new ArrayList<Student>();        while(rs.next()){            Student s = new Student();            s.setId(rs.getInt("id"));            s.setAge(rs.getInt("age"));            s.setClasses(rs.getString("classes"));            s.setName(rs.getString("name"));            list.add(s);        }        return list;    }    @Override    public Student findById(int id) throws SQLException, ClassNotFoundException {        conn= JdbcUtils.getConn();        String sql = "select * from student where id = ?";        ps = conn.prepareStatement(sql);        ps.setInt(1,id);        rs = ps.executeQuery();        Student s = new Student();        while(rs.next()){            s.setId(rs.getInt("id"));            s.setAge(rs.getInt("age"));            s.setClasses(rs.getString("classes"));            s.setName(rs.getString("name"));        }        return s;    }    @Override    public int add(Student s) throws SQLException, ClassNotFoundException {        conn= JdbcUtils.getConn();        String sql = "insert into student(name,age,classes) values(?,?,?)";        ps = conn.prepareStatement(sql);        ps.setString(1,s.getName());        ps.setInt(2,s.getAge());        ps.setString(3,s.getClasses());        int i = ps.executeUpdate();        return i;    }    @Override    public int delete(int id) throws SQLException, ClassNotFoundException {        conn= JdbcUtils.getConn();        String sql = "delete from student where id = ?";        ps = conn.prepareStatement(sql);        ps.setInt(1,id);        int i = ps.executeUpdate();        return i;    }    @Override    public int modify(int id, Student s) throws SQLException, ClassNotFoundException {        conn= JdbcUtils.getConn();        String sql = "update student set name=?,age=?,classes=? where id=?";        ps = conn.prepareStatement(sql);        ps.setString(1,s.getName());        ps.setInt(2,s.getAge());        ps.setString(3,s.getClasses());        ps.setInt(4,id);        int i = ps.executeUpdate();        return i;    }}

2-5 servle-StudentServlet

public class StudentServlet extends HttpServlet {    StudentDao studentDao = new StudentDaoImpl();    public List<Student> findAll() throws SQLException, ClassNotFoundException {        return studentDao.findAll();    }    public int modify(int id ,Student s) throws SQLException, ClassNotFoundException {        return studentDao.modify(id,s);    }    public Student findById(int id) throws SQLException, ClassNotFoundException {        return studentDao.findById(id);    }    public int add(Student s) throws SQLException, ClassNotFoundException{        return studentDao.add(s);    }    public int delete(int id) throws SQLException, ClassNotFoundException{        return studentDao.delete(id);    }} 

2-5 servle-StudentServletAdd

@WebServlet("/stu_add")public class StudentServletAdd 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("utf8");  //解决乱码        StudentServlet ss = new StudentServlet();        String name = req.getParameter("name");        String age = req.getParameter("age");        String classes = req.getParameter("classes");        Student s = new Student(name,Integer.parseInt(age),classes);        try {            ss.add(s);        } catch (SQLException throwables) {            throwables.printStackTrace();        } catch (ClassNotFoundException e) {            e.printStackTrace();        }        resp.sendRedirect("/five/stu_list.jsp");    }}

2-6  web-stu_list.jsp 

<%@ page import="cn.my.sms.servlet.StudentServlet" %><%@ page import="cn.my.sms.domain.Student" %><%@ page import="java.util.List" %><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>    <title>学生界面</title></head><body>    <h2 align="center">学生系统管理</h2>    <p align="center">欢迎你:XX &nbsp;&nbsp;&nbsp;&nbsp; <a href="login.html">安全退出</a></p>    <hr/>    <p align="center"><a href="stu_add.jsp">添加学生</a></p>    <form action="#" method="post">        <table align="center" border="1px" width="80%">            <tr>                <td>学号</td>                <td>姓名</td>                <td>年龄</td>                <td>班级</td>                <td>操作</td>            </tr>            <%                StudentServlet ss = new StudentServlet();                List<Student> list = ss.findAll();                for(Student s:list){            %>            <tr>                <td><%= s.getId() %></td>                <td><%= s.getName() %></td>                <td><%= s.getAge() %></td>                <td><%= s.getClasses() %></td>                <td>                    <a href="stu_delete?id=<%= s.getId() %>" onclick="return confirm('真的要删除该学生吗?')">删除</a>|                    <a href="stu_modify.jsp?id=<%= s.getId() %>">修改</a> </td>            </tr>            <%                }            %>           </table>       </form></body></html>

2-6  web-stu_add.jsp 

<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>    <title>添加学生界面</title></head><body><form action="stu_add" method="post">    <table align="center" border="1px">        <tr>            <td>姓名</td>            <td><input type="text" name="name"></td>        </tr>        <tr>            <td>年龄</td>            <td><input type="text" name="age"></td>        </tr>        <tr>            <td>班级</td>            <td><input type="text" name="classes"> </td>        </tr>        <tr>            <td align="center" colspan="2"><input type="submit" value="添加学生"></td>        </tr>    </table></form></body></html>

2-7  servlet-StudentServletDelete

@WebServlet("/stu_delete")public class StudentServletDelete extends HttpServlet {   StudentServlet ss = new StudentServlet();    @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 {        String id = req.getParameter("id");        System.out.println("id = " + id);        int i = 0;        try {            i = ss.delete(Integer.parseInt(id));        } catch (Exception e) {            e.printStackTrace();        }        resp.sendRedirect("/five/stu_list.jsp");    }}

2-8   servlet-StudentServletModify

@WebServlet("/stu_modify")public class StudentServletModify 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("utf8");        String id = req.getParameter("id");        String name = req.getParameter("name");        String age = req.getParameter("age");        String classes = req.getParameter("classes");        Student s = new Student(name,Integer.parseInt(age),classes);        StudentServlet ss = new StudentServlet();        try {            ss.modify(Integer.parseInt(id),s);        } catch (Exception throwables) {            throwables.printStackTrace();        }        resp.sendRedirect("stu_list.jsp");    }}

2-9  web-stu_modify.jsp 

<%@ page import="cn.my.sms.servlet.StudentServlet" %><%@ page import="cn.my.sms.domain.Student" %><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>    <title>修改学生</title></head><body><form action="stu_modify" method="post">    <%        String id = request.getParameter("id");        StudentServlet ss = new StudentServlet();        Student s = ss.findById(Integer.parseInt(id));    %>    <input type="hidden" name="id" value="<%= s.getId() %>">    <table align="center" border="1px">        <tr>            <td>姓名</td>            <td><input type="text" name="name" value="<%= s.getName() %>"></td>        </tr>        <tr>            <td>年龄</td>            <td><input type="text" name="age" value="<%= s.getAge() %>"></td>        </tr>        <tr>            <td>班级</td>            <td><input type="text" name="classes" value="<%= s.getClasses() %>"> </td>        </tr>        <tr>            <td align="center" colspan="2"><input type="submit" value="修改学生"></td>        </tr>    </table></form></body></html>

三、总结

3-1  根据数据库创建实体类;

3-2  写工具类,获得 conn对象;

3-3  在StudentDao接口中写用到的方法,并在StudentDaoImpl类中实现所有的方法;

3-4  创建servlet包,在StudentServlet中调用所有的StudentDao接口中的方法(目的:方便管理、纠错、隔离);

3-5  创建主界面、新增学生界面、修改学生界面等三个页面;

3-6  在servlet包下创建类(StudentServletAdd、StudentServletDelete、StudentServletModify),三个类继承 HTTPServlet ,与三个页面结合实现新增、删除、修改等操作;

3-7  没有写登录页面。

 

也许您对下面的内容还感兴趣: