项目源码及数据库:

链接:https://pan.baidu.com/s/1ktUyxbOI9lljWr-HRTRIiQ?pwd=1024 提取码:1024

 

目录

一.项目介绍

二.运行效果

1.登录界面

2.主界面(点击学号修改学生信息)

3.增加学生界面

​编辑

三.项目目录结构

 四.代码展示

1.jsp及css代码

 ①登录界面代码(login.jsp)

②登录界面css(login.css)

③注册用户界面(register.jsp)

④注册用户界面css(index.css)

⑤修改密码界面(UpdateLoginID.jsp)

⑥注销用户界面(DeleteLoginID.jsp)

⑦登录成功主界面(index.jsp)

⑧登陆成功界面css(show.css)

⑨点击学号,修改学生信息界面(StudentInfo.jsp)

⑩增加学生信息(add.jsp)

⑪上传作业操作(UpAndDown.jsp)

2.三层架构

①表示层Servlet

②业务逻辑层Service

③数据访问层Dao

④通用的数据库操作(DBUtils.java)

3.JavaBean封装数据

①分页帮助类(Page.java)

②封装学生信息(Student.java)

4.项目所需jar包

五.数据库表格

①登录注册表格login

②学生信息表格student1

一.项目介绍

本系统主要实现对基于Javaweb学生信息管理系统所需的各项基本功能,能够对学生信息进行增删改查等功能,并可以实现用户注册、用户登陆等功能。

数据库:Mysql

开发工具:Eclipse

开发环境:JDK+Tomcat

二.运行效果

1.登录界面

2.主界面(点击学号修改学生信息)

3.增加学生界面

三.项目目录结构

 四.代码展示

