一只学霸吖 2020-04-14 18:14 采纳率: 0%
浏览 1726

#做一个简单的学生信息管理系统,实现增删改查的功能

还是新手小白,项目代码报错不会改,请求大佬的帮助
做一个简单的学生信息管理系统,实现增删改查的功能

StudentDao

package com.hdxy.Dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.hdxy.Student.Student;
public class StudentDao {
//初始化Connection,Statement,ResultSet
Connection conn = null;
Statement st = null;
ResultSet rs = null;

//查询
public List<Student> testQuery(){
    //查询表中所有学生,用集合来接收
    List<Student> list = new ArrayList<Student>();        
    String sql ="select * from student order by id asc";
    Connection conn = JDBCUtil.getInstance().getConnection();//获取连接
    try {
        st = conn.createStatement();//预处理,创建集合接收数据
        rs = st.executeQuery(sql);//结果集,创建集合接收数据
        //循环遍历
        while(rs.next()){
            Student student = new Student();//实例化Student对象,要求要有Student对象
            student.setId(rs.getInt("id"));//对象.方法或对象.属性。setI()想让id在前台显示打包赋值给student对象,getInt()获取学生信息
            student.setName(rs.getString("name"));
            student.setSno(rs.getString("sno"));
            student.setSex(rs.getString("sex"));
            student.setAge(rs.getString("age"));
            list.add(student);//将student对象的数据传到list里
        }
    }catch (Exception e){
        e.printStackTrace();
    }
    JDBCUtil.getInstance().closeConnection(rs,st,conn);//关闭,没有学生了就停止循环遍历
    return list;//返回值类型return,返回list
}//testQuery结束后拿到了所有学生的属性值

//添加数据
public void saveStudent(Student student){
    //?:表示占位符.所谓占位符就是不知道要传递什么值,但是必须要有值
    String sql = "insert into student(sno,name,sex,age) values(?,?,?,?)";

    conn = JDBCUtil.getInstance().getConnection();
    try {
        PreparedStatement  pst = conn.prepareStatement(sql);
        pst.setString(1, student.getSno());
        pst.setString(2, student.getName());
        pst.setString(3, student.getSex());
        pst.setString(4, student.getAge());
        pst.execute();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    JDBCUtil.getInstance().closeConnection(rs,st,conn);
}


public Student getStudent(int id){
    Student stu = new Student();
    String sql = "select id,sno,name,sex,age from student where id=?";
    Connection conn = JDBCUtil.getInstance().getConnection();//获取连接
    try {
        PreparedStatement  st = conn.prepareStatement(sql);
        st.setInt(1, id);
        rs = st.executeQuery();
        while(rs.next()){
            stu.setId(rs.getInt("id"));
            stu.setSno(rs.getString("sno"));
            stu.setName(rs.getString("name"));
            stu.setSex(rs.getString("sex"));
            stu.setAge(rs.getString("age"));
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    JDBCUtil.getInstance().closeConnection(rs,st,conn);
    return stu;
}

//更改数据
public void updateStudent(Student student){
    String sql = "update student set sno=?,name=?,sex=?,age=? where id=?";
    Connection conn = JDBCUtil.getInstance().getConnection();//获取连接
    try {
        PreparedStatement  st = conn.prepareStatement(sql);
        st.setString(1, student.getSno());
        st.setString(2, student.getName());
        st.setString(3, student.getSex());
        st.setString(4, student.getAge());
        st.setInt(5, student.getId());
        st.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    JDBCUtil.getInstance().closeConnection(rs,st,conn);
}

//删除数据
public void deleteStudent(int id){
    String sql = "delete from  student where id=?";
    Connection conn = JDBCUtil.getInstance().getConnection();//获取连接
    try {
        PreparedStatement  st = conn.prepareStatement(sql);
        st.setInt(1, id);
        st.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    JDBCUtil.getInstance().closeConnection(rs,st,conn);
}

}

JDBC的工具类

package com.hdxy.Dao;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.mysql.jdbc.Connection;
//JDBC的工具类
public class JDBCUtil {
//一.初始化数据库相关信息对象
static String driverClass="com.mysql.jdbc.Driver";
static String url="jdbc:mysql://localhost:3306/student?characterEncoding=utf-8";;
static String name="root";
static String password="root";
static Connection conn = null;
private static JDBCUtil instance = null;

private JDBCUtil(){

}

public static JDBCUtil getInstance(){
    if(instance == null){
        synchronized (JDBCUtil.class) {
            if(instance == null){
                instance = new JDBCUtil();
            }
        }
    }
    return instance;

}
//二.读取jdbc.properties文件并把相关信息赋予对象
    static{
        try{
            String driver = null;
            Class.forName(driver);
        }catch(ClassNotFoundException e){
            e.printStackTrace();
        }
    }

//三.获取连接对象
public Connection getConnection(){
    try{        
        conn= (Connection) DriverManager.getConnection(url,name,password);
    }catch (Exception e) {
        e.printStackTrace();
    }
    return conn;
}

public void closeConnection(ResultSet rs, Statement st, java.sql.Connection conn) {
    try {
        if(rs != null){
            rs.close();
        }
    } catch (SQLException e) {
        e.printStackTrace();
    } finally{
        try{
            if(st != null){
                st.close();
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            try{
                if(conn != null){
                    conn.close();
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    }
}

}

服务类

package com.hdxy.Service;

import java.util.List;

import com.hdxy.Dao.StudentDao;
import com.hdxy.Student.Student;
//服务类
public class StudentService {

public List<Student> testQuery(){
    StudentDao studentDao = new StudentDao();//获取StudentDao实现类
    List<Student> list = studentDao.testQuery();
    return list;//返回值类型return,返回list
}

public void saveStudent(Student student){
    StudentDao studentDao = new StudentDao();
    studentDao.saveStudent(student);
}

public Student getStudent(int id){
    StudentDao studentDao = new StudentDao();
    return studentDao.getStudent(id);
}

public void deleteStudent(int id){
    StudentDao studentDao = new StudentDao();
    studentDao.deleteStudent(id);
}

public void updateStudent(Student student){
    StudentDao studentDao = new StudentDao();
    studentDao.updateStudent(student);
}

}

实体类

package com.hdxy.Student;

public class Student {
private int id;
private String sno;
private String name;
private String sex;
private String age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getSno() {
return sno;
}
public void setSno(String sno) {
this.sno = sno;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public Student(int id, String sno, String name, String sex, String age) {
super();
this.id = id;
this.sno = sno;
this.name = name;
this.sex = sex;
this.age = age;
}
public Student() {

}
@Override
public String toString() {
    return "Student [id=" + id + ", sno=" + sno + ", name=" + name + ", sex=" + sex + ", age=" + age + "]";
}

}

Servlet

package com.hdxy.Servlet;

import java.io.IOException;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.hdxy.Student.Student;
import com.hdxy.Service.StudentService;

public class StudentServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;

@Override
protected void doGet(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
}   


@Override
protected void doPost(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    response.setContentType("text/html; charset=UTF-8");
    String method = request.getParameter("method");
    if("testQuery".equals(method)){
        testQuery(request,response);
        System.out.println("888");
    }else if("toAdd".equals(method)){
        toAdd(request,response);
    }else if("toEdit".equals(method)){
        toEdit(request,response);
    }else if("saveStudent".equals(method)){
        saveStudent(request,response);
    }else if("updateStudent".equals(method)){
        updateStudent(request,response);
    }else if("deleteStudent".equals(method)){
        deleteStudent(request,response);
    }
    System.out.println("777");
}

private void testQuery(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
    StudentService studentService = new StudentService();
    List<Student> list = studentService.testQuery();
    request.setAttribute("testQuery", list);
    RequestDispatcher dispatcher = request.getRequestDispatcher("/list.jsp");
    dispatcher.forward(request, response);
    System.out.println("111");
}


private void toAdd(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
    RequestDispatcher dispatcher = request.getRequestDispatcher("/add.jsp");
    dispatcher.forward(request, response);
    System.out.println("222");
}

private void toEdit(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
    int id = Integer.parseInt(request.getParameter("id"));
    StudentService studentService = new StudentService();
    Student student = studentService.getStudent(id);
    request.setAttribute("student", student);
    RequestDispatcher dispatcher = request.getRequestDispatcher("/edit.jsp");
    dispatcher.forward(request, response);
    System.out.println("333");
}

private void saveStudent(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{

    Student student = new Student();
    student.setSno(request.getParameter("sno"));
    student.setName(request.getParameter("name"));
    student.setSex(request.getParameter("sex"));
    student.setAge(request.getParameter("age"));

    StudentService studentService = new StudentService();
    studentService.saveStudent(student);
    RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp");
    dispatcher.forward(request, response);
    System.out.println("444");
}

private void updateStudent(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
    Student student = new Student();
    student.setSno(request.getParameter("sno"));
    student.setName(request.getParameter("name"));
    student.setSex(request.getParameter("sex"));
    student.setId(Integer.parseInt(request.getParameter("id")));
    student.setAge(request.getParameter("age"));

    StudentService studentService = new StudentService();
    studentService.updateStudent(student);
    RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp");
    dispatcher.forward(request, response);
    System.out.println("555");
}

private void deleteStudent(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
    int id = Integer.parseInt(request.getParameter("id"));
    StudentService studentService = new StudentService();
    studentService.deleteStudent(id);
    RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp");
    dispatcher.forward(request, response);
    System.out.println("666");
}

}

  • 写回答

1条回答 默认 最新

  • dabocaiqq 2020-04-15 00:41
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 MATLAB动图问题
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题