基于java+mysql+JDBC+tomcat+Servlet+JSP+js的学生管理系统

目录

 实现流程和思路

 项目视频演示

设置数据库studenttest

①、创建user表

创建项目

jsp页面

登录界面login.jsp

主界面mainPage.jsp

添加学生信息AddUser.jsp

修改学生信息change.jsp

Servlet下

登录LoginServlet

查找SearchServlet

删除DeleteServlet

修改ChangeServlet

添加addServlet

Service下

FileServic接口下

FileServiceImpl实现类下

pojo下

User学生类

Dao下

FileDao接口下 

FileDaoImpl实现类下

utils下

JDBCUtils


 实现流程和思路

 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站前言 – 床长人工智能教程正在上传…重新上传取消https://www.cbedai.net/gkbskchttps://www.cbedai.net/gkbskc

创建jsp页面,然后转发到servlet下,接受jsp页面传过来的值,拿着这些值去访问service服务层接口,服务层写个实类,这个实现类去服务层的接口,然后这个服务层的实现类再去访问dao层的接口,在持久层dao中在编写一个dao层接口的实现类去实现dao层的接口,最后在dao层的的实现类去访问数据库。

图示:

 项目视频演示

学生管理系统项目演示

设置数据库studenttest

①、创建user表

其中包括设置删除的u_isdelete(0是存在,1是删除)

create table user(
u_name varchar(20),
u_id int primary key auto_increment,
 u_pwd varchar(20) ,
u_phone varchar(20) not null,
u_role  int not null,
u_isdelete int not null
)
charset=utf8;

创建项目

项目界面总览

jsp页面

登录界面login.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<%
    String path = request.getContextPath();
    String basepath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<html>
<head>
    <base href="<%=basepath %>"/>
    <meta charset="utf-8"/>
    <title>登录界面</title>
    <%--  css代码--%>
    <style>
        #fame_{
            width: 500px;
            height: 400px;
            margin-left: 600px;
            margin-top: 200px;
            background-color: aqua;
            /*边框黑色 实线 2像素*/
            border: black solid 2px;
        }
        #inner_{
            margin-left: 140px;
            margin-top: 160px;
        }
    </style>


</head>
<body>
<h1 align="center" style="color: red">登录界面</h1>
<div id="fame_"  >
    <div id="inner_">
        用户:<input type="text" id="u_id">
        <b>  <span id="span1" style="color: crimson">${error}</span></b><br><br>
        密码:<input type="password" id="u_pwd">
        <b>  <span id="span2" style="color: crimson"></span></b><br><br>
        <button id="btn01">重置</button>
        <button id="btn02" style="margin-left: 20px">登录</button><br>

        <script>
            <%-- 这里写js代码验证账号密码值是否为空--%>
              window.onload=function() {
                  document.getElementById("btn02").onclick = function () {
                      let id_value = document.getElementById("u_id").value
                      if (id_value == null || id_value == "") {
                          document.getElementById("span1").innerHTML = "用户名不能为空"
                          return;
                      }

                      //判断密码是否为空
                      let pwd = document.getElementById("u_pwd").value
                      if (pwd == null || pwd == "") {
                          document.getElementById("span2").innerHTML = "密码不能为空"
                          return;
                      }
                      //跳转到servlet
                      window.location.href = "login?u_id=" + id_value + "&u_pwd=" + pwd;
                  }
                  //在次点击清空错误信息
                  document.getElementById("u_id").onfocus = function () {
                      document.getElementById("span1").innerText = ""
                  }
                  document.getElementById("u_pwd").onfocus = function () {
                      document.getElementById("span2").innerText = ""
                  }
                  //清空内容
                  document.getElementById("btn01").onclick=function () {
                      document.getElementById("u_id").value="";
                      document.getElementById("u_pwd").value="";
                  }
              }
        </script>
    </div>
</div>
</body>
</html>

