JSP学籍信息管理系统
前言
这是我大二上学期那年学习JSP做的实训项目,现在把它贴在网上供自己和需要的人进行回顾和参考,如有哪里做的不规范还请指出,因为这是第一次做的项目所以不是特别完善,界面也不够美观,简单的实现了相关功能,该项目使用的软件是myeclipse2014,数据库为mysql,实现了学籍信息管理系统中相关的增删改查操作能够运行实现,以及验证码等功能,如有不够规范,还敬请谅解!
一、学籍信息管理项目实训要求
学籍信息管理模块
1、管理员表,学生表,学籍信息表(学校,专业,班级,学历,总学分,入学年月,毕业年月);
2、学生表:注册,登录,查询自己的信息,修改密码和个人信息,用户只能修改和查看自己的学籍信息。
3、管理员表:查看所有人信息,对所有人信息以及学籍信息进行增删改。
二、数据库设计
1.创建数据库
数据库代码如下(示例):
create database DB_StudentstatusInfo_xxd
use DB_StudentstatusInfo_xxd
--创建超级管理员(后缀名xxd为本人的缩写名)
create table T_SupAdmin_xxd(
supid_xxd bigint primary key identity(10,1),
supname_xxd varchar(200) not null,
suppwd_xxd varchar(200) not null)
--创建管理员表
create table T_Admin_xxd(
Aid_xxd bigint primary key identity(1000,1),
useName_xxd varchar(200) not null,
pwd_xxd varchar(200) not null
)
--创建学生表
create table T_Student_xxd(
Sid_xxd bigint primary key identity(10000,1),
Sname_xxd varchar(200) not null,
Spwd_xxd varchar(200) not null,
Sgender_xxd varchar(4) not null,
Sbrith_xxd date not null,
Stell_xxd varchar(300) not null,
Saddress_xxd varchar(300) not null,
Squestion_xxd varchar(300) not null,
Sanswer_xxd varchar(200) not null,
Snote_xxd text)
--创建学籍表
create table T_Studentstatus_xxd(
Xid_xxd bigint primary key identity(100,1),
Xid1_xxd bigint not null,
Xschool_xxd varchar(300) not null,
Xspecial_xxd varchar(300) not null,
Xclass_xxd varchar(300) not null,
Xeducation_xxd varchar(300) not null,
Xtotalcredit_xxd varchar(300) not null,
Xschoolyear_xxd date not null,
Xgraduation_xxd date )
insert into T_SupAdmin_xxd values('胡图图','1')
--建立主外键关系(学生表与学籍表)
alter table T_Studentstatus_xxd
add constraint FK_T_Studentstatus_xxd_T_Student_xxd_Xid1_xxd
foreign key(Xid1_xxd) references T_Student_xxd(Sid_xxd)
三.实现代码
附上github源码及数据库地址:https://github.com/xxd6772123/xxd6772123.github.io
1.创建学籍管理系统的web工程
工程创建类包如图所示:
添加配置




①首先开始写entity层:

