IDEA+Java+Jsp+Mysql实现Web毕业设计选题系统

18.学生-主页面

19.学生-个人中心-修改资料

20.学生-个人中心-我的选题

21.学生-开始选题-选题列表

22.学生-开始选题-选题明细

三、部分代码

StudentManager

TeacherManager

TopicManager

DB

Login.jsp

index.jsp

news.jsp

四、其他

1.更多系统

Java+JSP系统系列实现

Java+Servlet系统系列实现

Java+SSM系统系列实现

Java+SSH系统系列实现

Java+Springboot系统系列实现

2.源码下载

3.运行项目

4.备注

5.支持博主


一、系统介绍

======

1.开发环境


开发工具:IDEA2018

JDK版本:Jdk1.8

Mysql版本:8.0.13

2.技术选型


Java+Jsp+Mysql

3.系统功能


1.管理员登录系统,管理学生信息,管理教师信息,管理课题信息,系统维护功能;

2.教师登录系统,修改个人信息,添加课题,查看课题;

3.学生登录系统,修改个人信息,查看选题,选择课题;

4.数据库文件


/*

Navicat Premium Data Transfer

Source Server : MYSQL

Source Server Type : MySQL

Source Server Version : 80013

Source Host : localhost:3306

Source Schema : jsp_select_topic

Target Server Type : MySQL

Target Server Version : 80013

File Encoding : 65001

Date: 12/04/2022 09:04:43

*/

SET NAMES utf8mb4;

SET FOREIGN_KEY_CHECKS = 0;


– Table structure for msg


DROP TABLE IF EXISTS msg;

CREATE TABLE msg (

title varchar(100) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NOT NULL,

text varchar(1000) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL DEFAULT NULL,

PRIMARY KEY (title) USING BTREE

) ENGINE = InnoDB CHARACTER SET = gb2312 COLLATE = gb2312_chinese_ci ROW_FORMAT = Dynamic;


– Records of msg


INSERT INTO msg VALUES (‘毕业设计选题系统初步完成’, ‘整个系统流程大致为:老师发布课题,管理员审核\r\n\r\n课题,学生选题,学生完成设计’);

INSERT INTO msg VALUES (‘学生相关功能’, ‘请各位学生登录系统,给自己选择一个课题!’);


– Table structure for student_info


DROP TABLE IF EXISTS student_info;

CREATE TABLE student_info (

sno varchar(10) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

sname varchar(10) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

ssex varchar(2) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

sclass varchar(10) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

stel varchar(11) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

semail varchar(50) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL,

sgroup varchar(1) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

spassword varchar(10) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL COMMENT ‘6-10位字符’,

PRIMARY KEY (sno) USING BTREE

) ENGINE = InnoDB CHARACTER SET = gbk COLLATE = gbk_chinese_ci ROW_FORMAT = Dynamic;


– Records of student_info


INSERT INTO student_info VALUES (‘1001’, ‘张三’, ‘男’, ‘4’, ‘15523457667’, ‘336688@qq.com’, ‘2’, ‘123456’);

INSERT INTO student_info VALUES (‘1002’, ‘李四’, ‘男’, ‘2’, ‘14456789876’, ‘6699334@qq.com’, ‘2’, ‘123456’);

INSERT INTO student_info VALUES (‘1003’, ‘王五’, ‘男’, ‘3’, ‘14456789876’, ‘6699334@qq.com’, ‘3’, ‘123456’);

INSERT INTO student_info VALUES (‘1004’, ‘赵六’, ‘男’, ‘3’, ‘14456789876’, ‘6699334@qq.com’, ‘3’, ‘admin’);


– Table structure for teacher_info


DROP TABLE IF EXISTS teacher_info;

CREATE TABLE teacher_info (

tno varchar(10) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

tname varchar(10) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

tsex varchar(2) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL,

tdept varchar(20) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

tdegree varchar(8) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL,

ttitle varchar(4) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL,

tright bit(1) NOT NULL,

ttel varchar(11) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

temail varchar(50) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL,

tgroup varchar(1) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

tpassword varchar(10) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

PRIMARY KEY (tno) USING BTREE

) ENGINE = InnoDB CHARACTER SET = gbk COLLATE = gbk_chinese_ci ROW_FORMAT = Dynamic;


– Records of teacher_info


INSERT INTO teacher_info VALUES (‘101’, ‘admin’, ‘男’, ‘计算机科学与技术系’, ‘硕士’, ‘教授’, b’0’, ‘15315614829’, ‘12345678@qq.com’, ‘4’, ‘admin’);

INSERT INTO teacher_info VALUES (‘102’, ‘王老师’, ‘男’, ‘计算机科学与技术系’, ‘硕士’, ‘教授’, b’1’, ‘15315614829’, ‘1234567844@qq.com’, ‘4’, ‘123456’);

INSERT INTO teacher_info VALUES (‘103’, ‘李老师’, ‘男’, ‘计算机科学与技术系’, ‘硕士’, ‘助教’, b’1’, ‘13456789876’, ‘1234567844@qq.com’, ‘4’, ‘admin’);