主界面mainPage.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<%
    String path = request.getContextPath();
    String basepath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<%--JSTL语法,可以使用user.getName()方法--%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>主界面</title>
    <style>
        #head_{
            height: 100px;
            width: 100%;
           background-color: darkcyan;
        }
        #personFile{
            width: 120px;
            height: 50px;
            padding-top: 25px;
            margin-left: 90%;
        }
        #search{
            height: 70px;
            width: 100%;
         background-color: aqua;
        }
        #inner_s{
            /*width: 200px;
            height: 40px;
            padding-right: 70%;
            padding-top: 50%;*/
            width: 30%;
            padding-top:25px;
            padding-left: 45%;
        }
        #table{
            margin-left: 30%;
            margin-top: 30px;
        }
        td{
            text-align: center;
            height: 20px;
            width: 150px;
            border:  darkcyan 2px solid;
            padding:6px;

        }


    </style>

</head>
<body>

<div id="head_">
   <h2>
       <div id="personFile" >
        名字:<span style="color: red">${user.getU_name()}</span><br>
        编号:<span style="color: red">${user.getU_id()}</span>
       </div>
   </h2>
</div>


<div id="search">
    <div id="inner_s">
        <input type="text" style="font-size: 20px; height: 26px;width: 190px " id="fileId">&nbsp;&nbsp;
        <button  style="font-size: 18px; height: 28px;"  id="cx"margin-left: 30px>查询</button>
        <button  style="font-size: 18px; height: 28px;" id="addUser" margin-left: 100px>添加</button>
        <button  style="font-size: 18px; height: 28px;" id="deleteUser">删除</button>
        <button  style="font-size: 18px; height: 28px;" id="changeUser">修改</button>
       <b> <span style="color: crimson">${tip}</span></b>
    </div>
</div>
<script>
           //提交
    document.getElementById("cx").onclick=function(){
        let v = document.getElementById('fileId').value;
        //访问服务器searchServlet
        window.location.href = "searchServlet?v=" + v+"&id=${user.getU_name()}";
    }
    //删除
    document.getElementById("deleteUser").onclick=function () {
       let v =document.getElementById('fileId').value;

        window.location.href = "deleteServlet?v="+v+"&id=${user.getU_name()}";
    }
     // 添加跳转到AddUser.jsp界面
    document.getElementById("addUser").onclick=function () {
        window.location = "AddUser.jsp";
    }
         //修改,跳转到change.jsp
           document.getElementById("changeUser").onclick=function () {
               let v =document.getElementById('fileId').value;
               window.location.href = "change.jsp";
           }
</script>

<div>
    <table id="table" style="height: 30px;width: 700px;border: black 1px solid;border-collapse:collapse;">

       <tr style="font-weight: bold" >
            <td>学生id</td>
            <td>学生名字</td>
            <td>学生电话</td>
            <td>学生成绩</td>
            <td>学生品行</td>
        </tr>
      <%--jstl语法遍历,var是一个指指针--%>
        <c:forEach items="${arr}" var="item">
            <tr>
                <td>${item.getU_id()}</td>
                <td>${item.getU_name()}</td>
                <td>${item.getU_phone()}</td>
                <td style="color: deeppink"> 优秀</td>
                <td style="color: red">良好</td>
                </td>
            </tr>

        </c:forEach>

    </table>
</div>


<div>

</div>



</body>
</html>

添加学生信息AddUser.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<%
    String path = request.getContextPath();
    String basepath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <base href="<%=basepath %>"/>
    <meta charset="utf-8"/>
    <title>添加信息界面</title>
</head>
<style>
    #div1{
        width: 400px;
        height: 300px;
        margin-left: 600px;
        margin-top: 200px;
      background-color:deepskyblue;
        /*边框黑色 实线 2像素*/
        border: black solid 2px;
    }