分别创建好管理员类、学生类、学籍信息类、以及超级管理员类(超级管理员可有可无,我是在要求之上添加到,但你也可以根据自己的要求进行添加与否)
1.创建超级管理员类
package com.xxd.entity;
public class SupAdmin_xxd {
long supid_xxd;
String supname_xxd;
String suppwd_xxd;
public long getSupid_xxd() {
return supid_xxd;
}
public void setSupid_xxd(long supid_xxd) {
this.supid_xxd = supid_xxd;
}
public String getSupname_xxd() {
return supname_xxd;
}
public void setSupname_xxd(String supname_xxd) {
this.supname_xxd = supname_xxd;
}
public String getSuppwd_xxd() {
return suppwd_xxd;
}
public void setSuppwd_xxd(String suppwd_xxd) {
this.suppwd_xxd = suppwd_xxd;
}
public SupAdmin_xxd(long supid_xxd, String supname_xxd, String suppwd_xxd) {
this.supid_xxd = supid_xxd;
this.supname_xxd = supname_xxd;
this.suppwd_xxd = suppwd_xxd;
}
public SupAdmin_xxd(String supname_xxd, String suppwd_xxd) {
this.supname_xxd = supname_xxd;
this.suppwd_xxd = suppwd_xxd;
}
public SupAdmin_xxd() {
}
}
2.创建管理员类
package com.xxd.entity;
public class Admin_xxd {
long Aid_xxd;
String useName_xxd;
String pwd_xxd;
public long getAid_xxd() {
return Aid_xxd;
}
public void setAid_xxd(long aid_xxd) {
Aid_xxd = aid_xxd;
}
public String getUseName_xxd() {
return useName_xxd;
}
public void setUseName_xxd(String useName_xxd) {
this.useName_xxd = useName_xxd;
}
public String getPwd_xxd() {
return pwd_xxd;
}
public void setPwd_xxd(String pwd_xxd) {
this.pwd_xxd = pwd_xxd;
}
public Admin_xxd(long aid_xxd, String useName_xxd, String pwd_xxd) {
super();
Aid_xxd = aid_xxd;
this.useName_xxd = useName_xxd;
this.pwd_xxd = pwd_xxd;
}
public Admin_xxd(String useName_xxd, String pwd_xxd) {
super();
this.useName_xxd = useName_xxd;
this.pwd_xxd = pwd_xxd;
}
public Admin_xxd() {
super();
}
}
3.创建学生类
package com.xxd.entity;
public class Student_xxd {
long Sid_xxd;
String Sname_xxd;
String Spwd_xxd;
String Sgender_xxd;
String Sbrith_xxd;
String Stell_xxd;
String Saddress_xxd;
String Squestion_xxd;
String Sanswer_xxd;
String Snote_xxd;
public long getSid_xxd() {
return Sid_xxd;
}
public void setSid_xxd(long sid_xxd) {
Sid_xxd = sid_xxd;
}
public String getSname_xxd() {
return Sname_xxd;
}
public void setSname_xxd(String sname_xxd) {
Sname_xxd = sname_xxd;
}
public String getSpwd_xxd() {
return Spwd_xxd;
}
public void setSpwd_xxd(String spwd_xxd) {
Spwd_xxd = spwd_xxd;
}
public String getSgender_xxd() {
return Sgender_xxd;
}
public void setSgender_xxd(String sgender_xxd) {
Sgender_xxd = sgender_xxd;
}
public String getSbrith_xxd() {
return Sbrith_xxd;
}
public void setSbrith_xxd(String sbrith_xxd) {
Sbrith_xxd = sbrith_xxd;
}
public String getStell_xxd() {
return Stell_xxd;
}
public void setStell_xxd(String stell_xxd) {
Stell_xxd = stell_xxd;
}
public String getSaddress_xxd() {
return Saddress_xxd;
}
public void setSaddress_xxd(String saddress_xxd) {
Saddress_xxd = saddress_xxd;
}
public String getSquestion_xxd() {
return Squestion_xxd;
}
public void setSquestion_xxd(String squestion_xxd) {
Squestion_xxd = squestion_xxd;
}
public String getSanswer_xxd() {
return Sanswer_xxd;
}
public void setSanswer_xxd(String sanswer_xxd) {
Sanswer_xxd = sanswer_xxd;
}
public String getSnote_xxd() {
return Snote_xxd;
}
public void setSnote_xxd(String snote_xxd) {
Snote_xxd = snote_xxd;
}
public Student_xxd(long sid_xxd,String sname_xxd, String spwd_xxd,
String sgender_xxd, String sbrith_xxd, String stell_xxd,
String saddress_xxd, String squestion_xxd, String sanswer_xxd,
String snote_xxd) {
super();
Sid_xxd = sid_xxd;
Sname_xxd = sname_xxd;
Spwd_xxd = spwd_xxd;
Sgender_xxd = sgender_xxd;
Sbrith_xxd = sbrith_xxd;
Stell_xxd = stell_xxd;
Saddress_xxd = saddress_xxd;
Squestion_xxd = squestion_xxd;
Sanswer_xxd = sanswer_xxd;
Snote_xxd = snote_xxd;
}
public Student_xxd(String sname_xxd, String spwd_xxd,
String sgender_xxd, String sbrith_xxd, String stell_xxd,
String saddress_xxd, String squestion_xxd, String sanswer_xxd,
String snote_xxd) {
super();
Sname_xxd = sname_xxd;
Spwd_xxd = spwd_xxd;
Sgender_xxd = sgender_xxd;
Sbrith_xxd = sbrith_xxd;
Stell_xxd = stell_xxd;
Saddress_xxd = saddress_xxd;
Squestion_xxd = squestion_xxd;
Sanswer_xxd = sanswer_xxd;
Snote_xxd = snote_xxd;
}
public Student_xxd() {
super();
}
}
4.创建学籍信息类
package com.xxd.entity;
public class StudentStatus_xxd {
long Xid_xxd;
long Xid1_xxd;
String Xschool_xxd;
String Xspecial_xxd;
String Xclass_xxd;
String Xeducation_xxd;
String Xtotalcredit_xxd;
String Xschoolyear_xxd;
String Xgraduation_xxd;
public long getXid_xxd() {
return Xid_xxd;
}
public void setXid_xxd(long xid_xxd) {
Xid_xxd = xid_xxd;
}
public long getXid1_xxd() {
return Xid1_xxd;
}
public void setXid1_xxd(long xid1_xxd) {
Xid1_xxd = xid1_xxd;
}
public String getXschool_xxd() {
return Xschool_xxd;
}
public void setXschool_xxd(String xschool_xxd) {
Xschool_xxd = xschool_xxd;
}
public String getXspecial_xxd() {
return Xspecial_xxd;
}
public void setXspecial_xxd(String xspecial_xxd) {
Xspecial_xxd = xspecial_xxd;
}
public String getXclass_xxd() {
return Xclass_xxd;
}
public void setXclass_xxd(String xclass_xxd) {
Xclass_xxd = xclass_xxd;
}
public String getXeducation_xxd() {
return Xeducation_xxd;
}
public void setXeducation_xxd(String xeducation_xxd) {
Xeducation_xxd = xeducation_xxd;
}
public String getXtotalcredit_xxd() {
return Xtotalcredit_xxd;
}
public void setXtotalcredit_xxd(String xtotalcredit_xxd) {
Xtotalcredit_xxd = xtotalcredit_xxd;
}
public String getXschoolyear_xxd() {
return Xschoolyear_xxd;
}
public void setXschoolyear_xxd(String xschoolyear_xxd) {
Xschoolyear_xxd = xschoolyear_xxd;
}
public String getXgraduation_xxd() {
return Xgraduation_xxd;
}
public void setXgraduation_xxd(String xgraduation_xxd) {
Xgraduation_xxd = xgraduation_xxd;
}
public StudentStatus_xxd(long xid_xxd,long xid1_xxd,String xschool_xxd,
String xspecial_xxd, String xclass_xxd, String xeducation_xxd,
String xtotalcredit_xxd, String xschoolyear_xxd,
String xgraduation_xxd) {
super();
Xid_xxd = xid_xxd;
Xid1_xxd = xid_xxd;
Xschool_xxd = xschool_xxd;
Xspecial_xxd = xspecial_xxd;
Xclass_xxd = xclass_xxd;
Xeducation_xxd = xeducation_xxd;
Xtotalcredit_xxd = xtotalcredit_xxd;
Xschoolyear_xxd = xschoolyear_xxd;
Xgraduation_xxd = xgraduation_xxd;
}
public StudentStatus_xxd(long xid1_xxd, String xschool_xxd,
String xspecial_xxd, String xclass_xxd, String xeducation_xxd,
String xtotalcredit_xxd, String xschoolyear_xxd,
String xgraduation_xxd) {
super();
Xid1_xxd = xid1_xxd;
Xschool_xxd = xschool_xxd;
Xspecial_xxd = xspecial_xxd;
Xclass_xxd = xclass_xxd;
Xeducation_xxd = xeducation_xxd;
Xtotalcredit_xxd = xtotalcredit_xxd;
Xschoolyear_xxd = xschoolyear_xxd;
Xgraduation_xxd = xgraduation_xxd;
}
public StudentStatus_xxd() {
super();
}
}
②然后开始写dao层:

