基于java eclipse+jsp+mysql+servlet+Spring的学生信息管理系统基础版【建议收藏

最后

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。
在这里插入图片描述

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

个人中心:

个人中心随意做了一个alert弹窗

部分代码实现:


登录前端:

<%@ page language=“java” import=“java.util.*” pageEncoding=“UTF-8”%>

学生信息管理系统

登录


<input type=“text” name=“ope_name”

id=“ope_name”>


<input type=“password” name=“ope_pwd”

id=“ope_pwd”>

<input

style=“width:60px; float:right; margin-top:10px;margin-right:20px;”

type=“button” value=“登录” οnclick=“login()”>

登录后台servlet:

package impl;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.util.ArrayList;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpSession;

import util.DB;

import dao.ILogin;

import entity.Operator;

import entity.Privilege;

public class LoginImpl implements ILogin {

private PrivilegeImpl1 privilegeImpl = new PrivilegeImpl1();

private RoleImpl roleImpl = new RoleImpl();

private List list_privilege;

private PreparedStatement pst;

private Operator log_operator;

private HttpSession session;

private String checkResult;

private Connection conn;

private ResultSet rs;

// 登录验证

public String login(HttpServletRequest request, Operator operator) {

session = request.getSession();

checkResult = “success”;

log_operator = new Operator();

try {

conn = DB.getConn();

pst = conn

.prepareStatement(“SELECT * FROM operator WHERE ope_name = ?”);

pst.setString(1, operator.getName());

rs = pst.executeQuery();

if (!rs.next()) {

checkResult = “账户不存在,请重新输入!”;

session.setAttribute(“isLogin”, “false”);

} else {

if (!operator.getPwd().equals(rs.getString(3))) {

checkResult = “您输入的密码不正确,请重新输入!”;

session.setAttribute(“isLogin”, “false”);

} else {

// 登录成功

session.setAttribute(“isLogin”, “true”);

// 获得该用户的完整信息

log_operator.setId(rs.getInt(1));

log_operator.setName(rs.getString(2));

log_operator.setPwd(rs.getString(3));

log_operator.setRole(roleImpl.query(“rol_id”,

rs.getString(4)).get(0));

session.setAttribute(“log_operator”, log_operator);

// 根据用户,获取对应的角色对应的权限

list_privilege = privilegeImpl.query(“rol_id”, log_operator

.getRole().getId()

  • “”);

List list = new ArrayList();

list.add(list_privilege.get(0));

for (int i = 1; i < list_privilege.size(); i++) {

int y=0;

for(int x=0;x<list.size();x++){

if(!list.get(x).getMenu_name().equals(

list_privilege.get(i).getMenu_name())){

y++;

}

}

if (y==list.size()) {

list.add(list_privilege.get(i));

}

}

session.setAttribute(“list”, list);

session.setAttribute(“list_privilege”, list_privilege);

}

}

} catch (Exception e) {

e.printStackTrace();

} finally {

DB.close(conn, pst, rs);

}

return checkResult;

}

}

链接数据库:

利用最基本的jdbc进行链接

package util;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