</style>
<body>
<h2 align="center" >添加学生信息</h2><br><br>
<div id="div1" >

     <tr> 学生id:<input type="text" id="u_id" >
       <span id="span01" style="color: red"></span> <br><br></tr>
       <tr>  姓名:<input type="text" id="u_name" ><br><br></tr>
       <tr>  密码:<input type="password" id="u_pwd"><br><br></tr>
       <tr> 电话号码:<input type="text" id="u_phone"><br><br></tr>


<button id="btn3">提交</button>
    <script>
        document.getElementById("btn3").onclick=function(){
            //获取填写的数据
           let u_id=document.getElementById("u_id").value;
            let u_name=document.getElementById("u_name").value;
            let u_pwd=document.getElementById("u_pwd").value;
            let u_phone=document.getElementById("u_phone").value;

           if(u_id==null||u_id==""||u_name==null||u_name==""){
               document.getElementById("span01").innerText="id或名字为为空"
           }else{
               //把数据发送到后端,发送到servlet的addUser路径下
           window.location.href="addUser?u_id="+u_id+"&u_pwd="+u_pwd+"&u_name="+u_name+"&u_phone="+u_phone+"&id=${user.getU_name()}";
           }
        }
        document.getElementById("u_id").onfocus=function () {
            document.getElementById("span01").innerText=""
        }

    </script>
</div>
</body>
</html>

修改学生信息change.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<%
    String path = request.getContextPath();
    String basepath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<html>
<head>
    <base href="<%=basepath %>"/>
    <meta charset="utf-8"/>
    <title>修改界面</title>
</head>

<style>
    #div1{
        width: 400px;
        height: 300px;
        margin-left: 600px;
        margin-top: 200px;
        background-color:deepskyblue;
        /*边框黑色 实线 2像素*/
        border: black solid 2px;
    }

</style>
<body>
<h2 align="center" >修改学生信息</h2><br><br>
<div id="div1" >

     修改的学生id:<input type="text" id="u_id" >
        <span id="span01" style="color: red"></span> <br><br>
   姓名:<input type="text" id="u_name" ><br><br>
      密码:<input type="password" id="u_pwd"><br><br>
     电话号码:<input type="text" id="u_phone"><br><br>


    <button id="btn3">提交</button>
    <script>
        //获取填写数据
        document.getElementById("btn3").onclick=function(){
            let u_id=document.getElementById("u_id").value;
            let u_name=document.getElementById("u_name").value;
            let u_pwd=document.getElementById("u_pwd").value;
            let u_phone=document.getElementById("u_phone").value;
          //判断非空
            if(u_id==null||u_id==""||u_name==null||u_name==""){
                document.getElementById("span01").innerText="id或名字为为空"
            }else{
                //不为空就转发到后端
                window.location.href="changeUser?u_id="+u_id+"&u_pwd="+u_pwd+"&u_name="+u_name+"&u_phone="+u_phone+"&id=${user.getU_name()}";
            }
        }
        //再次点击清除错误信息提示
        document.getElementById("u_id").onfocus=function () {
            document.getElementById("span01").innerText=""
        }

    </script>
</div>
</body>
</html>

Servlet下

登录LoginServlet

package com.StudentTest.Servlet;

import com.StudentTest.pojo.User;
import com.StudentTest.service.FileService;
import com.StudentTest.service.FileServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String u_id=null,u_pwd=null;
        User u = new User();
        try{//非数字异常判断
          u_id = req.getParameter("u_id");
           u_pwd = req.getParameter("u_pwd");
            u.setU_id(Integer.valueOf(u_id));
            u.setU_pwd(u_pwd);
      }catch (Exception e){
            req.setAttribute("error", "你输入的不是数字");
            //错误就回到主界面
            req.getRequestDispatcher("login.jsp").forward(req, resp);
      }

        //实现登录服务层的业务逻辑层,从服务层service到持久层dao
       FileService fs=new FileServiceImpl();
        //返回user这样可以看到登录的用户是谁
        /**
         * 如果user为空说明账号密码不一致,跳转到登录界面
         * 不为空说明账号密码一致,跳转到主界面
         */
        User user = null;
        try {
            user = fs.loginService(u);
        } catch (Exception e) {
            e.printStackTrace();
        }

        if (user != null) {
          fs=new FileServiceImpl();
            //查看所有数据
            ArrayList<User> arrUser=fs.getAllStudent();
            //将这些数据转发到前端
            req.setAttribute("arr",arrUser);
            req.setAttribute("user", user);
            //跳转到主界面
            req.getRequestDispatcher("mainPage.jsp").forward(req, resp);
        } else {
            req.setAttribute("error", "密码不匹配");
            req.getRequestDispatcher("login.jsp").forward(req, resp);
        }
    }
}