1.jsp及css代码

 ①登录界面代码(login.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

学生信息管理系统-登录界面

②登录界面css(login.css)

*{margin:0;padding:0;}

a{text-decoration:none;color:#666;}

a:hover{

text-decoration:underline;

color:E4393C;

}

html,body

{

font:12px/150% Arial,Verdana;

}

.wrap{

width:1000px;

margin:0 auto;

}

.left{

float:left;

}

.content{

background:url(../image/login.jpg);

background-size: cover;

width:1280px;

height:559px;

}

.login-frame{

margin:50px 5% 50px 5%;

float:right;

padding:60px;

background:white;

background-color:rgba(255,255,255,0.9);

border-radius:25px;

order-right:1px #bdbdbd solid;

width:280px;

height:230px;

}

.login-frame h2{

font-size:25px;

height:40px;

margin-buttom:25px;

}

.login-frame h2 a{

font-size:15px;

color:#59c2c5;

padding-left:20px;

background:url(../image/icon5.jpg)no-repeat;

}

.login-frame .item{

height:60px;

margin-buttom:40px;

}

.login-frame .item input{

line-height:40px;

width:260px;

border:none;

border-bottom: 1px solid #59c2c5;

}

.login-btn{

display:block;

height:50px;display:block;

height:50px;

color:#fff;

background:#59c2c5;

width:265px;

font-size:16px;

line-height:30px;

text-align:center;

border-radius:10px;

border:none;

color:#fff;

background:#59c2c5;

width:265px;

font-size:16px;

line-height:30px;

text-align:center;

border-radius:10px;

border:none;

}

.login-frame .item1{

dislpay:flex;

justify-content: space-between;

margin-top:1 rem;

}

.login-frame .item1 a{

line-height:40px;

font-size:1.1rem;

margin-top:5 rem;

padding:1rem 3rem;

}

③注册用户界面(register.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

注册账号

用户注册





返回

<%

String error4 = (String) request.getAttribute("error4");

if (error4!= null) {

if (error4.equals("addError")) {

out.println("注册失败!账户名已经存在!");

}

}

%>

④注册用户界面css(index.css)

*{margin:0;padding:0;}

html,body

{

font:12px/150% Arial,Verdana;

}

.content{

background:url(../image/login.jpg);

background-size: cover;

width:1280px;

height:559px;

}

.box{

margin:60px 18% 60px 18%;

float:right;

padding:30px;

background:white;

background-color:rgba(255,255,255,0.9);

border-radius:15px;

}

.item{

height:60px;

margin-buttom:40px;

}

.item input{

line-height:40px;

width:260px;

border:none;

border-bottom: 1px solid #59c2c5;

border-radius:3px;

}

.item1{

font-size:15px;

height:40px;

}

.btn{

display:block;

height:50px;

color:#fff;

background:#59c2c5;

width:265px;

font-size:16px;

line-height:30px;

text-align:center;

border-radius:10px;

border:none;

}

⑤修改密码界面(UpdateLoginID.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

更改账号密码

修改密码






返回

<%

String error0 = (String) request.getAttribute("error0");

if (error0!= null) {

if (error0.equals("loginError")) {

out.println("用户名或密码错误,请重新输入!");

} else if (error0.equals("nologinError")) {

response.sendRedirect("login.jsp");

}

}

%>

⑥注销用户界面(DeleteLoginID.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

注销账号

注销账号




返回

<%

String error2 = (String) request.getAttribute("error2");

if (error2!= null) {

if (error2.equals("loginError")) {

out.println("用户名或密码错误!注销失败!");

}

}

%>

⑦登录成功主界面(index.jsp)

点击学号进入单个学生信息展示界面,可修改学生信息

点击删除删除学生信息

<%@page import="student.entity.Page"%>

<%@page import="java.util.List"%>

<%@page import="student.entity.Student"%>

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

学生信息列表

<%

Page page1 = (Page)request.getAttribute("page1");

for(Student student:page1.getStudents()){

%>

<%

}

%>

学号

姓名

年龄

专业

操作

<%=student.getSno() %><%=student.getName() %><%=student.getAge() %><%=student.getDept() %>删除

<%

if(page1.getCurrentPage()==page1.getTotalPage()-1){

%>

<%

}

else if(page1.getCurrentPage()==0){

%>

<%

}

else{

%>

<%

}

%>


<%

String error = (String)request.getAttribute("error");

if(error!=null){

if(error.equals("addError")){

out.println("增加失败!");

}

else if(error.equals("noaddError")){

out.println("增加成功!");

}

}

String error1 = (String)request.getAttribute("error1");

if(error1!=null){

if(error1.equals("deleteError")){

out.println("删除失败!");

}

else if(error1.equals("nodeleteError")){

out.println("删除成功!");

}

}

String error2 = (String)request.getAttribute("error2");

if(error2!=null){

if(error2.equals("updateError")){

out.println("修改失败!");

}

else if(error2.equals("noupdateError")){

out.println("修改成功!");

}

}

String error3 = (String)request.getAttribute("error3");

if(error3!=null){

if(error3.equals("uploadError")){

out.println("上传失败!");

}

else if(error3.equals("nouploadError")){

out.println("上传成功!");

}

}

%>

⑧登陆成功界面css(show.css)

*{margin:0;padding:0;}

html,body

{

font:12px/150% Arial,Verdana;

}

.content{

background:url(../image/index.JPG);

background-size: cover;

width:1280px;

height:559px;

}

.box{

margin:60px 18% 60px 18%;

float:right;

padding:30px;

background:white;

background-color:rgba(255,255,255,0.9);

border-radius:15px;

}

.item{

height:40px;

border-radius:15px;

}

.item a{

background-color: lightgrey;

text-decoration: none;

font-size:15px;

color:black;

border-radius:3px;

}

.item1{

font-size:15px;

height:40px;

}

table{

width:100%;

border-collapse:collapse;

}

table body{

diaplay:block;

height:300px;

overflow-y: scroll;

}

table td{

border:1px solid #A6A6A6;

height:60px;

width:300px;

text-align: center;

font-size: 15px;

}

table th{

height:60px;

border:1px solid #A6A6A6;

}

⑨点击学号,修改学生信息界面(StudentInfo.jsp)

<%@page import="student.entity.Student"%>

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

修改学生信息

<%

Student student = (Student)request.getAttribute("student");

%>

修改学生信息

学号:

姓名:

年龄:

专业:

返回

⑩增加学生信息(add.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

增加学生信息

增加学生信息






返回

⑪上传作业操作(UpAndDown.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

上传作业

上传作业





返回

2.三层架构

①表示层Servlet

检查登录的用户名和密码是否匹配(CheckLoginServlet.java)

package student.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import student.service.IStudentService;

import student.service.impl.StudentServiceImpl;

public class CheckLoginServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("utf-8");

String ID = request.getParameter("UID");

String pwd = request.getParameter("upwd");

IStudentService service = new StudentServiceImpl();

boolean result = service.checkLoginID(ID,pwd);

response.setContentType("text/html;charest=UTF-8");

response.setCharacterEncoding("utf-8");

if(!result) {

request.setAttribute("error", "loginError");

}else {

request.setAttribute("error", "nologinError");

}

request.getRequestDispatcher("login.jsp").forward(request, response);

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

doGet(request, response);

}

}

注册账户表示层(AddLoginIDServlet.java)

package student.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import student.service.IStudentService;

import student.service.impl.StudentServiceImpl;

/**

* Servlet implementation class AddLoginIDServlet

*/

public class AddLoginIDServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("utf-8");

String ID = request.getParameter("UID");

String pwd = request.getParameter("upwd");

IStudentService studentService = new StudentServiceImpl();

boolean result = studentService.addLoginID(ID,pwd);

response.setContentType("text/html;charest=UTF-8");

response.setCharacterEncoding("utf-8");

if(!result) {

request.setAttribute("error4", "addError");

request.getRequestDispatcher("register.jsp").forward(request, response);

}else {

request.setAttribute("error4", "noaddError");

request.getRequestDispatcher("login.jsp").forward(request, response);

}

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

doGet(request, response);

}

}

修改密码表示层(UpdateLoginPwdServlet.java)

package student.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import student.service.IStudentService;

import student.service.impl.StudentServiceImpl;

/**

* Servlet implementation class UpdateLoginPwdServlet

*/

public class UpdateLoginPwdServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("utf-8");

String ID = request.getParameter("UID");

String pwd = request.getParameter("upwd");

String pwd1 = request.getParameter("upwd1");

IStudentService service = new StudentServiceImpl();

boolean result = service.checkLoginID(ID,pwd);

response.setContentType("text/html;charest=UTF-8");

response.setCharacterEncoding("utf-8");

if(!result) {

request.setAttribute("error0", "loginError");

request.getRequestDispatcher("UpdateLoginPwd.jsp").forward(request, response);

}else {

request.setAttribute("error0", "nologinError");

boolean result1 = service.updateLoginPwd(ID,pwd1);

if(!result1) {

request.getRequestDispatcher("UpdateLoginPwd.jsp").forward(request, response);

}else {

request.setAttribute("error1", "noupdateError");

request.getRequestDispatcher("login.jsp").forward(request, response);

}

}

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

doGet(request, response);

}

}

注销用户表示层(DeleteLoginIDServlet.java)

package student.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import student.service.IStudentService;

import student.service.impl.StudentServiceImpl;

/**

* Servlet implementation class DeleteLoginIDServlet

*/

public class DeleteLoginIDServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("utf-8");

String ID = request.getParameter("UID");

String pwd = request.getParameter("upwd");

IStudentService service = new StudentServiceImpl();

boolean result = service.checkLoginID(ID,pwd);

boolean result1 = service.deleteLoginID(ID);

response.setContentType("text/html;charest=UTF-8");

response.setCharacterEncoding("utf-8");

if(!result) {

request.setAttribute("error2", "loginError");

request.getRequestDispatcher("DeleteLoginID.jsp").forward(request, response);

}else {

request.setAttribute("error2", "nologinError");

if(!result1) {

request.setAttribute("error3", "deleteError");

request.getRequestDispatcher("DeleteLoginID.jsp").forward(request, response);

}else {

request.setAttribute("error3", "nodeleteError");

request.getRequestDispatcher("login.jsp").forward(request, response);

}

}

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

doGet(request, response);

}

}

