2024年最新IDEA+Java+Jsp+Mysql实现Web毕业设计选题系统,京东java面试流程

最后

现在正是金三银四的春招高潮,前阵子小编一直在搭建自己的网站,并整理了全套的**【一线互联网大厂Java核心面试题库+解析】:包括Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等**

image

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

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

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;

}

public static Topic getByTnumAndHname(String tnum, String hname) {

Connection conn = DB.getConn();

String sql = null;

sql = “select * from topic_info where tno='” + tnum + “’ and hname='” + hname + “'”;

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;

}

}

DB


数据库连接类

package com.sjsq.util;

import java.sql.*;

/**

  • 对数据库连接的封装

*/

public class DB {

/**

  • 获得对要用的数据库的连接

  • @return 返回数据库的连接

*/

public static Connection getConn() {

Connection conn = null;

try {

Class.forName(“com.mysql.cj.jdbc.Driver”);//数据库的驱动类 若数据库为sqlserver 应为: (“com.microsoft.sqlserver.jdbc.SQLServerDriver”)

conn = DriverManager.getConnection(“jdbc:mysql://localhost/jsp_select_topic?serverTimezone=UTC”,“root”,“admin”);

//jdbc:myseql数据库的类型 localhost:3306本机3306端口 select_course 数据库名 user=root 用户名为root password=root 用户密码为root

// 若是sqlserver应为(“jdbc:sqlserver://localhst:1422;databaseName=select_course”, “root”, “root”);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

return conn;

}

/**

  • 获得多数据库的预编译的 SQL 语句的对象

  • @param conn 数据库的连接

  • @param sql 要执行的SQL语句

  • @return 返回预编译的 SQL 语句的对象

*/

public static PreparedStatement prepare(Connection conn, String sql) {

PreparedStatement pstmt = null;

try {

if(conn != null) {

pstmt = conn.prepareStatement(sql);

}

} catch (SQLException e) {

e.printStackTrace();

}

return pstmt;

}

/**

  • @param conn 数据库的连接

  • @return 返回执行静态 SQL 语句对象

*/

public static Statement getStatement(Connection conn) {

Statement stmt = null;

try {

if(conn != null) {

stmt = conn.createStatement();

}

} catch (SQLException e) {

e.printStackTrace();

}

return stmt;

}

/**

  • @param stmt 执行静态SQl语句的对象

  • @param sql 要执行的SQL语句

  • @return 执行后的结果集

*/

public static ResultSet getResultSet(Statement stmt, String sql) {

ResultSet rs = null;

try {

if(stmt != null) {

rs = stmt.executeQuery(sql);

}

} catch (SQLException e) {

e.printStackTrace();

}

return rs;

}

/**

  • @param stmt 静态执行sql语句的对象

  • @param sql 要执行的SQL语句

*/

public static void executeUpdate(Statement stmt, String sql) {

try {

if(stmt != null) {

stmt.executeUpdate(sql);

}

} catch (SQLException e) {

e.printStackTrace();

}

}

/**

  • 关闭数据库的连接

  • @param conn 数据库的连接

*/

public static void close(Connection conn) {

try {

if(conn != null) {

conn.close();

conn = null;

}

} catch (SQLException e) {

e.printStackTrace();

最后

小编精心为大家准备了一手资料

以上Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术

【附】架构书籍

  1. BAT面试的20道高频数据库问题解析
  2. Java面试宝典
  3. Netty实战
  4. 算法

BATJ面试要点及Java架构师进阶资料

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

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

dmin");

//jdbc:myseql数据库的类型 localhost:3306本机3306端口 select_course 数据库名 user=root 用户名为root password=root 用户密码为root

// 若是sqlserver应为(“jdbc:sqlserver://localhst:1422;databaseName=select_course”, “root”, “root”);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

return conn;

}

/**

  • 获得多数据库的预编译的 SQL 语句的对象

  • @param conn 数据库的连接

  • @param sql 要执行的SQL语句

  • @return 返回预编译的 SQL 语句的对象

*/

public static PreparedStatement prepare(Connection conn, String sql) {

PreparedStatement pstmt = null;

try {

if(conn != null) {

pstmt = conn.prepareStatement(sql);

}

} catch (SQLException e) {

e.printStackTrace();

}

return pstmt;

}

/**

  • @param conn 数据库的连接

  • @return 返回执行静态 SQL 语句对象

*/

public static Statement getStatement(Connection conn) {

Statement stmt = null;

try {

if(conn != null) {

stmt = conn.createStatement();

}

} catch (SQLException e) {

e.printStackTrace();

}

return stmt;

}

/**

  • @param stmt 执行静态SQl语句的对象

  • @param sql 要执行的SQL语句

  • @return 执行后的结果集

*/

public static ResultSet getResultSet(Statement stmt, String sql) {

ResultSet rs = null;

try {

if(stmt != null) {

rs = stmt.executeQuery(sql);

}

} catch (SQLException e) {

e.printStackTrace();

}

return rs;

}

/**

  • @param stmt 静态执行sql语句的对象

  • @param sql 要执行的SQL语句

*/

public static void executeUpdate(Statement stmt, String sql) {

try {

if(stmt != null) {

stmt.executeUpdate(sql);

}

} catch (SQLException e) {

e.printStackTrace();

}

}

/**

  • 关闭数据库的连接

  • @param conn 数据库的连接

*/

public static void close(Connection conn) {

try {

if(conn != null) {

conn.close();

conn = null;

}

} catch (SQLException e) {

e.printStackTrace();

最后

小编精心为大家准备了一手资料

[外链图片转存中…(img-6jRdONft-1715137413551)]

[外链图片转存中…(img-FDfiAHXS-1715137413552)]

以上Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术

【附】架构书籍

  1. BAT面试的20道高频数据库问题解析
  2. Java面试宝典
  3. Netty实战
  4. 算法

[外链图片转存中…(img-btj2YE58-1715137413552)]

BATJ面试要点及Java架构师进阶资料

[外链图片转存中…(img-GGB5BwHw-1715137413553)]

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

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

该学生成绩信息管理系统涉及到学生、教师、系统管理员、班级、学生成绩、课程。设置一个系统管理员对系统进行管理。所有用户需输入账号、密码登录进入系统;管理员进入系统后可对学生、老师、班级、课程进行增删改查操作;学生进入系统,查看成绩、查看和修改自己的信息;老师进入系统后,对自己这门课程的学生设置课程成绩、查看和修改自己的信息,查看学生的信息和成绩、以及统计分析学生的成绩; 管理员为班级设置级,为级设置课程,为班级的每门课程设置老师,为学生设置班级。一个级有多门课程(语文、数学、外语等等),班级的每门课程只能有一名老师,一个老师可以有多门课程;老师选择自己这门课程为该课程的学生登记成绩。老师可以查看其他老师的信息(可以当成是老师的通讯录),查看本课程学生的信息和成绩;学生可以查看班级其他同学的信息(可以看成是班级的同学录)。 考试分为两种,一种是级统考,一种是平时考试。级统考需要管理员事先添加一次级统考,考试成绩出来后,老师进入系统选择该次考试为学生登记成绩。平时考试则是班级平时的考试,老师添加考试信息,登记成绩。成绩统计分析则是针对级统考进行分析,主要涉及各学科分数名次,总分名次。 技术实现 系统环境:Windows开发工具:IDEAJava版本:JDK 1.8服务器:Tomcat 1.8数据库:MySQL 5.X系统采用技术:Servlet+Jsp+Jdbc+H-ui+EasyUI+jQuery+Html+Css+Ajax 系统功能系统主要分为三种用户角色,分别是管理员、老师以及学生,其具体功能如下: - 管理员   学生信息管理、教师信息管理、级信息管理、班级信息管理、课程信息管理、考试信息管理,系统参数设置 - 老师   教学管理、教师个人信息维护、教师通讯录管理 - 学生考试成绩查询、学生通讯录、学生个人信息维护 运行截图 登录界面: 管理员界面: 考试列表:  成绩统计: 学生信息管理: 教师信息管理: 级、班级信息管理:  系统设置: 教师界面:  成绩登记:  教师通讯录: 个人信息:  学生界面: 学生成绩查询: 班级通讯录: 学生个人信息:              
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值