查找SearchServlet

package com.StudentTest.Servlet;

import com.StudentTest.pojo.User;
import com.StudentTest.service.FileService;
import com.StudentTest.service.FileServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;

@WebServlet("/searchServlet")
public class SearchServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     //设置字符集为
       req.setCharacterEncoding("UTF-8");
       String v=req.getParameter("v");
        //访问service层,在由service访问dao层
        FileService fs=new FileServiceImpl();
        //创建service方法到dao层中去访问
        User u=fs.searchIdName(v);
        //创建集合用来接受dao层访问后的数据
        ArrayList<User> arr=new ArrayList<>();
        //将数据添加到集合中去
        arr.add(u);
        //获取登录人员的信息
        String id=req.getParameter("id");
        //创建service服务层,通过service访问doa层
        FileService fs2=new FileServiceImpl();
        //通过一连串的访问,最终去访问
        User admine=fs2.getAdmint(id);
        //将登录的信息发送到前端
        req.setAttribute("user", admine);
      //如果访问的信息不为空
        if(u!=null){
            //管理员信息
            req.setAttribute("arr",arr);
            //跳转到主界面
            req.getRequestDispatcher("mainPage.jsp").forward(req, resp);
        }else{
            FileService f=new FileServiceImpl();
            ArrayList<User> arr2=f.getAllStudent();
            req.setAttribute("arr", arr2);
            req.getRequestDispatcher("mainPage.jsp").forward(req, resp);
        }
    }
}

删除DeleteServlet

package com.StudentTest.Servlet;

import com.StudentTest.pojo.User;
import com.StudentTest.service.FileService;
import com.StudentTest.service.FileServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;

@WebServlet("/deleteServlet")
public class DeleteServlet  extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        String del=req.getParameter("v");
        //获取登录人信息
         String adm=req.getParameter("id");
         //访问service层,在service层创建对应的方法
        FileService fs=new FileServiceImpl();
        ArrayList<User> list=fs.getAllStudent();
        //获取登录人员信息
        User u = fs.getAdmint(adm);
        //service层调用方法,转到dao层执行sql语句
        boolean user=fs.delUser(del);
        String tip="";
        if(user){
           tip="删除成功";
        }else {
            tip="删除失败";
        }
        //发送到前端
        req.setAttribute("user", u);
        req.setAttribute("arr", list);
        req.setAttribute("tip", tip);
        req.getRequestDispatcher("mainPage.jsp").forward(req, resp);
    }
}

修改ChangeServlet

package com.StudentTest.Servlet;

import com.StudentTest.pojo.User;
import com.StudentTest.service.FileService;
import com.StudentTest.service.FileServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;