分页显示(QueryStudentByPageServlet.java)

package student.servlet;

import java.io.IOException;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import student.entity.Page;

import student.entity.Student;

import student.service.IStudentService;

import student.service.impl.StudentServiceImpl;

public class QueryStudentByPageServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public QueryStudentByPageServlet() {

super();

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

IStudentService studentService = new StudentServiceImpl();

int count = studentService.getTotalCount();

Page page = new Page();

String cPage = request.getParameter("currentPage");

if(cPage == null) {

cPage = "0";

}

int currentPage = Integer.parseInt(cPage);

page.setCurrentPage(currentPage);

int totalCount = studentService.getTotalCount();

page.setTotalCount(totalCount);

int pageSize = 4;

page.setPageSize(pageSize);

List students = studentService.queryStudentsByPage(currentPage, pageSize);

page.setStudents(students);

request.setAttribute("page1", page);

request.getRequestDispatcher("index.jsp").forward(request, response);

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

doGet(request, response);

}

}

按学号查询学生信息(QueryStudentBySnoServlet.java)

package student.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import student.entity.Student;

import student.service.IStudentService;

import student.service.impl.StudentServiceImpl;

public class QueryStudentBySnoServlet extends HttpServlet {

/**

*

*/

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("UTF-8");

int sno = Integer.parseInt(request.getParameter("sno"));

IStudentService service = new StudentServiceImpl();

Student student = service.queryStudentBySno(sno);

request.setAttribute("student", student);//将查询到的request信息放在request域中

request.getRequestDispatcher("StudentInfo.jsp").forward(request,response);

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);

}

}