在Dao层分别创建四个Class对应每个类的方法接口
1.SupAdminDao层代码如下:
package com.xxd.Dao;
import java.util.List;
import com.xxd.entity.Admin_xxd;
public interface SupAdminDao_xxd {
//验证超级管理员的账号和密码(超级管理员只能在数据库中插入)
public int supUseNameandpwd(String supname_xxd, String suppwd_xxd);
//遍历所有管理员的信息
public List<Admin_xxd> queryAllAdminInfo();
}
2.AdminDao层代码如下:
package com.xxd.Dao;
import java.util.List;
import com.xxd.entity.Admin_xxd;
public interface AdminDao_xxd {
//注册管理员
public int insertAdmin_xxd(Admin_xxd a);
//检测用户名是否存在
public int checkuseNameIsExist(String useName_xxd);
//验证用户名和密码是否正确
public int UseNameandpwd(String useName_xxd, String pwd_xxd);
//表格遍历所有管理员信息
public List<Admin_xxd> queryAllAdminInfo();
//超级管理员修改管理员信息
public int updateAdminInfoBySup(Admin_xxd admin);
//删除管理员
public int delAdmin(long Aid_xxd);
//通过管理员id查询所有学生信息
List<Admin_xxd> queryStuByAid(long Aid_xxd);
}
3.StudentDao代码如下:
package com.xxd.Dao;
import java.util.List;
import com.xxd.entity.Student_xxd;
public interface StudentDao_xxd {
//添加学生信息
public int insertStudent_xxd(Student_xxd s);
//验证用户名和密码
public int queryStuBySnameAndSpwd(String Sname_xxd, String Spwd_xxd);
//用户名找回密码
public Student_xxd queryStuInfoByUserName(String Sname_xxd);
//学生通过问题答案修改密码
public int modifyPwdByUserNameAndQuestionAndAnswer(String Sname_xxd,String Squestion_xxd, String Sanswer_xxd);
//通过登录后修改密码
public int updatePwdBySname(String Sname_xxd, String Spwd_xxd);
//通过学生id添加学籍
public long checkstuId(String Sname_xxd);
//所有学生信息表的修改
public int updateStuInfoByStudent(Student_xxd student);
//通过学号查询姓名
String getSname(long Sid_xxd);
//遍历所有学生信息
public List<Student_xxd> queryAllStuInfo();
//删除学生
public int delstu(long Sid_xxd);
//表格查询通过学生姓名查询到该生所有信息
public List<Student_xxd> queryStuBySname(String Sname_xxd);
//表格查询通过学生姓名查询到该生所有信息
public List<Student_xxd> queryStuBySid(long Sid_xxd);
}
4.StudentstatusDao代码如下:
package com.xxd.Dao;
import com.xxd.entity.StudentStatus_xxd;
public interface StudentStatusDao_xxd {
//添加学籍信息
public int addStudentStatus(StudentStatus_xxd d);
//删除学籍
public int delsta(long Xid_xxd);
//通过学号查询学籍号
public long checkXid(long Xid1_xxd);
//通过学号查询到对的学籍信息
public StudentStatus_xxd queryStuStaInfoByXid(long Xid1_xxd);
//修改学籍信息
public int updateStuStaInfoByStudentSta(StudentStatus_xxd Studentstatus);
}
③其次是Util(工具)层的代码片段(类创建如图所示)

