热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Javaweb学生信息管理系统(Mysql+JSP+MVC+CSS)

原标题:Javaweb学生信息管理系统(Mysql+JSP+MVC+CSS)项目源码及数据库:链接:https://pan.baid

原标题:Javaweb学生信息管理系统(Mysql+JSP+MVC+CSS)

项目源码及数据库:

链接: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"%>


&lwww.yii666.comt;head>














②登录界面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"%>
















增加学生信息










文章来源地址14696.html











返回





⑪上传作业操作(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(sq文章来源站点https://www.yii666.com/l);
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()) {
www.yii666.com 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

来源于:Javaweb学生信息管理系统(Mysql+JSP+MVC+CSS)


推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 阿里云虚拟主机安装多个织梦系统的方法
    本文介绍了在阿里云虚拟主机上安装多个织梦系统的方法。通过创建不同名称的文件夹并将不同的域名解析到对应的目录,可以实现多个系统的安装。在安装过程中需要注意修改数据库前缀,并在系统设置中还原数据库。同时还介绍了阿里云虚拟主机二级域名绑定二级目录和域名重定向的用法。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
author-avatar
小勺年
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有