增加学生信息(AddStudentServlet.java)

package student.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import student.entity.Student;

import student.service.IStudentService;

import student.service.impl.StudentServiceImpl;

public class AddStudentServlet extends HttpServlet {

/**

*

*/

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("utf-8");

String name = request.getParameter("name");

int sno = Integer.parseInt(request.getParameter("sno"));

int age = Integer.parseInt(request.getParameter("age"));

String dept = request.getParameter("dept");

Student student = new Student(name, sno, age, dept);

IStudentService studentService = new StudentServiceImpl();

boolean result = studentService.addStudent(student);

response.setContentType("text/html;charest=UTF-8");

response.setCharacterEncoding("utf-8");

if(!result) {

request.setAttribute("error", "addError");

}else {

request.setAttribute("error", "noaddError");

}

request.getRequestDispatcher("QueryStudentByPageServlet").forward(request, response);

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);

}

}

删除学生信息(DeleteStudentServlet.java)

package student.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import student.service.IStudentService;

import student.service.impl.StudentServiceImpl;

/**

* Servlet implementation class DeleteStudentServlet

*/

public class DeleteStudentServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("utf-8");

int sno = Integer.parseInt(request.getParameter("sno"));

IStudentService service = new StudentServiceImpl();

boolean result = service.deleteStudentBySno(sno);

response.setContentType("text/html;charest=UTF-8");

response.setCharacterEncoding("utf-8");

if(!result) {

request.setAttribute("error1", "deleteError");

}else {

request.setAttribute("error1", "nodeleteError");

}

request.getRequestDispatcher("QueryStudentByPageServlet").forward(request, response);

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

doGet(request, response);

}

}

修改学生信息表示层(UpdateStudentServlet.java)

package student.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import student.entity.Student;

import student.service.IStudentService;

import student.service.impl.StudentServiceImpl;

public class UpdateStudentServlet extends HttpServlet {

/**

*

*/

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("UTF-8");

String name = request.getParameter("name");

int sno = Integer.parseInt(request.getParameter("sno"));

int age = Integer.parseInt(request.getParameter("age"));

String dept = request.getParameter("dept");

Student student = new Student(name, age, dept);

System.out.println(sno);

IStudentService service = new StudentServiceImpl();

boolean result = service.updateStudentBySno(sno, student);

response.setContentType("text/html;charest=UTF-8");

response.setCharacterEncoding("utf-8");

if(!result) {

request.setAttribute("error2", "updateError");

}else {

request.setAttribute("error2", "noupdateError");

}

request.getRequestDispatcher("QueryStudentByPageServlet").forward(request, response);

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);

}

}