@WebServlet("/changeUser")
public class ChangeServlet  extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        String id=req.getParameter("u_id");
        String pwd=req.getParameter("u_pwd");
        String phone=req.getParameter("u_phone");
        String name=req.getParameter("u_name");
        FileService fs=new FileServiceImpl();
        User user=new User(name,Integer.valueOf(id),pwd,phone);
        String adm=req.getParameter("id");
        //获取登录人员信息
        User u = fs.getAdmint(adm);
        System.out.println(u);
        boolean flag=fs.changeUser( user);

        ArrayList<User> list=fs.getAllStudent();
        String tip="";
        if (flag){
            tip="修改成功";
        }else{
            tip="修改失败";
        }
        //发送到前端

        req.setAttribute("tip",tip);
        req.setAttribute("user", u);
        req.setAttribute("arr", list);

        req.getRequestDispatcher("mainPage.jsp").forward(req, resp);
    }
}

添加addServlet

package com.StudentTest.Servlet;

import com.StudentTest.pojo.User;
import com.StudentTest.service.FileService;
import com.StudentTest.service.FileServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;

@WebServlet("/addUser")
public class AddServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
           String id=req.getParameter("u_id");
           String pwd=req.getParameter("u_pwd");
           String phone=req.getParameter("u_phone");
          String name=req.getParameter("u_name");
        FileService fs=new FileServiceImpl();
        User user=new User(name,Integer.valueOf(id),pwd,phone);
        String adm=req.getParameter("id");
        //获取登录人员信息
        User u = fs.getAdmint(adm);
        System.out.println(u);
      boolean flag=fs.addUser( user);

        ArrayList<User> list=fs.getAllStudent();
        String tip="";
        if (flag){
            tip="添加成功";
        }else{
            tip="添加失败";
        }
        //发送到前端

      req.setAttribute("tip",tip);
        req.setAttribute("user", u);
        req.setAttribute("arr", list);

        req.getRequestDispatcher("mainPage.jsp").forward(req, resp);

    }
}

Service下

FileServic接口下

package com.StudentTest.service;

import com.StudentTest.pojo.User;

import java.util.ArrayList;

public interface FileService {
    ArrayList<User> getAllStudent();

    User searchIdName(String v);
    User getAdmint(String id);
 boolean delUser(String del);
  boolean addUser(User user);

    boolean changeUser(User user);
    User loginService(User u) throws Exception;
}

FileServiceImpl实现类下

package com.StudentTest.service;

import com.StudentTest.Dao.FileDao;
import com.StudentTest.Dao.FileDaoImpl;
import com.StudentTest.pojo.User;

import java.util.ArrayList;

public class FileServiceImpl implements FileService {
    FileDao fd= new FileDaoImpl();
    @Override
    public ArrayList<User> getAllStudent() {
        /**
         * 访问持久层
         */

        return fd.getAllStudent();
    }

    @Override
    public User searchIdName(String v) {

        return fd.searchIdName( v);
    }

    @Override
    public User getAdmint(String id) {
        return fd.getAdmint(id);
    }

    @Override
    public boolean delUser(String del) {
        return fd.delUser(del );
    }

    @Override
    public boolean addUser(User user) {
        return fd.addUser(user);
    }

    @Override
    public boolean changeUser(User user) {
        return fd.changeUser(user);
    }

    @Override
    public User loginService(User u) throws Exception {
        return fd.loginDao( u);
    }


}

pojo下

User学生类

package com.StudentTest.pojo;

public class User {
    private String u_name;
    private int u_id;
    private String u_pwd;
    private String u_phone;
    private int u_role;
    private int u_isdelete;

    public User() {
    }
    public User(String u_name, int u_id, String u_pwd, String u_phone) {
        this.u_name = u_name;
        this.u_id = u_id;
        this.u_pwd = u_pwd;
        this.u_phone = u_phone;

    }

    public User(String u_name, int u_id, String u_pwd, String u_phone, int u_role, int u_isdelete) {
        this.u_name = u_name;
        this.u_id = u_id;
        this.u_pwd = u_pwd;
        this.u_phone = u_phone;
        this.u_role = u_role;
        this.u_isdelete = u_isdelete;
    }

    public String getU_name() {
        return u_name;
    }

    public void setU_name(String u_name) {
        this.u_name = u_name;
    }