public class DB {

// 获取数据库连接

public static Connection getConn() {

Connection conn = null;

String url = “jdbc:mysql://localhost:3306/jsp_studentmanager?characterEncoding=utf8”;

String name = “root”;

String pwd = “123456”;

try {

Class.forName(“com.mysql.jdbc.Driver”);

conn = DriverManager.getConnection(url, name, pwd);

} catch (Exception e) {

e.printStackTrace();

}

return conn;

}

// 关闭对象 释放资源

public static void close(Connection conn, PreparedStatement pst,

ResultSet rs) {

try {

if (rs != null)

rs.close();

if (pst != null)

pst.close();

if (conn != null)

conn.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

部分表结构:


学生表:

CREATE TABLE NewTable (

stu_id int(11) NOT NULL AUTO_INCREMENT ,

ope_id int(11) NULL DEFAULT NULL ,

stu_no varchar(22) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,

stu_name varchar(22) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,

stu_sex enum(‘男’,‘女’) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT ‘男’ ,

stu_birth date NULL DEFAULT NULL ,

stu_pic varchar(22) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,

cla_id int(11) NULL DEFAULT NULL ,

PRIMARY KEY (stu_id),

FOREIGN KEY (cla_id) REFERENCES classes (cla_id) ON DELETE CASCADE ON UPDATE CASCADE,

FOREIGN KEY (ope_id) REFERENCES operator (ope_id) ON DELETE CASCADE ON UPDATE CASCADE,

UNIQUE INDEX uni_no (stu_no) USING BTREE ,

UNIQUE INDEX uni_ope (ope_id) USING BTREE ,

INDEX fk_stu_cla (cla_id) USING BTREE ,

INDEX fk_stu_ope (ope_id) USING BTREE

)

ENGINE=InnoDB

DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci

AUTO_INCREMENT=13

ROW_FORMAT=COMPACT

;

CREATE DEFINER=root@localhost TRIGGER TG_3 AFTER DELETE ON NewTable

FOR EACH ROW BEGIN

DELETE FROM operator WHERE ope_id = old.ope_id;

END;

成绩表:

CREATE TABLE NewTable (

sco_id int(11) NOT NULL AUTO_INCREMENT ,

sco_daily float NULL DEFAULT 0 ,

sco_exam float NULL DEFAULT 0 ,

sco_count float NULL DEFAULT 0 ,

stu_id int(11) NULL DEFAULT NULL ,

sub_id int(11) NULL DEFAULT NULL ,

cla2sub_id int(11) NOT NULL ,

cla_id int(11) NOT NULL ,

PRIMARY KEY (sco_id),

FOREIGN KEY (stu_id) REFERENCES student (stu_id) ON DELETE CASCADE ON UPDATE CASCADE,

FOREIGN KEY (sub_id) REFERENCES subject (sub_id) ON DELETE CASCADE ON UPDATE CASCADE,

FOREIGN KEY (cla2sub_id) REFERENCES cla2sub (cla2sub_id) ON DELETE CASCADE ON UPDATE CASCADE,

FOREIGN KEY (cla_id) REFERENCES classes (cla_id) ON DELETE CASCADE ON UPDATE CASCADE,

UNIQUE INDEX uni_stu_sub (stu_id, sub_id, cla2sub_id) USING BTREE ,

INDEX fk_sco_sub (sub_id) USING BTREE ,

INDEX fk_sco_stu (stu_id) USING BTREE ,

INDEX fk_sco_cla (cla2sub_id) USING BTREE ,

INDEX cla_id (cla_id) USING BTREE

)

ENGINE=InnoDB

面试结束复盘查漏补缺

每次面试都是检验自己知识与技术实力的一次机会,面试结束后建议大家及时总结复盘,查漏补缺,然后有针对性地进行学习,既能提高下一场面试的成功概率,还能增加自己的技术知识栈储备,可谓是一举两得。

以下最新总结的阿里P6资深Java必考题范围和答案,包含最全MySQL、Redis、Java并发编程等等面试题和答案,用于参考~

重要的事说三遍,关注+关注+关注!

历经30天,说说我的支付宝4面+美团4面+拼多多四面,侥幸全获Offer

image.png

更多笔记分享

历经30天,说说我的支付宝4面+美团4面+拼多多四面,侥幸全获Offer

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

复盘,查漏补缺,然后有针对性地进行学习,既能提高下一场面试的成功概率,还能增加自己的技术知识栈储备,可谓是一举两得。

以下最新总结的阿里P6资深Java必考题范围和答案,包含最全MySQL、Redis、Java并发编程等等面试题和答案,用于参考~

重要的事说三遍,关注+关注+关注!

[外链图片转存中…(img-YV8L8rjj-1715513319461)]

[外链图片转存中…(img-XngjZQT8-1715513319461)]

更多笔记分享

[外链图片转存中…(img-bFSTOHf4-1715513319462)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值