上传作业(UploadServlet.java)

package student.servlet;

import java.io.File;

import java.io.IOException;

import java.util.Iterator;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.FileUploadBase;

import org.apache.commons.fileupload.FileUploadException;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.ServletFileUpload;

import student.service.IStudentService;

import student.service.impl.StudentServiceImpl;

public class UploadServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("UTF-8");

response.setCharacterEncoding("UTF-8");

response.setContentType("text/html; charset=UTF-8");

String name = null;

int sno = -1;

boolean isMutipart = ServletFileUpload.isMultipartContent(request);

if(isMutipart) {

DiskFileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload upload = new ServletFileUpload(factory);

factory.setRepository(new File("D:\\uploadtemp"));

List items = null;

try {

items = upload.parseRequest(request);

} catch (FileUploadException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

Iterator iter = items.iterator();

while(iter.hasNext()) {

FileItem item= iter.next();

String fileName = item.getName();

String itemName = item.getFieldName();

if(item.isFormField()) {

if(itemName.equals("name")){

name = item.getString("utf-8");

}else if(itemName.equals("sno")) {

sno =Integer.parseInt(item.getString("utf-8"));

}else {

}

}else {

//定义上传路径:指定上传的位置

String path = "D:\\upload";

File file = new File(path,fileName);

try {

item.write(file);

} catch (Exception e) {

e.printStackTrace();

}

}

}

IStudentService studentService = new StudentServiceImpl();

boolean result = studentService.upLoadWork(sno,name);

System.out.println(name+sno);

System.out.println(result);

if(!result) {

request.setAttribute("error3", "uploadError");

request.getRequestDispatcher("QueryStudentByPageServlet").forward(request, response);

}else{

request.setAttribute("error3", "nouploadError");

request.getRequestDispatcher("QueryStudentByPageServlet").forward(request, response);

}

}

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

doGet(request, response);

}

}

②业务逻辑层Service

Service接口(IStudentService.java)

package student.service;

import java.util.List;

import student.entity.Student;

public interface IStudentService {

//查询全部学生信息

public List queryAllStudents();

//按照学号查询学生信息

public Student queryStudentBySno(int sno);

//删除学生信息

public boolean deleteStudentBySno(int sno) ;

//更改学生信息

public boolean updateStudentBySno(int sno, Student student) ;

//增加学生信息

public boolean addStudent(Student student) ;

//查询总数据

public int getTotalCount();

//分页

public List queryStudentsByPage(int current, int pageSize);

//检查登陆账户和密码

public boolean checkLoginID(String ID,String pwd);

//注册账户

public boolean addLoginID(String ID, String pwd);

//更改密码

public boolean updateLoginPwd(String ID,String pwd1);

//注销账号

public boolean deleteLoginID(String ID);

//判断ID是否存在

public boolean IDExist(String ID);

//判断上传作业输入的学生信息是否存在

public boolean upLoadWork(int sno, String name);

}

接口的实现类(StudentServiceImpl.java)

package student.service.impl;

import java.util.List;

import student.dao.IStudentDao;

import student.dao.impl.StudentDaoImpl;

import student.entity.Student;

import student.service.IStudentService;

import student.util.DBUtil;

//业务逻辑层:逻辑性的增删改查(增:查+增),对dao层进行的组装