    public int getU_id() {
        return u_id;
    }

    public void setU_id(int u_id) {
        this.u_id = u_id;
    }

    public String getU_pwd() {
        return u_pwd;
    }

    public void setU_pwd(String u_pwd) {
        this.u_pwd = u_pwd;
    }

    public String getU_phone() {
        return u_phone;
    }

    public void setU_phone(String u_phone) {
        this.u_phone = u_phone;
    }

    public int getU_role() {
        return u_role;
    }

    public void setU_role(int u_role) {
        this.u_role = u_role;
    }

    public int getU_isdelete() {
        return u_isdelete;
    }

    public void setU_isdelete(int u_isdelete) {
        this.u_isdelete = u_isdelete;
    }

    @Override
    public String toString() {
        return "User{" +
                "u_name='" + u_name + '\'' +
                ", u_id=" + u_id +
                ", u_pwd='" + u_pwd + '\'' +
                ", u_phone='" + u_phone + '\'' +
                ", u_role=" + u_role +
                ", u_isdelete=" + u_isdelete +
                '}';
    }
}

Dao下

FileDao接口下 

package com.StudentTest.Dao;

import com.StudentTest.pojo.User;

import java.util.ArrayList;

public interface FileDao {
    ArrayList<User> getAllStudent();

    User searchIdName(String v);

    User getAdmint(String id);

    boolean delUser(String del);


   boolean addUser(User user);

    boolean changeUser(User user);

        User loginDao(User u) throws Exception;

}

FileDaoImpl实现类下

package com.StudentTest.Dao;

import com.StudentTest.pojo.User;
import com.utils.JDBCUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

public class FileDaoImpl implements FileDao {

    @Override
    public User loginDao(User u) throws SQLException, ClassNotFoundException {
        /**在这写数据库的内容
         * 获取链接对象,获取sql语句
         */
        int id=u.getU_id();
        String pwd=u.getU_pwd();
//       //访问数据库
//        User user=new User("慧宝",1001,"520","1314",1,0);
        Connection connection= JDBCUtils.getConnection();
        PreparedStatement pre =null;
        ResultSet res =null;
        String sql="select *from user where u_id="+id+" and u_pwd='"+pwd+"'";
        try{
            pre= connection.prepareStatement(sql);
            res=pre.executeQuery();
            User user=new User();
            while(res.next()){
                user.setU_id(res.getInt("u_id"));
                user.setU_name(res.getString("u_name"));
                user.setU_pwd(res.getString("u_pwd"));
                user.setU_phone(res.getString("u_phone"));
                user.setU_role(res.getInt("u_role"));
                user.setU_isdelete(res.getInt("u_isdelete"));
                return user;
            }

        } catch (SQLException s){
            s.printStackTrace();
        }

        return null;
    }



//获取所有学生信息
    @Override
    public ArrayList<User> getAllStudent() {
        ArrayList<User> arr=new ArrayList<>();

        Connection connection= null;
        try {
            connection = JDBCUtils.getConnection();
        } catch (Exception e) {

        }
        PreparedStatement pre =null;
            ResultSet res =null;
            //u_role为1表示普通用户,为0为管理员,u_isdelete为0表示还在,为1表示已删除
            String sql="select *from user where u_role=1 and u_isdelete=0 ";
            try{
                pre= connection.prepareStatement(sql);
                res=pre.executeQuery();
                while(res.next()){
                    User user=new User();
                    user.setU_id(res.getInt("u_id"));
                    user.setU_name(res.getString("u_name"));
                    user.setU_pwd(res.getString("u_pwd"));
                    user.setU_phone(res.getString("u_phone"));
                    user.setU_role(res.getInt("u_role"));
                    user.setU_isdelete(res.getInt("u_isdelete"));
                    arr.add(user);
                }
                return arr;

            } catch (SQLException s){
                s.printStackTrace();
            }

            return null;
        }