CEF.java代码如下所示:
package com.xxd.util;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
@WebFilter(filterName="a",urlPatterns="/*")
public class CEF_xxd implements Filter{
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
chain.doFilter(req, resp);
}
@Override
public void init(FilterConfig arg0) throws ServletException {
}
}
DBuilt.java代码如下所示:
注意:String url = “jdbc:sqlserver://127.0.0.1:1433;database=DB_StudentstatusInfo_xxd;user=sa;password=1234”;中的database、user、password都要根据个人设置情况进行修改!!!
package com.xxd.util;
import java.sql.Connection;
import java.sql.DriverManager;
import org.junit.Test;
public class DButil_xxd {
public static Connection conn = null;
public static Connection getConn(){
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://127.0.0.1:1433;database=DB_StudentstatusInfo_xxd;user=sa;password=1234";
conn = DriverManager.getConnection(url);
if(conn != null) {
// System.out.println("ok!!!!!!");
}else{
System.out.println("failed");
}
}catch(Exception e){
e.printStackTrace();
}
return conn;
}
public void closeConn(Connection conn){
if(conn != null){
try{
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
@Test
public void test(){
getConn();
}
}
④再是写Daoimplement层(Dao实现层)

1.首先是SupAdminDaoImpl.java的代码(超级管理员实现类)
package com.xxd.DaoImpl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.xxd.Dao.SupAdminDao_xxd;
import com.xxd.entity.Admin_xxd;
import com.xxd.entity.Student_xxd;
import com.xxd.util.DButil_xxd;
public class SupAdminDaompl_xxd implements SupAdminDao_xxd{
//验证超级管理员用户名和密码
public int supUseNameandpwd(String supname_xxd, String suppwd_xxd) {
int x = 0 ;
try{
Connection conn = DButil_xxd.getConn();
String checkSupUser_sql="select * from T_SupAdmin_xxd where supname_xxd=? and suppwd_xxd=?";
PreparedStatement ps = conn.prepareStatement(checkSupUser_sql);
ps.setString(1, supname_xxd);
ps.setString(2, suppwd_xxd);
ResultSet rs = ps.executeQuery();
if(rs.next()){
x=1;
}
}catch(Exception e){
e.printStackTrace();
}
return x;
}
//查询所有管理员信息
@Override
public List<Admin_xxd> queryAllAdminInfo() {
List<Admin_xxd> list = new ArrayList<Admin_xxd>();
try{
Connection conn = DButil_xxd.getConn();
String query_adm="select * from T_Admin_xxd";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query_adm);
while(rs.next()){
Admin_xxd a = new Admin_xxd(rs.getLong(1),rs.getString(2),rs.getString(3));
list.add(a);
}
}catch (Exception e){
e.printStackTrace();
}
return list;
}
}
2.其次是AdminDaoImpl.java代码(管理员实现类)
package com.xxd.DaoImpl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.xxd.Dao.AdminDao_xxd;
import com.xxd.entity.Admin_xxd;
import com.xxd.entity.Student_xxd;
import com.xxd.util.DButil_xxd;
public class AdminDaoImpl_xxd implements AdminDao_xxd{
//添加管理员
public int insertAdmin_xxd(Admin_xxd a) {
int x = 0;
try{
// System.out.println("insertAdmin");
Connection conn = DButil_xxd.getConn();
String insert_sql = "insert into T_Admin_xxd values(?,?)";
PreparedStatement ps = conn.prepareStatement(insert_sql);
ps.setString(1, a.getUseName_xxd());
ps.setString(2, a.getPwd_xxd());
x = ps.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}
return x;
}
//通过管理员的用户名进行查询操作
public List<Admin_xxd> queryStuByuseName(String useName_xxd) {
List<Admin_xxd> list = new ArrayList<Admin_xxd>();
try {
Connection conn = DButil_xxd.getConn();
String query_str = "select * from T_Admin_xxd where useName_xxd like '%'+?+'%'";
PreparedStatement ps = conn.prepareStatement(query_str);
ps.setString(1, useName_xxd);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Admin_xxd a = new Admin_xxd(rs.getLong(1), useName_xxd,rs.getString(3));
list.add(a);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
//通过管理员id查询管理员信息
@Override
public List<Admin_xxd> queryStuByAid(long Aid_xxd) {
List<Admin_xxd> list = new ArrayList<Admin_xxd>();
try {
Connection conn = DButil_xxd.getConn();
String query_str = "select * from T_Admin_xxd where Aid_xxd=?";
PreparedStatement ps = conn.prepareStatement(query_str);
ps.setLong(1, Aid_xxd);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Admin_xxd a = new Admin_xxd(Aid_xxd, rs.getString(2),rs.getString(3));
list.add(a);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
//进行修改管理员信息操作
public int updateAdminInfoBySup(Admin_xxd admin) {
int x = 0;
try {
Connection conn = DButil_xxd.getConn();
String updateAdmin_sql = "update T_Admin_xxd set useName_xxd=?,pwd_xxd=? where Aid_xxd=?";
Admin_xxd a = admin;
PreparedStatement ps = conn.prepareStatement(updateAdmin_sql);
ps.setString(1, a.getUseName_xxd());
ps.setString(2, a.getPwd_xxd());
ps.setLong(3, a.getAid_xxd());
x = ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
return x;
}
//查看用户名是否存在
@Override
public int checkuseNameIsExist(String useName_xxd) {
int x = 0 ;
try{
// System.out.println("checkusename");
Connection conn = DButil_xxd.

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