public class StudentServiceImpl implements IStudentService{

IStudentDao studentDao = new StudentDaoImpl();

//查询全部学生信息

public List queryAllStudents(){

return studentDao.queryAllStudents();

}

//按照学号查询学生信息

public Student queryStudentBySno(int sno) {

return studentDao.queryStudentBySno(sno);

}

//删除学生信息

public boolean deleteStudentBySno(int sno) {

if(studentDao.isExist(sno)) {

return studentDao.deleteStudentBySno(sno);

}

return false;

}

//更改学生信息

public boolean updateStudentBySno(int sno, Student student) {

return studentDao.updateStudentBySno(sno, student);

}

//增加学生信息

public boolean addStudent(Student student) {

if(!studentDao.isExist(student.getSno())) {

studentDao.addStudent(student);

return true;

}else {

System.out.println("学号重复!");

return false;

}

}

//查询总条数

@Override

public int getTotalCount() {

return studentDao.getTotalCount();

}

//查询当前页的数据集合

@Override

public List queryStudentsByPage(int current, int pageSize) {

return studentDao.queryStudentByPage(current, pageSize);

}

@Override

public boolean checkLoginID(String ID, String pwd) {

return studentDao.checkLoginID(ID, pwd);

}

@Override

public boolean addLoginID(String ID, String pwd) {

return studentDao.addLoginID(ID,pwd);

}

@Override

public boolean updateLoginPwd(String ID, String pwd1) {

return studentDao.updateLoginPwd(ID,pwd1);

}

@Override

public boolean deleteLoginID(String ID) {

return studentDao.deleteLoginID(ID);

}

@Override

public boolean IDExist(String ID) {

return studentDao.IDExist(ID);

}

@Override

public boolean upLoadWork(int sno, String name) {

return studentDao.upLoadWork(sno,name);

}

}

③数据访问层Dao

接口(IStudentDao.java)

package student.dao;

import java.util.List;

import student.entity.Student;

public interface IStudentDao {

public boolean updateLoginPwd(String ID,String pwd1);

//查询全部学生信息

public List queryAllStudents();

//判断此人是否存在

public boolean isExist(int sno) ;

//增加学生信息

public boolean addStudent(Student student);

//删除学生信息

public boolean deleteStudentBySno(int sno);

//根据sno找到要修改的学生,然后再进行修改

public boolean updateStudentBySno(int sno,Student student);

//根据学号查询学生信息

public Student queryStudentBySno(int sno);

//查询总数据数

public int getTotalCount();

//currentPage:当前页(页码)pageSize:页面大小(每页显示的数据条数)

public List queryStudentByPage(int currentPage,int pageSize);

public boolean checkLoginID(String ID,String pwd);

public boolean addLoginID(String ID, String pwd);

public boolean deleteLoginID(String ID);

public boolean IDExist(String ID);

public boolean upLoadWork(int sno, String name);

}

接口的实现类(StudentDaoImpl.java)

package student.dao.impl;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

import student.dao.IStudentDao;

import student.entity.Student;

import student.util.DBUtil;