        //找指定学生
    @Override
    public User searchIdName(String v) {
        /**
         * sql
         */
        Connection connection= null;
        try {
            connection = JDBCUtils.getConnection();
        } catch (Exception e) {

        }
        PreparedStatement pre =null;
        ResultSet res =null;
        //u_role为1表示普通用户,为0为管理员,u_isdelete为0表示还在,为1表示已删除
        String sql="select *from user where u_id ='"+v+"'or+ u_name ='"+v+"' ";
        try{
            pre= connection.prepareStatement(sql);
            res=pre.executeQuery();
            while(res.next()){
                User user=new User();
                user.setU_id(res.getInt("u_id"));
                user.setU_name(res.getString("u_name"));
                user.setU_pwd(res.getString("u_pwd"));
                user.setU_phone(res.getString("u_phone"));
                user.setU_role(res.getInt("u_role"));
                user.setU_isdelete(res.getInt("u_isdelete"));

                return  user;
            }

        } catch (SQLException s){
            s.printStackTrace();
        }

        return null;
    }

    //获取登录人员信息
    @Override
    public User getAdmint(String id) {
        Connection connection= null;
        try {
            connection = JDBCUtils.getConnection();
        } catch (Exception e) {

        }
        PreparedStatement pre =null;
        ResultSet res =null;
        String sql="select *from user where u_id ='"+id+"'or+ u_name ='"+id+"' ";
       try{
            pre= connection.prepareStatement(sql);
            res=pre.executeQuery();
            while(res.next()){
                User user=new User();
                user.setU_id(res.getInt("u_id"));
                user.setU_name(res.getString("u_name"));
                return user;
            }

        } catch (SQLException s){
            s.printStackTrace();
        }
        return null;
    }

    //删除信息
    @Override
    public boolean delUser(String del) {
        Connection connection= null;
        try {
            connection = JDBCUtils.getConnection();
        } catch (Exception e) {

        }
        PreparedStatement pre =null;
        ResultSet ress=null;
        int res=0;
        String sql="delete from user where u_name ='"+del+"'or + u_id ='"+del+"' ";
        try{
            pre= connection.prepareStatement(sql);
            res=pre.executeUpdate();

         if(res>0)return true;

        } catch (SQLException s){
            s.printStackTrace();
        }

        return false;
    }

//添加学生
    @Override
    public boolean addUser(User user) {
        Connection connection= null;
        try {
            connection = JDBCUtils.getConnection();
        } catch (Exception e) {

        }
        PreparedStatement pre =null;
        ResultSet ress=null;
        String name=user.getU_name();
         int id=user.getU_id();
         String pwd=user.getU_pwd();
         String phone=user.getU_phone();
        int res=0;
        //"insert into user values('"+user.getU_name()+"','"+user.getU_id()+"','"+user.getU_pwd()+"','"+user.getU_phone()+"')"
        String sql="insert into user(u_name,u_id,u_pwd,u_phone)\n" +
                "values('"+name+"','"+id+"','"+pwd+"','"+phone+"')";
        try{
            pre= connection.prepareStatement(sql);
            res=pre.executeUpdate();
            System.out.println(res);
            if(res>=0)return true;

        } catch (SQLException s){
            s.printStackTrace();
        }

        return false;
    }

    //修改信息
    @Override
    public boolean changeUser(User user) {
        Connection connection= null;
        try {
            connection = JDBCUtils.getConnection();
        } catch (Exception e) {

        }
        PreparedStatement pre =null;
        ResultSet ress=null;
        String name=user.getU_name();
        int id=user.getU_id();
        String pwd=user.getU_pwd();
        String phone=user.getU_phone();
        int res=0,res1=0;
        String sql1="delete from user where u_id="+id;

        try{
            pre= connection.prepareStatement(sql1);
            res=pre.executeUpdate();
            if (res>0){
                String sql="insert into user(u_name,u_id,u_pwd,u_phone)\n" +
                        "values('"+name+"','"+id+"','"+pwd+"','"+phone+"')";
                pre= connection.prepareStatement(sql);
                res1=pre.executeUpdate();
            }
            System.out.println(res);
            if(res1>0)return true;

        } catch (SQLException s){
            s.printStackTrace();
        }

        return false;
    }
}