– Table structure for topic_info


DROP TABLE IF EXISTS topic_info;

CREATE TABLE topic_info (

hno varchar(5) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

hname varchar(50) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

htype varchar(10) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

hkind varchar(10) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

hsource varchar(10) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

hstatus varchar(5) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

hcontent varchar(200) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

hresult varchar(50) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

direction varchar(200) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL,

tno varchar(10) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL,

sno varchar(10) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL,

PRIMARY KEY (hno) USING BTREE,

INDEX FK_topicinfo(sno) USING BTREE,

INDEX FK_topicinfo1(tno) USING BTREE,

CONSTRAINT FK_topicinfo FOREIGN KEY (sno) REFERENCES student_info (sno) ON DELETE RESTRICT ON UPDATE RESTRICT,

CONSTRAINT FK_topicinfo1 FOREIGN KEY (tno) REFERENCES teacher_info (tno) ON DELETE RESTRICT ON UPDATE RESTRICT

) ENGINE = InnoDB CHARACTER SET = gbk COLLATE = gbk_chinese_ci ROW_FORMAT = Dynamic;


– Records of topic_info


INSERT INTO topic_info VALUES (‘10001’, ‘计算机技术体系研究’, ‘毕业设计’, ‘理论研究’, ‘结合科研’, ‘true’, ‘计算机技术体系研究’, ‘SCI发表相应论文’, ‘无’, ‘102’, ‘1001’);

INSERT INTO topic_info VALUES (‘10002’, ‘软件工程体系研究’, ‘毕业设计’, ‘软件研究’, ‘结合科研’, ‘true’, ‘软件工程体系研究’, ‘SCI发表论文’, ‘无’, ‘102’, ‘1002’);

SET FOREIGN_KEY_CHECKS = 1;

5.工程截图


二、系统展示

======

1.登录系统


2.管理员-主页面


3.管理员-学生管理-查看所有


4.管理员-学生管理-添加学生


5.管理员-教师管理-查看所有


6.管理员-教师管理-添加教师


7.管理员-课程管理-课程查询


8.管理员-课程管理-课程审核


9.管理员-系统维护-添加公告


10.管理员-系统维护-查看公告


11.管理员-系统维护-教师功能开关


12.管理员-系统维护-学生功能开关


13.教师-主页面


14.教师-个人中心-修改资料


15.教师-课题管理-所有课题


16.教师-课题管理-我的课题


17.教师-课题管理-添加课题


18.学生-主页面


19.学生-个人中心-修改资料


20.学生-个人中心-我的选题


21.学生-开始选题-选题列表


22.学生-开始选题-选题明细


三、部分代码

======

StudentManager


学生信息管理类,实现学生信息的增加,查看,删除。

package com.sjsq.service;

import com.sjsq.model.Student;

import com.sjsq.util.DB;

import jxl.Cell;

import jxl.Sheet;

import jxl.Workbook;

import jxl.read.biff.BiffException;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.sql.*;

import java.util.ArrayList;

import java.util.List;