public class StudentDaoImpl implements IStudentDao{

private final String URL = "jdbc:mysql://localhost:3306/STUDENT?useSSL=false&serverTimezone=UTC";

private final String UserName = "root";

private final String Pwd = "123456";

String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";

//查询全部学生信息

public List queryAllStudents(){

PreparedStatement pstmt = null;

Student student = null;

List students = new ArrayList<>();

ResultSet rs = null;

try {

String sql = "select * from student1";

rs = DBUtil.executeQuery(sql, null);

while(rs.next()) {

int sno= rs.getInt("sno");

String name = rs.getString("name");

int age = rs.getInt("age");

String dept = rs.getString("dept");

student = new Student(name, sno, age, dept);

students.add(student);

}

return students;

} catch(Exception e) {

e.printStackTrace();

return null;

}

finally {

DBUtil.closeAll(rs, pstmt, DBUtil.connection);

}

}

//判断此人是否存在

public boolean isExist(int sno) {

return queryStudentBySno(sno) == null? false:true;

}

//增加学生信息

public boolean addStudent(Student student) {

String sql = "insert into student1(name,sno,age,dept) values(?,?,?,?)";

Object[] params = {student.getName(),student.getSno(),student.getAge(),student.getDept()};

return DBUtil.executeUpdate(sql, params);

}

//删除学生信息

public boolean deleteStudentBySno(int sno) {

String sql = "delete from student1 where sno =?";

Object[] params = {sno};

return DBUtil.executeUpdate(sql, params);

}

//根据sno找到要修改的学生,然后再进行修改

public boolean updateStudentBySno(int sno,Student student) {

String sql = "update student1 set name =?,age=?,dept=? where sno=?";

Object[] params = {student.getName(),student.getAge(),student.getDept(),sno};

return DBUtil.executeUpdate(sql, params);

}

//根据学号查询学生信息

public Student queryStudentBySno(int sno){

PreparedStatement pstmt = null;

Student student = null;

Connection connection = null;

ResultSet rs = null;

try {

Class.forName(JDBC_DRIVER);

connection = DriverManager.getConnection(URL,UserName,Pwd);

String sql = "select * from student1 where sno = ?";

pstmt = connection.prepareStatement(sql);

pstmt.setInt(1, sno);

rs = pstmt.executeQuery();

if(rs.next()) {

int no= rs.getInt("sno");

String name = rs.getString("name");

int age = rs.getInt("age");

String dept = rs.getString("dept");

student = new Student(name, no, age, dept);

}

return student;

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

return null;

} catch(SQLException e) {

e.printStackTrace();

return null;

}catch(Exception e) {

e.printStackTrace();

return null;

}

finally {

DBUtil.closeAll(rs, pstmt, DBUtil.connection);

}

}

@Override

public int getTotalCount() {//查询总数据数

String sql = "select count(1) from student1";

return DBUtil.getTotalCount(sql);

}

@Override

public List queryStudentByPage(int currentPage, int pageSize) {

String sql = "select * from student1 order by sno asc limit ?,?";

Object[] params = {currentPage*pageSize,pageSize};

List students = new ArrayList<>();

ResultSet rs = DBUtil.executeQuery(sql, params);

try {

while(rs.next()) {

Student student = new Student(rs.getString("name"),rs.getInt("sno"),rs.getInt("age"),rs.getString("dept"));

students.add(student);

}

} catch (SQLException e) {

e.printStackTrace();

}catch (Exception e) {

e.printStackTrace();

}

return students;

}

@Override

public boolean checkLoginID(String ID, String pwd){

int count = 0;

String sql = "select * from login where ID=? and pwd=?";

Object[] params = {ID,pwd};

ResultSet rs = DBUtil.executeQuery(sql, params);

try {

while(rs.next()) {

count++;

}

if(count>0)

return true;

else

return false;

} catch (SQLException e) {

e.printStackTrace();

}

return false;

}

@Override

public boolean addLoginID(String ID, String pwd) {

// TODO Auto-generated method stub

String sql = "insert into login(ID,pwd) values(?,?)";

Object[] params = {ID,pwd};

return DBUtil.executeUpdate(sql, params);

}

@Override

public boolean updateLoginPwd(String ID, String pwd1) {

String sql = "update login set pwd =? where ID=?";

Object[] params = {pwd1,ID};

return DBUtil.executeUpdate(sql, params);

}

@Override

public boolean deleteLoginID(String ID) {

String sql = "delete from login where ID =?";

Object[] params = {ID};

return DBUtil.executeUpdate(sql, params);

}

@Override

public boolean IDExist(String ID) {

String sql = "select *from login where ID = ?";

Object[] params = {ID};

return DBUtil.executeUpdate(sql, params);

}

@Override

public boolean upLoadWork(int sno, String name) {

int count = 0;

String sql = "select *from student1 where sno = ? and name = ?";

Object[] params = {sno,name};

ResultSet rs = DBUtil.executeQuery(sql, params);

try {

while(rs.next()) {

count++;

}

if(count>0)

return true;

else

return false;

} catch (SQLException e) {

e.printStackTrace();

}

return false;

}

}

④通用的数据库操作(DBUtils.java)

package student.util;

import java.sql.Connection;

import java.sql.DriverManager;

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 student.entity.Student;

//通用的数据库操作方法