utils下

JDBCUtils

package com.utils;

import java.sql.*;

public class JDBCUtils {
    public static Connection getConnection() throws SQLException, ClassNotFoundException {
        Class.forName("com.mysql.cj.jdbc.Driver");
        String url="jdbc:mysql://localhost:3306/studenttest?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT";
        String username="root";
        String password="123456";
        Connection conn= DriverManager.getConnection(url,username,password);
        return conn;
    }

    public static void release(Statement stmt,Connection conn){
        if(stmt!=null){
            try{
                stmt.close();
            }catch(SQLException e){
                e.printStackTrace();
            }
            stmt=null;
        }
        if(conn!=null){
            try{
                conn.close();
            }catch (SQLException e){
                e.printStackTrace();
            }
            conn=null;
        }
    }

    public static void release(ResultSet rs,Statement stmt,Connection conn){
        if(rs!=null){
            try{
                rs.close();
            }catch (SQLException e){
                e.printStackTrace();
            }
            rs=null;
        }
        release(stmt,conn);
    }
}

还有写web-inf下lib下的jar包

压缩包含使用说明,windows端在文件资源管理器中 点击create.bat支持一键建表,其他系统可以使用 createtables.sql里面的sql语句进行数据库 欢迎使用学生信息管理系统(管理员端) 本系统支持添加,删除,修改等实用功能 方便您更好的管理学生数据 【I】管理员端 一,选择数据库 通过右上角的数据库菜单栏可以选择当前操 作的数据库 二,添加教师,学生,教师,学生成绩(管理员) 1)通过管理员窗口的左侧按钮可以按需添加 学生,教师,管理员,学生成绩等信息 2)通过下方按钮“添加行”来新建空行,然 后手动输入数据,再点击“保存”按钮将表 单上传到数据库。 (注意:如果格式不正确,比如通过该方法上传 的数据可能会发生错误,所以方法2只适合管 理员使用) 3)支持批量添加行(注意:如果有一行错误,所 有操作将被回滚) 4)为学生添加老师,进入选择学生数据库,在 某一个学生行单击右键,选择“添加老师”,即 可为该id的学生添加老师 5)为学生添加课程,进入学生数据可以,在某一 学生行单击右键,选择“修改成绩”,可以进入 成绩修改窗口(管理员端),输入学生id, 为学生添加任意课程,也可为课程添加或修改删除 成绩 三,删除 在表格中使用鼠标选中一些数据行,然后点击 左侧“删除”按钮,即可删除表单中的数据 四,修改 双击表格,输入数据,按回车保存,然后点击 右下角“保存修改”按钮,将表单上传到数据 库中。(注意:因为学生成绩信息是以二进制 形式储存,所以请不要直接在表格中修改) 五,排序 在表格某一列点击排序按钮,对当前选择的表单 按该列进行排序,右上角排序选择框可以决定排 序的方向是升序还是逆序。 【II】教师端 1)教师基本信息 教师信息将显示在表格左侧 2)查看学生列表 单击“我的学生”,表格中将显示该教师的所有 学生 3)在表格中右击某一个学生,将进入成绩修改窗 口(教师端),支持为当前学生添加或修改当前 教师所教科目的学生成绩 4)查看成绩表 单击“成绩表”,表格中显示该教师所有学生的 成绩信息。 【III】学生端 1)学生基本信息 学生信息将显示在表格左侧 2)查看成绩 单击“学业成绩”,表格中将显示学生所有成绩 3)查看老师 单击“我的老师”,表格中将显示学生所有老师 的基本信息。
评论 192
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

执久呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值