public class StudentManager {

/**

  • 添加新的单个Student信息到数据库中

  • @param stu 存有学生信息的Student对象

  • @return 保存成功返回true否则返回false

*/

public static boolean save(Student stu) {

Connection conn = DB.getConn();

String sql = null;

boolean b = false;

sql = “insert into student_info values (?, ?, ?, ?, ?, ?, ?, ?)”;

PreparedStatement pstmt = DB.prepare(conn, sql);//预编译插入语句

try {

/*

  • 将stu中保存的信息分别放到数据库中对应表的对应列上

*/

pstmt.setString(1, stu.getNumber());

pstmt.setString(2, stu.getName());

pstmt.setString(3, stu.getSex());

pstmt.setString(4, stu.getSclass());

pstmt.setString(5, stu.getPhone());

pstmt.setString(6, stu.getEmail());

pstmt.setString(7, stu.getGroup());

pstmt.setString(8, stu.getPassword());

pstmt.execute();

b = true;

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(pstmt);

DB.close(conn);

}

return b;

}

/**

  • 获取所以学生信息

  • @param students 存放所以学生信息

  • @param pageNo 分页时的,当前页号

  • @param pageSize 每页显示学生的个数

  • @return 返回一共有多少页

*/

public static int getStudents(List students, int pageNo,

int pageSize) {

int totalRecords = -1;

Connection conn = DB.getConn();

String sql = null;

sql = "select * from student_info limit " + (pageNo - 1) * pageSize

  • “,” + pageSize;

Statement stmt = DB.getStatement(conn);

ResultSet rs = DB.getResultSet(stmt, sql);

Statement stmtCount = DB.getStatement(conn);

ResultSet rsCount = null;

rsCount = DB.getResultSet(stmtCount,

“select count(*) from student_info”);

try {

rsCount.next();

totalRecords = rsCount.getInt(1);//得到结果集中一共有多少条记录

while (rs.next()) {

Student student = new Student();

student.setEmail(rs.getString(“semail”));

student.setGroup(rs.getString(“sgroup”));

student.setName(rs.getString(“sname”));

student.setNumber(rs.getString(“sno”));

student.setPassword(rs.getString(“spassword”));

student.setPhone(rs.getString(“stel”));

student.setSclass(rs.getString(“sclass”));

student.setSex(rs.getString(“ssex”));

students.add(student);

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(rsCount);

DB.close(stmtCount);

DB.close(rs);

DB.close(stmt);

DB.close(conn);

}

return totalRecords;

}

/**

  • 按学号删除学生

  • @param id 要删除学生的学号

  • @return 删除成功返回true否则返回false

*/

public static boolean deleteBySno(String id) {

boolean b = false;

Connection conn = DB.getConn();

String sql = null;

sql = “delete from student_info where sno = '” + id + “'”;

Statement stmt = DB.getStatement(conn);

try {

DB.executeUpdate(stmt, sql);

b = true;

} catch (Exception e) {

e.printStackTrace();

} finally {

DB.close(stmt);

DB.close(conn);

}

return b;

}

/**

  • 检查登录时学号和密码是否真确

  • @param num 学号

  • @param password 密码

  • @return 正确返回true否则返回false

  • @throws UserNotFoundException 抛出学号不存在的异常

  • @throws PasswordNotCorrectException 抛出密码错误的异常

*/

public static Student check(String num, String password)

throws UserNotFoundException, PasswordNotCorrectException {

Student student = null;

Connection conn = DB.getConn();

String sql = null;

sql = “select * from student_info where sno = '” + num + “'”;

Statement stmt = DB.getStatement(conn);

ResultSet rs = DB.getResultSet(stmt, sql);

try {

if (!rs.next()) {

throw new UserNotFoundException(“用户不存在:” + num);

} else {

if (!password.equals(rs.getString(“spassword”))) {

throw new PasswordNotCorrectException(“密码不正确!”);

}

}

student = new Student();

student.setEmail(rs.getString(“semail”));

student.setGroup(rs.getString(“sgroup”));

student.setName(rs.getString(“sname”));

student.setNumber(rs.getString(“sno”));

student.setPassword(rs.getString(“spassword”));

student.setPhone(rs.getString(“stel”));

student.setSclass(rs.getString(“sclass”));

student.setSex(rs.getString(“ssex”));

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(rs);

DB.close(stmt);

DB.close(conn);

}

return student;

}

/**

  • 按学号获得学生信息

  • @param num 学号

  • @return 返回该学号的学生对象

*/

public static Student getBySno(String num) {

Connection conn = DB.getConn();

String sql = null;

sql = “select * from student_info where sno='” + num + “'”;

Statement stmt = DB.getStatement(conn);

ResultSet rs = DB.getResultSet(stmt, sql);

Student student = null;

try {

if (rs.next()) {

student = new Student();

student.setEmail(rs.getString(“semail”));

student.setGroup(rs.getString(“sgroup”));

student.setName(rs.getString(“sname”));

student.setNumber(rs.getString(“sno”));

student.setPassword(rs.getString(“spassword”));

student.setPhone(rs.getString(“stel”));

student.setSclass(rs.getString(“sclass”));

student.setSex(rs.getString(“ssex”));

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(rs);

DB.close(conn);

}

return student;

}

/**

  • 更新学生stu的相关信息(学号不能更新)

  • @param stu 存有新信息的学生对象

  • @return 更新成功返回true否则返回false

*/

public static boolean update(Student stu) {

Connection conn = DB.getConn();

String sql = null;

boolean b = false;

sql = “update student_info set spassword=?, sgroup=?, sname=?, ssex=?, stel=?, semail=?, sclass=? where sno = ?”;

PreparedStatement pstmt = DB.prepare(conn, sql);

try {

pstmt.setString(1, stu.getPassword());

pstmt.setString(2, stu.getGroup());

pstmt.setString(3, stu.getName());

pstmt.setString(4, stu.getSex());

pstmt.setString(5, stu.getPhone());

pstmt.setString(6, stu.getEmail());

pstmt.setString(7, stu.getSclass());

pstmt.setString(8, stu.getNumber());

pstmt.executeUpdate();

b = true;

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(pstmt);

DB.close(conn);

}

return b;

}

/**

  • 按指定的条件获得所有符合条件的学生信息

  • @param students 存放符合条件的学生信息的List

  • @param pageNo 分页显示时,当前的页号

  • @param pageSize 每页显示学生信息的数量

  • @param sclass 学生所在的班级

  • @param num 学号

  • @param name 学生姓名

  • @return 返回符合条件的学生列表

*/

public static int query(List students, int pageNo, int pageSize,

String sclass, String num, String name) {

int totalRecords = -1;

Connection conn = DB.getConn();

String sql = null;

/*

  • 如何有些条件为空的进行如下处理,否则模糊查询时可能会报空指针异常

*/

if (sclass == null)

sclass = “”;

if (name == null)

name = “”;

if (num == null)

num = “”;

/*

  • 模糊查寻

*/

sql = “select * from student_info where sclass like '%” + sclass

  • “%’ and sname like '%” + name + “%’ and sno like '%” + num

  • “%'”;

sql += "limit " + (pageNo - 1) * pageSize + “,” + pageSize;

Statement stmt = DB.getStatement(conn);

ResultSet rs = DB.getResultSet(stmt, sql);

Statement stmtCount = DB.getStatement(conn);

ResultSet rsCount = null;

rsCount = DB.getResultSet(stmtCount,

“select count(*) from student_info where sclass like '%”

  • sclass + “%’ and sname like '%” + name

  • “%’ and sno like '%” + num + “%'”);

try {

rsCount.next();

totalRecords = rsCount.getInt(1);

while (rs.next()) {

Student student = new Student();

student.setEmail(rs.getString(“semail”));

student.setGroup(rs.getString(“sgroup”));

student.setName(rs.getString(“sname”));

student.setNumber(rs.getString(“sno”));

student.setPassword(rs.getString(“spassword”));

student.setPhone(rs.getString(“stel”));

student.setSclass(rs.getString(“sclass”));

student.setSex(rs.getString(“ssex”));

students.add(student);

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(rsCount);

DB.close(stmtCount);

DB.close(rs);

DB.close(stmt);

DB.close(conn);

}

return totalRecords;

}

/**

  • 批量导入excel表中学生的信息到数据库中(用到组件jxl.jar)

  • @param file excel表所在的相对路径或绝对路径(包括文件完整的名字)

  • @return 返回那些学号在数据库中已经存在的学号

*/

public static List adds(String file) {

Connection conn = DB.getConn();

List snumber = new ArrayList();

Workbook info;//定义工作簿

String sql = “insert into student_info values (?, ?, ?, ?, ?, ?, ?, ?)”;

try {

info = Workbook.getWorkbook(new FileInputStream(file));

Sheet sheet = info.getSheet(0);//获得工作薄中表单对象

int size = sheet.getRows(); //获得表单的行数

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

Cell c = sheet.getCell(0,i);//获得表单的i行0列的单元格即学号

/*

  • 查看学号是否已经存在

*/

if(StudentManager.getBySno(c.getContents().trim())!=null) {

snumber.add(c.getContents().trim());

continue;

}

PreparedStatement pstmt = DB.prepare(conn, sql);

for(int j=0; j<8; j++) {

c = sheet.getCell(j,i);

pstmt.setString(j+1, c.getContents().trim());

}

pstmt.execute();

}

} catch (BiffException e) {

e.printStackTrace();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IndexOutOfBoundsException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return snumber;

}

}

TeacherManager


教师信息管理类,实现教师信息的增加,查看,删除。

package com.sjsq.service;

import com.sjsq.model.Teacher;

import com.sjsq.util.DB;

import jxl.Cell;

import jxl.Sheet;

import jxl.Workbook;

import jxl.read.biff.BiffException;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.sql.*;

import java.util.ArrayList;

import java.util.List;

public class TeacherManager {

public static boolean save(Teacher te) {

Connection conn = DB.getConn();

String sql = null;

boolean b = false;

sql = “insert into teacher_info values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)”;

PreparedStatement pstmt = DB.prepare(conn, sql);

try {

pstmt.setString(1, te.getNumber());

pstmt.setString(2, te.getName());

pstmt.setString(3, te.getSex());

pstmt.setString(4, te.getDept());

pstmt.setString(5, te.getDegree());

pstmt.setString(6, te.getTitle());

pstmt.setShort(7, te.getRight());

pstmt.setString(8, te.getPhone());

pstmt.setString(9, te.getEmail());

pstmt.setString(10, te.getGroup());

pstmt.setString(11, te.getPassword());

pstmt.execute();

b = true;

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(pstmt);

DB.close(conn);

}

return b;

}

public static int getTeachers(List teachers, int pageNo,

int pageSize) {

int totalRecords = -1;

Connection conn = DB.getConn();

String sql = null;

sql = "select * from teacher_info limit " + (pageNo - 1) * pageSize

  • “,” + pageSize;

Statement stmt = DB.getStatement(conn);

ResultSet rs = DB.getResultSet(stmt, sql);

Statement stmtCount = DB.getStatement(conn);

ResultSet rsCount = null;

rsCount = DB.getResultSet(stmtCount,

“select count(*) from teacher_info”);

try {

rsCount.next();

totalRecords = rsCount.getInt(1);

while (rs.next()) {

Teacher teacher = new Teacher();

teacher.setEmail(rs.getString(“temail”));

teacher.setGroup(rs.getString(“tgroup”));

teacher.setName(rs.getString(“tname”));

teacher.setNumber(rs.getString(“tno”));

teacher.setPassword(rs.getString(“tpassword”));

teacher.setPhone(rs.getString(“ttel”));

teacher.setDept(rs.getString(“tdept”));

teacher.setSex(rs.getString(“tsex”));

teacher.setDegree(rs.getString(“tdegree”));

teacher.setRight(rs.getShort(“tright”));

teacher.setTitle(rs.getString(“ttitle”));

teachers.add(teacher);

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(rsCount);

DB.close(stmtCount);

DB.close(rs);

DB.close(stmt);

DB.close(conn);

}

return totalRecords;

}

public static boolean deleteByTno(String id) {

boolean b = false;

Connection conn = DB.getConn();

String sql = null;

sql = “delete from teacher_info where tno = '” + id + “'”;

Statement stmt = DB.getStatement(conn);

try {

DB.executeUpdate(stmt, sql);

b = true;

} catch (Exception e) {

e.printStackTrace();

} finally {

DB.close(stmt);

DB.close(conn);

}

return b;

}

public static Teacher check(String num, String password)

throws UserNotFoundException, PasswordNotCorrectException {

Teacher teacher = null;

Connection conn = DB.getConn();

String sql = null;

sql = “select * from teacher_info where tno = '” + num + “'”;

Statement stmt = DB.getStatement(conn);

ResultSet rs = DB.getResultSet(stmt, sql);

try {

if (!rs.next()) {

throw new UserNotFoundException(“用户不存在:” + num);

} else {

if (!password.equals(rs.getString(“tpassword”))) {

throw new PasswordNotCorrectException(“密码不正确!”);

}

}

teacher = new Teacher();

teacher.setEmail(rs.getString(“temail”));

teacher.setGroup(rs.getString(“tgroup”));

teacher.setName(rs.getString(“tname”));

teacher.setNumber(rs.getString(“tno”));

teacher.setPassword(rs.getString(“tpassword”));

teacher.setPhone(rs.getString(“ttel”));

teacher.setDept(rs.getString(“tdept”));

teacher.setSex(rs.getString(“tsex”));

teacher.setDegree(rs.getString(“tdegree”));

teacher.setRight(rs.getShort(“tright”));

teacher.setTitle(rs.getString(“ttitle”));

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(rs);

DB.close(stmt);

DB.close(conn);

}

return teacher;

}

public static Teacher getByTno(String num) {

Connection conn = DB.getConn();

String sql = null;

sql = “select * from teacher_info where tno='” + num + “'”;

Statement stmt = DB.getStatement(conn);

ResultSet rs = DB.getResultSet(stmt, sql);

Teacher teacher = null;

try {

if (rs.next()) {

teacher = new Teacher();

teacher.setEmail(rs.getString(“temail”));

teacher.setGroup(rs.getString(“tgroup”));

teacher.setName(rs.getString(“tname”));

teacher.setNumber(rs.getString(“tno”));

teacher.setPassword(rs.getString(“tpassword”));

teacher.setPhone(rs.getString(“ttel”));

teacher.setDept(rs.getString(“tdept”));

teacher.setSex(rs.getString(“tsex”));

teacher.setDegree(rs.getString(“tdegree”));

teacher.setRight(rs.getShort(“tright”));

teacher.setTitle(rs.getString(“ttitle”));

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(rs);

DB.close(conn);

}

return teacher;

}

public static boolean update(Teacher te) {

Connection conn = DB.getConn();

String sql = null;

boolean b = false;

sql = “update teacher_info set tpassword=?, tgroup=?, tname=?, tsex=?, ttel=?, temail=?, tdept=?, ttitle=?, tright=?, tdegree=? where tno = ?”;

PreparedStatement pstmt = DB.prepare(conn, sql);

try {

pstmt.setString(1, te.getPassword());

pstmt.setString(2, te.getGroup());

pstmt.setString(3, te.getName());

pstmt.setString(4, te.getSex());

pstmt.setString(5, te.getPhone());

pstmt.setString(6, te.getEmail());

pstmt.setString(7, te.getDept());

pstmt.setString(8, te.getTitle());

pstmt.setShort(9, te.getRight());

pstmt.setString(10, te.getDegree());

pstmt.setString(11, te.getNumber());

pstmt.executeUpdate();

b = true;

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(pstmt);

DB.close(conn);

}

return b;

}

public static int query(List teachers, int pageNo, int pageSize,

String dept, String num, String name) {

int totalRecords = -1;

Connection conn = DB.getConn();

String sql = null;

if (dept == null)

dept = “”;

if (name == null)

name = “”;

if (num == null)

num = “”;

sql = “select * from teacher_info where tdept like '%” + dept

  • “%’ and tname like '%” + name + “%’ and tno like '%” + num

  • “%'”;

sql += "limit " + (pageNo - 1) * pageSize + “,” + pageSize;

Statement stmt = DB.getStatement(conn);

ResultSet rs = DB.getResultSet(stmt, sql);

Statement stmtCount = DB.getStatement(conn);

ResultSet rsCount = null;

rsCount = DB.getResultSet(stmtCount,

“select count(*) from teacher_info where tdept like '%” + dept

  • “%’ and tname like '%” + name + “%’ and tno like '%”

  • num + “%'”);

try {

rsCount.next();

totalRecords = rsCount.getInt(1);

while (rs.next()) {

Teacher teacher = new Teacher();

teacher.setEmail(rs.getString(“temail”));

teacher.setGroup(rs.getString(“tgroup”));

teacher.setName(rs.getString(“tname”));

teacher.setNumber(rs.getString(“tno”));

teacher.setPassword(rs.getString(“tpassword”));

teacher.setPhone(rs.getString(“ttel”));

teacher.setDept(rs.getString(“tdept”));

teacher.setSex(rs.getString(“tsex”));

teacher.setDegree(rs.getString(“tdegree”));

teacher.setRight(rs.getShort(“tright”));

teacher.setTitle(rs.getString(“ttitle”));

teachers.add(teacher);

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(rsCount);

DB.close(stmtCount);

DB.close(rs);

DB.close(stmt);

DB.close(conn);

}

return totalRecords;

}

public static List adds(String file) {

Connection conn = DB.getConn();

Workbook info;

List tnumber = new ArrayList();

String sql = “insert into teacher_info values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)”;

try {

info = Workbook.getWorkbook(new FileInputStream(file));

Sheet sheet = info.getSheet(0);

int size = sheet.getRows();

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

Cell c = sheet.getCell(0, i);

if (TeacherManager.getByTno(c.getContents().trim()) != null) {

tnumber.add(c.getContents().trim());

continue;

}

PreparedStatement pstmt = DB.prepare(conn, sql);

for (int j = 0; j < 11; j++) {

c = sheet.getCell(j, i);

if (j != 6) {

pstmt.setString(j + 1, c.getContents().trim());

} else

pstmt.setShort(j + 1, Short.parseShort(c.getContents()));

}

pstmt.execute();

}

} catch (BiffException e) {

e.printStackTrace();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IndexOutOfBoundsException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return tnumber;

}

}

TopicManager


选题信息管理,实现选题新的增加,修改,查看,删除。

package com.sjsq.service;

import com.sjsq.model.Topic;

import com.sjsq.util.DB;

import java.sql.*;

import java.util.ArrayList;

import java.util.List;

public class TopicManager {

public static boolean save(Topic t) {

Connection conn = DB.getConn();

String sql = null;

boolean b = false;

sql = “insert into topic_info values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)”;

PreparedStatement pstmt = DB.prepare(conn, sql);

try {

pstmt.setString(1, t.getNumber());

pstmt.setString(2, t.getName());

pstmt.setString(3, t.getType());

pstmt.setString(4, t.getKind());

pstmt.setString(5, t.getSource());

pstmt.setString(6, t.getStatus());

pstmt.setString(7, t.getContent());

pstmt.setString(8, t.getResult());

pstmt.setString(9, t.getDirection());

pstmt.setString(10, t.getTnumber());

pstmt.setString(11, t.getSnumber());

pstmt.execute();

b = true;

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(pstmt);

DB.close(conn);

}

return b;

}

public static int getTopics(List topics, int pageNo,

int pageSize) {

int totalRecords = -1;

Connection conn = DB.getConn();

String sql = null;

sql = "select * from topic_info limit " + (pageNo - 1) * pageSize

  • “,” + pageSize;

Statement stmt = DB.getStatement(conn);

ResultSet rs = DB.getResultSet(stmt, sql);

Statement stmtCount = DB.getStatement(conn);

ResultSet rsCount = null;

rsCount = DB

.getResultSet(stmtCount, “select count(*) from topic_info”);

try {

rsCount.next();

totalRecords = rsCount.getInt(1);

while (rs.next()) {

Topic topic = new Topic();

topic.setContent(rs.getString(“hcontent”));

topic.setDirection(rs.getString(“direction”));

topic.setKind(rs.getString(“hkind”));

topic.setName(rs.getString(“hname”));

topic.setNumber(rs.getString(“hno”));

topic.setResult(rs.getString(“hresult”));

topic.setSnumber(rs.getString(“sno”));

topic.setSource(rs.getString(“hsource”));

topic.setStatus(rs.getString(“hstatus”));

topic.setType(rs.getString(“htype”));

topic.setTnumber(rs.getString(“tno”));

topics.add(topic);

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(rsCount);

DB.close(stmtCount);

DB.close(rs);

DB.close(stmt);

DB.close(conn);

}

return totalRecords;

}

public static boolean deleteByHno(String hno) {

boolean b = false;

Connection conn = DB.getConn();

String sql = null;

sql = “delete from topic_info where hno = '” + hno + “'”;

Statement stmt = DB.getStatement(conn);

try {

DB.executeUpdate(stmt, sql);

b = true;

} catch (Exception e) {

e.printStackTrace();

} finally {

DB.close(stmt);

DB.close(conn);

}

return b;

}

public static boolean check(String tno, String hname) {

boolean b = false;

Connection conn = DB.getConn();

String sql = null;

sql = “select * from topic_info where tno = '” + tno + “'”;

Statement stmt = DB.getStatement(conn);

ResultSet rs = DB.getResultSet(stmt, sql);

try {

if (rs.next()) b = true;

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(rs);

DB.close(stmt);

DB.close(conn);

}

return b;

}

public static boolean update(Topic t) {

Connection conn = DB.getConn();

String sql = null;

boolean b = false;

sql = “update topic_info set htype=?, tno=?, hname=?, hsource=?, hkind=?, hstatus=?, hresult=?, sno=?, direction=?, hcontent=? where hno = ?”;

PreparedStatement pstmt = DB.prepare(conn, sql);

try {

pstmt.setString(1, t.getType());

pstmt.setString(2, t.getTnumber());

pstmt.setString(3, t.getName());

pstmt.setString(4, t.getSource());

pstmt.setString(5, t.getKind());

pstmt.setString(6, t.getStatus());

pstmt.setString(7, t.getResult());

pstmt.setString(8, t.getSnumber());

pstmt.setString(9, t.getDirection());

pstmt.setString(10, t.getContent());

pstmt.setString(11, t.getNumber());

pstmt.executeUpdate();

b = true;

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(pstmt);

DB.close(conn);

}

return b;

}

public static Topic getByNum(String num) {

Connection conn = DB.getConn();

String sql = null;

sql = “select * from topic_info where hno='” + num + “'”;

Statement stmt = DB.getStatement(conn);

ResultSet rs = DB.getResultSet(stmt, sql);

Topic topic = null;

try {

if (rs.next()) {

topic = new Topic();

topic.setContent(rs.getString(“hcontent”));

topic.setDirection(rs.getString(“direction”));

topic.setKind(rs.getString(“hkind”));

topic.setName(rs.getString(“hname”));

topic.setNumber(rs.getString(“hno”));

topic.setResult(rs.getString(“hresult”));

topic.setSnumber(rs.getString(“sno”));

topic.setSource(rs.getString(“hsource”));

topic.setStatus(rs.getString(“hstatus”));

topic.setType(rs.getString(“htype”));

topic.setTnumber(rs.getString(“tno”));

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(rs);

DB.close(conn);

}

return topic;

}

public static List getByTno(String num) {

Connection conn = DB.getConn();

String sql = null;

List topics = new ArrayList();

sql = “select * from topic_info where tno='” + num + “'”;

Statement stmt = DB.getStatement(conn);

ResultSet rs = DB.getResultSet(stmt, sql);

Topic topic = null;

try {

while (rs.next()) {

topic = new Topic();

topic.setContent(rs.getString(“hcontent”));

topic.setDirection(rs.getString(“direction”));

topic.setKind(rs.getString(“hkind”));

topic.setName(rs.getString(“hname”));

topic.setNumber(rs.getString(“hno”));

topic.setResult(rs.getString(“hresult”));

topic.setSnumber(rs.getString(“sno”));

topic.setSource(rs.getString(“hsource”));

topic.setStatus(rs.getString(“hstatus”));

topic.setType(rs.getString(“htype”));

topic.setTnumber(rs.getString(“tno”));

topics.add(topic);

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(rs);

DB.close(conn);

}

return topics;

}

public static int query(List topics, int pageNo, int pageSize, String str, String kind, String name) {

int totalRecords = -1;

Connection conn = DB.getConn();

String sql = null;

if (str == null)

str = “”;

if (kind == null)

kind = “”;

if (name == null)

name = “”;

sql = “select * from topic_info where hname like '%” + name

  • “%’ and htype like '%” + str + “%’ and hkind like '%” + kind + “%'”;

sql += "limit " + (pageNo - 1) * pageSize + “,” + pageSize;

Statement stmt = DB.getStatement(conn);

ResultSet rs = DB.getResultSet(stmt, sql);

Statement stmtCount = DB.getStatement(conn);

ResultSet rsCount = null;

rsCount = DB

.getResultSet(stmtCount, “select count(*) from topic_info where hname like '%” + name

  • “%’ and htype like '%” + str + “%’ and hkind like '%” + kind + “%'”);

try {

if (rsCount != null) rsCount.next();

totalRecords = rsCount.getInt(1);

while (rs.next()) {

Topic topic = new Topic();

topic.setContent(rs.getString(“hcontent”));

topic.setDirection(rs.getString(“direction”));

topic.setKind(rs.getString(“hkind”));

topic.setName(rs.getString(“hname”));

topic.setNumber(rs.getString(“hno”));

topic.setResult(rs.getString(“hresult”));

topic.setSnumber(rs.getString(“sno”));

topic.setSource(rs.getString(“hsource”));

topic.setStatus(rs.getString(“hstatus”));

topic.setType(rs.getString(“htype”));

topic.setTnumber(rs.getString(“tno”));

topics.add(topic);

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(rsCount);

DB.close(stmtCount);

DB.close(rs);

DB.close(stmt);

DB.close(conn);

}

return totalRecords;

}

public static List getByStatus(String num) {

Connection conn = DB.getConn();

List topics = new ArrayList();

String sql = null;

sql = “select * from topic_info where hstatus='” + num + “'”;

Statement stmt = DB.getStatement(conn);

ResultSet rs = DB.getResultSet(stmt, sql);

Topic topic = null;

try {

while (rs.next()) {

topic = new Topic();

topic.setContent(rs.getString(“hcontent”));

topic.setDirection(rs.getString(“direction”));

topic.setKind(rs.getString(“hkind”));

topic.setName(rs.getString(“hname”));

topic.setNumber(rs.getString(“hno”));

topic.setResult(rs.getString(“hresult”));

topic.setSnumber(rs.getString(“sno”));

topic.setSource(rs.getString(“hsource”));

topic.setStatus(rs.getString(“hstatus”));

topic.setType(rs.getString(“htype”));

topic.setTnumber(rs.getString(“tno”));

topics.add(topic);

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(rs);

DB.close(conn);

}

return topics;

}

public static Topic getBySnum(String num) {

Connection conn = DB.getConn();

String sql = null;

sql = “select * from topic_info where sno='” + num + “'”;

Statement stmt = DB.getStatement(conn);

ResultSet rs = DB.getResultSet(stmt, sql);

Topic topic = null;

try {

if (rs.next()) {

topic = new Topic();

topic.setContent(rs.getString(“hcontent”));

topic.setDirection(rs.getString(“direction”));

topic.setKind(rs.getString(“hkind”));

topic.setName(rs.getString(“hname”));

topic.setNumber(rs.getString(“hno”));

topic.setResult(rs.getString(“hresult”));

topic.setSnumber(rs.getString(“sno”));

topic.setSource(rs.getString(“hsource”));

topic.setStatus(rs.getString(“hstatus”));

topic.setType(rs.getString(“htype”));

topic.setTnumber(rs.getString(“tno”));

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(rs);

DB.close(conn);

}

return topic;

}

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

今天的文章可谓是积蓄了我这几年来的应聘和面试经历总结出来的经验,干货满满呀!如果你能够一直坚持看到这儿,那么首先我还是十分佩服你的毅力的。不过光是看完而不去付出行动,或者直接进入你的收藏夹里吃灰,那么我写这篇文章就没多大意义了。所以看完之后,还是多多行动起来吧!

可以非常负责地说,如果你能够坚持把我上面列举的内容都一个不拉地看完并且全部消化为自己的知识的话,那么你就至少已经达到了中级开发工程师以上的水平,进入大厂技术这块是基本没有什么问题的了。

c>();

String sql = null;

sql = “select * from topic_info where hstatus='” + num + “'”;

Statement stmt = DB.getStatement(conn);

ResultSet rs = DB.getResultSet(stmt, sql);

Topic topic = null;

try {

while (rs.next()) {

topic = new Topic();

topic.setContent(rs.getString(“hcontent”));

topic.setDirection(rs.getString(“direction”));

topic.setKind(rs.getString(“hkind”));

topic.setName(rs.getString(“hname”));

topic.setNumber(rs.getString(“hno”));

topic.setResult(rs.getString(“hresult”));

topic.setSnumber(rs.getString(“sno”));

topic.setSource(rs.getString(“hsource”));

topic.setStatus(rs.getString(“hstatus”));

topic.setType(rs.getString(“htype”));

topic.setTnumber(rs.getString(“tno”));

topics.add(topic);

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(rs);

DB.close(conn);

}

return topics;

}

public static Topic getBySnum(String num) {

Connection conn = DB.getConn();

String sql = null;

sql = “select * from topic_info where sno='” + num + “'”;

Statement stmt = DB.getStatement(conn);

ResultSet rs = DB.getResultSet(stmt, sql);

Topic topic = null;

try {

if (rs.next()) {

topic = new Topic();

topic.setContent(rs.getString(“hcontent”));

topic.setDirection(rs.getString(“direction”));

topic.setKind(rs.getString(“hkind”));

topic.setName(rs.getString(“hname”));

topic.setNumber(rs.getString(“hno”));

topic.setResult(rs.getString(“hresult”));

topic.setSnumber(rs.getString(“sno”));

topic.setSource(rs.getString(“hsource”));

topic.setStatus(rs.getString(“hstatus”));

topic.setType(rs.getString(“htype”));

topic.setTnumber(rs.getString(“tno”));

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(rs);

DB.close(conn);

}

return topic;

}

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-3C2719tD-1713494626433)]

[外链图片转存中…(img-4XNuHIlz-1713494626434)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

[外链图片转存中…(img-Y0hlJsgs-1713494626434)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

[外链图片转存中…(img-QtH96F17-1713494626434)]

最后

今天的文章可谓是积蓄了我这几年来的应聘和面试经历总结出来的经验,干货满满呀!如果你能够一直坚持看到这儿,那么首先我还是十分佩服你的毅力的。不过光是看完而不去付出行动,或者直接进入你的收藏夹里吃灰,那么我写这篇文章就没多大意义了。所以看完之后,还是多多行动起来吧!

可以非常负责地说,如果你能够坚持把我上面列举的内容都一个不拉地看完并且全部消化为自己的知识的话,那么你就至少已经达到了中级开发工程师以上的水平,进入大厂技术这块是基本没有什么问题的了。

资料领取方式:戳这里前往免费领取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值