public class DBUtil {

private static final String URL = "jdbc:mysql://localhost:3306/STUDENT?useSSL=false&serverTimezone=UTC";

private static final String UserName = "root";

private static final String Pwd = "123456";

private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";

public static Connection connection = null;

public static PreparedStatement pstmt = null;

public static ResultSet rs = null;

//查询总数

public static int getTotalCount(String sql){

int count = -1;

try {

pstmt = createPreParedStatement(sql,null);

rs = pstmt.executeQuery();

if(rs.next()) {

count = rs.getInt(1);

}

} catch (SQLException e) {

e.printStackTrace();

}catch (Exception e) {

e.printStackTrace();

}finally {

closeAll(rs,pstmt,connection);

}

return count;

}

//增删改

public static boolean executeUpdate(String sql,Object[] params) {

try {

pstmt = createPreParedStatement(sql,params);

int count = pstmt.executeUpdate();

System.out.println(count);

if(count>0) {

return true;

}

else {

return false;

}

} catch (ClassNotFoundException e) {

e.printStackTrace();

return false;

} catch(SQLException e) {

e.printStackTrace();

return false;

}catch(Exception e) {

e.printStackTrace();

return false;

}

finally {

closeAll(null,pstmt,connection);

}

}

public static void closeAll(ResultSet rs,Statement stmt,Connection connection){

try{

if(rs!=null)rs.close();

if(pstmt!=null)pstmt.close();

if(connection!=null)connection.close();

}catch(SQLException e) {

e.printStackTrace();

}

}

public static PreparedStatement createPreParedStatement(String sql,Object[] params) throws ClassNotFoundException, SQLException {

pstmt = getConnection().prepareStatement(sql);

if(params!=null) {

for(int i = 0;i

pstmt.setObject(i+1, params[i]);

}

}

return pstmt;

}

public static Connection getConnection() throws ClassNotFoundException, SQLException {

Class.forName(JDBC_DRIVER);

return DriverManager.getConnection(URL,UserName,Pwd);

}

//通用的查

public static ResultSet executeQuery(String sql,Object[] params){

List students = new ArrayList<>();

Student student = null;

try {

pstmt = createPreParedStatement(sql,params);

rs = pstmt.executeQuery();

return rs;

} catch(SQLException e) {

e.printStackTrace();

return null;

}catch(Exception e) {

e.printStackTrace();

return null;

}

}

}

3.JavaBean封装数据

①分页帮助类(Page.java)

package student.entity;

import java.util.List;

//分页帮助类

public class Page {

private int currentPage;

private int pageSize;

private int totalCount;

private int totalPage;

private List students;

public Page() {

}

public Page(int currentPage, int pageSize, int totalCount, int totalPage, List students) {

this.currentPage = currentPage;

this.pageSize = pageSize;

this.totalCount = totalCount;

this.totalPage = totalPage;

this.students = students;

}

public int getCurrentPage() {

return currentPage;

}

public void setCurrentPage(int currentPage) {

this.currentPage = currentPage;

}

public int getPageSize() {

return pageSize;

}

public void setPageSize(int pageSize) {

this.pageSize = pageSize;

this.totalPage = this.totalCount%this.pageSize==0?this.totalCount/this.pageSize:this.totalCount/this.pageSize+1;

}

public int getTotalCount() {

return totalCount;

}

public void setTotalCount(int totalCount) {

this.totalCount = totalCount;

}

public int getTotalPage() {

return totalPage;

}

public List getStudents() {

return students;

}

public void setStudents(List students) {

this.students = students;

}

}

②封装学生信息(Student.java)

package student.entity;

public class Student {

private String name;

private int sno;

private int age;

private String dept;

public Student(int sno) {

this.sno = sno;

}

public Student() {

}

public Student(String name, int age, String dept) {

this.name = name;

this.age = age;

this.dept = dept;

}

public Student(String name, int sno, int age, String dept) {

this.name = name;

this.sno = sno;

this.age = age;

this.dept = dept;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getSno() {

return sno;

}

public void setSno(int sno) {

this.sno = sno;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String getDept() {

return dept;

}

public void setDept(String dept) {

this.dept = dept;

}

public String toString() {

return this.getSno()+"-"+this.getName()+"-"+this.getAge()+"-"+this.getDept();

}

}

4.项目所需jar包

项目需要3个jar包,前两个jar包属于文件上传所需,最后一个为连接数据库的jar包

下载官网地址:https://mvnrepository.com/  

 

五.数据库表格

本人用的是mysql数据库,直接在mysql数据库中新建表格

①登录注册表格login

②学生信息表格student1

文章链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: