2022-12-04更新:

时隔上次更新已过去快两年,期间不少小伙伴私信问源代码啥的。因此在原版基础上修复,完成最终优化版,主要是代码优化和引入新的javaswing用法~,如有疑问欢迎评论区留言交流

(PS:所有java代码和SQL代码都在文章里!!!)

目录

题目:学生信息管理系统

1 系统需求分析

1.1 系统功能分析

1.2 系统功能模块设计(划分)

1.3 与其它系统的关系

2 数据库设计

2.1 数据库需求分析

2.2 数据库概念结构设计

2.3 数据库逻辑结构设计

2.4 数据库的建立

2.4.1 数据库的建立(请设计者完成)

2.4.2 初始数据的输入

3 各功能模块的设计与实现

3.1 功能说明

3.2 用户界面设计

3.3 各功能模块的实现

4、界面、数据库和源代码

4.1、表字段和建表脚本

4.2、源代码(3个文件)

4.2.1、login.java

4.2.2、QUESTIONONE2.java

4.2.3、DbProcess2.java


题目:学生信息管理系统

1 系统需求分析

学校每年都有新生入学、老生毕业,还有其他各种人事变动。如何有效地管理这些学生的信息,帮助学校和老师掌握学生的情况,这就是学生信息管理系统需要完成的功能。

1.1 系统功能分析

本系统主要的功能是收集学生的个人信息,以便向教师提供每个学生在校的情况。
主要功能有:
 学生个人信息输入,包括:姓名、性别、院系、生日、籍贯、生源所在地等。
 学生流动情况的输入,包括:转系、休学、复学、退学、毕业。
 奖惩情况的输入。
 学生个人情况查询和修改,包括流动情况和奖罚情况。

1.2 系统功能模块设计(划分)

根据系统功能要求可以将系统分解成几个模块来分别设计应用程序界面,如图 1 所示。

1.3 与其它系统的关系

学生信息管理系统是校园信息管理系统的一个组成部分。它为其它系统,如班级信息管理系统、教学管理系统、成绩单系统、宿舍分配系统等,提供学生的基本情况。同时需要其他系统提供的班级设置和院系设置等情况。这些系统可以使用同一个数据库,直接相互调用所需的数据。

2 数据库设计

2.1 数据库需求分析

根据上一节的数据流程图,可以列出以下记录学生信息所需的数据项和数据结构:
 学生:学号、姓名、性别、生日、籍贯、所在院系、所在班级。
 处罚记录:记录号、级别、处罚对象、记录时间、详细描述、是否生效。
 奖励记录:记录号、级别、奖励对象、记录时间、详细描述。
 学籍变更记录:记录号、变更情况、记录对象、记录时间、详细描述。
        所需的外部数据支持:
 班级:班级编号、班级名称、所属院系。
 院系:代码、名称。

2.2 数据库概念结构设计

本系统所需数据的 E-R 模型图

2.3 数据库逻辑结构设计

根据系统 E-R 图,需要设计 4 个数据表来存放学生的信息。为了系统的完整,系统中包括了应用程序设计中所需的 2 个外部数据表。为了优化数据表结构,部分字段采用代码形式,因此需要附加 3 个代码表。这 9 个数据表的结构如表 1 到表 9 所示。

2.4 数据库的建立

2.4.1 数据库的建立(请设计者完成)

2.4.2 初始数据的输入

数据表创建成功后,数据库中还没有实际的数据。为了保证外部键能使用,数据需要提前输入,如院系编号、班级编号、学籍变更代码和奖惩级别等等。
        学籍变更代码和奖惩级别的主关键字 CODE 从 0 开始用阿拉伯数字依次编号,便于程序设计时,采用单选按钮来选择。
        本系统中所用到的学籍变更和奖惩级别代码如表 10 至表 12 所示(请设计者完成这些数据表的逻辑结构)。

表10 学籍变更代码表
代码                说明
0                     转系
1                     休学
2                     复学
3                     退学
4                     毕业

表11 奖励级别代码
代码                说明
0             校特等奖学金
1             校一等奖学金
2             校二等奖学金
3             校三等奖学金
4             系一等奖学金
5             系二等奖学金
6             系三等奖学金

表12 处罚级别代码
代码                说明
0                     警告
1                 严重警告
2                     记过
3                   记大过
4                     开除

3 各功能模块的设计与实现

3.1 功能说明

1、学生个人信息输入
2、学籍变更情况的输入
3、奖励情况的输入
4、处罚情况的输入
5、学生个人情况查询和修改

3.2 用户界面设计

完成数据库创建和功能说明以后,我们可以进行下一步工作,即设计用户界面。由于本系统管理内容比较简单,且为校园管理信息系统的一部分,因此使用一个窗体不同的标签页来完成系统要求的 5 项功能。
        我们把学生信息管理系统的窗体分成____个主要部分,如图____所示。
1、应用程序主窗体的创建
2、学生个人信息输入界面
3、学籍变更情况输入界面
4、奖励情况输入界面
5、处罚情况输入界面
6、学生个人情况查询和修改界面

3.3 各功能模块的实现

1、学生个人信息输入
2、学籍变更情况输入
3、奖励情况输入
4、处罚情况输入
5、学生个人情况查询和修改

------------------------------------------- 以上是题目 -------------------------------------------

4、界面、数据库和源代码

本管理系统主要分为  登录和选项卡面板 两个模块,将多个界面放在选项卡面板,每个界面完成不同的功能,分别是学生个人情况查询修改学生信息输入处罚情况/学籍变更/奖励信息输入

        湖科大的可⊕ⓠ1119094861

4.1、表字段和建表脚本

以下是数据库表结构,q2数据库下一共有9个表

数据表创建成功后,数据库中还没有实际的数据。为了保证外部键能使用,数据需要提前输入,如院系编号、班级编号、学籍变更代码和奖惩级别等等

change表和change_code表:

class和department表:

reward和reward_levels表:

student表

——2020/12/28更新原因:不少学弟学妹要源码包的,补充如下数据库的创建代码

首先必须使用如下命令先建库!(库名用q1,保持一致,若需修改则上面的代码里也要变动):

create database  q1;

之后直接运行如下脚本(进入数据库复制粘贴或使用数据库工具运行都可)

/*
Navicat MySQL Data TransferSource Server         : ZTY
Source Server Version : 50528
Source Host           : localhost:3306
Source Database       : infodbTarget Server Type    : MYSQL
Target Server Version : 50528
File Encoding         : 65001Date: 2021-01-09 16:13:35
*/SET FOREIGN_KEY_CHECKS=0;-- ----------------------------
-- Table structure for chang
-- ----------------------------
DROP TABLE IF EXISTS `chang`;
CREATE TABLE `chang` (`ID` int(11) DEFAULT NULL,`STUDENTID` int(11) DEFAULT NULL,`CHAN` int(11) DEFAULT NULL,`REC_TIME` varchar(15) DEFAULT NULL,`DSRPIN` varchar(15) DEFAULT NULL,KEY `SI_SI` (`STUDENTID`),KEY `chan_code` (`CHAN`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;-- ----------------------------
-- Records of chang
-- ----------------------------
INSERT INTO `chang` VALUES ('3', '3', '2', '2020/12/31', '复学');
INSERT INTO `chang` VALUES ('4', '4', '5', '2020/12/31', '转学');
INSERT INTO `chang` VALUES ('5', '5', '5', '2020/12/31', '转学');
INSERT INTO `chang` VALUES ('6', '6', '3', '2020/12/30', '退学');
INSERT INTO `chang` VALUES ('7', '7', '4', '2020/12/30', '复学');
INSERT INTO `chang` VALUES ('8', '8', '4', '2020/12/29', '复学');
INSERT INTO `chang` VALUES ('9', '9', '1', '2020/2/28', ' 休学');
INSERT INTO `chang` VALUES ('2', '2', '0', '2020/12/31', '转专业');
INSERT INTO `chang` VALUES ('1', '1', '0', '2020/12/31', '转专业');
INSERT INTO `chang` VALUES ('10', '10', '3', '2020/2/27', '退学');-- ----------------------------
-- Table structure for change_code
-- ----------------------------
DROP TABLE IF EXISTS `change_code`;
CREATE TABLE `change_code` (`CODE` int(11) NOT NULL,`DSRPIN` varchar(15) DEFAULT NULL,PRIMARY KEY (`CODE`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;-- ----------------------------
-- Records of change_code
-- ----------------------------
INSERT INTO `change_code` VALUES ('0', '转系');
INSERT INTO `change_code` VALUES ('1', '休学');
INSERT INTO `change_code` VALUES ('2', '复学');
INSERT INTO `change_code` VALUES ('3', '退学');
INSERT INTO `change_code` VALUES ('4', '毕业');
INSERT INTO `change_code` VALUES ('5', '转学');-- ----------------------------
-- Table structure for class
-- ----------------------------
DROP TABLE IF EXISTS `class`;
CREATE TABLE `class` (`ID` int(11) NOT NULL,`NAME` varchar(10) DEFAULT NULL,`MONITOR` int(11) DEFAULT NULL,PRIMARY KEY (`ID`),KEY `ID_index` (`ID`),KEY `MONITOR_SI` (`MONITOR`),CONSTRAINT `MONITOR_SI` FOREIGN KEY (`MONITOR`) REFERENCES `student` (`STUDENTID`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;-- ----------------------------
-- Records of class
-- ----------------------------
INSERT INTO `class` VALUES ('1', '一班', null);
INSERT INTO `class` VALUES ('2', '二班', null);
INSERT INTO `class` VALUES ('3', '三班', null);
INSERT INTO `class` VALUES ('4', '四班', null);
INSERT INTO `class` VALUES ('5', '五班', null);
INSERT INTO `class` VALUES ('6', '六班', null);
INSERT INTO `class` VALUES ('7', '七班', null);-- ----------------------------
-- Table structure for department
-- ----------------------------
DROP TABLE IF EXISTS `department`;
CREATE TABLE `department` (`ID` int(11) NOT NULL,`NAME` varchar(10) DEFAULT NULL,PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;-- ----------------------------
-- Records of department
-- ----------------------------
INSERT INTO `department` VALUES ('1', '资安');
INSERT INTO `department` VALUES ('2', '土木');
INSERT INTO `department` VALUES ('3', '机电');
INSERT INTO `department` VALUES ('4', '计科');
INSERT INTO `department` VALUES ('5', '化工');
INSERT INTO `department` VALUES ('6', '物电');
INSERT INTO `department` VALUES ('7', '人文');
INSERT INTO `department` VALUES ('8', '外国语');
INSERT INTO `department` VALUES ('9', '马克思');
INSERT INTO `department` VALUES ('10', '体育');-- ----------------------------
-- Table structure for punishment
-- ----------------------------
DROP TABLE IF EXISTS `punishment`;
CREATE TABLE `punishment` (`ID` int(11) DEFAULT NULL,`STUDENTID` int(11) DEFAULT NULL,`LEVELS` int(11) DEFAULT NULL,`REC_TIME` varchar(15) DEFAULT NULL,`ENABLE` varchar(4) DEFAULT NULL,`DSRPIN` varchar(15) DEFAULT NULL,KEY `LEVELS_CODETWO` (`LEVELS`),KEY `SI_SIthree` (`STUDENTID`),CONSTRAINT `LEVELS_CODETWO` FOREIGN KEY (`LEVELS`) REFERENCES `punish_levels` (`CODE`),CONSTRAINT `SI_SIthree` FOREIGN KEY (`STUDENTID`) REFERENCES `student` (`STUDENTID`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;-- ----------------------------
-- Records of punishment
-- ----------------------------
INSERT INTO `punishment` VALUES ('1', '6', '2', '2020/12/30', '是', '逃课');
INSERT INTO `punishment` VALUES ('2', '9', '2', '2020/12/30', '是', '发表不当言论');
INSERT INTO `punishment` VALUES ('3', '10', '4', '2020/12/30', '是', '考试作弊');-- ----------------------------
-- Table structure for punish_levels
-- ----------------------------
DROP TABLE IF EXISTS `punish_levels`;
CREATE TABLE `punish_levels` (`CODE` int(11) NOT NULL,`DSRPIN` varchar(15) DEFAULT NULL,PRIMARY KEY (`CODE`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;-- ----------------------------
-- Records of punish_levels
-- ----------------------------
INSERT INTO `punish_levels` VALUES ('0', '警告');
INSERT INTO `punish_levels` VALUES ('1', '严重警告');
INSERT INTO `punish_levels` VALUES ('2', '记过');
INSERT INTO `punish_levels` VALUES ('3', '记大过');
INSERT INTO `punish_levels` VALUES ('4', '开除');-- ----------------------------
-- Table structure for reward
-- ----------------------------
DROP TABLE IF EXISTS `reward`;
CREATE TABLE `reward` (`ID` int(11) DEFAULT NULL,`STUDENTID` int(11) DEFAULT NULL,`LEVELS` int(11) DEFAULT NULL,`REC_TIME` varchar(15) DEFAULT NULL,`DSRPIN` varchar(15) DEFAULT NULL,KEY `LEVELS_CODE` (`LEVELS`),KEY `SI_SItwo` (`STUDENTID`),KEY `DSRPIN` (`DSRPIN`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;-- ----------------------------
-- Records of reward
-- ----------------------------
INSERT INTO `reward` VALUES ('2', '2', '1', '2020/12/30', '校编程比赛');
INSERT INTO `reward` VALUES ('3', '3', '2', '2020/12/30', '一校一书');
INSERT INTO `reward` VALUES ('4', '4', '3', '2020/12/30', '新生写作赛');
INSERT INTO `reward` VALUES ('5', '5', '4', '2020/12/30', '新生才艺赛');
INSERT INTO `reward` VALUES ('6', '7', '6', '2020/12/30', '新生辩论赛');
INSERT INTO `reward` VALUES ('7', '8', '5', '2020/12/30', '新生书画赛');
INSERT INTO `reward` VALUES ('1', '1', '0', '2020/12/30', '发表SCI论文');-- ----------------------------
-- Table structure for reward_levels
-- ----------------------------
DROP TABLE IF EXISTS `reward_levels`;
CREATE TABLE `reward_levels` (`CODE` int(11) NOT NULL,`DSRPIN` varchar(15) DEFAULT NULL,PRIMARY KEY (`CODE`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;-- ----------------------------
-- Records of reward_levels
-- ----------------------------
INSERT INTO `reward_levels` VALUES ('0', '校特等奖学金');
INSERT INTO `reward_levels` VALUES ('1', '校一等奖学金');
INSERT INTO `reward_levels` VALUES ('2', '校二等奖学金');
INSERT INTO `reward_levels` VALUES ('3', '校三等奖学金');
INSERT INTO `reward_levels` VALUES ('4', '系一等奖学金');
INSERT INTO `reward_levels` VALUES ('5', '系二等奖学金');
INSERT INTO `reward_levels` VALUES ('6', '系三等奖学金');-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (`STUDENTID` int(11) NOT NULL,`NAME` char(10) NOT NULL,`SEX` char(2) NOT NULL,`CLASS` int(11) NOT NULL,`DEPARTMENT` int(11) DEFAULT NULL,`BIRTHDAY` varchar(15) DEFAULT NULL,`NATIVE_PLACE` varchar(10) DEFAULT NULL,PRIMARY KEY (`STUDENTID`),KEY `SI_C` (`CLASS`),KEY `department_id` (`DEPARTMENT`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('1', '赵伊', '女', '1', '10', '2001.1.1', '湖南长沙');
INSERT INTO `student` VALUES ('2', '钱程', '男', '2', '9', '2001.2.2', '江西南昌');
INSERT INTO `student` VALUES ('3', '孙三', '男', '3', '8', '2001.3.3', '黑龙江哈尔滨');
INSERT INTO `student` VALUES ('4', '李四', '男', '4', '7', '2001.4.14', '河北石家庄');
INSERT INTO `student` VALUES ('5', '周五', '男', '5', '6', '2001.5.4', '山西太原');
INSERT INTO `student` VALUES ('6', '吴太和', '女', '6', '5', '2001.6.1', '内蒙古呼和浩特');
INSERT INTO `student` VALUES ('7', '郑七', '男', '7', '4', '2001.7.1', '吉林长春');
INSERT INTO `student` VALUES ('8', '王力宏', '男', '1', '3', '2001.8.1', '江苏南京');
INSERT INTO `student` VALUES ('9', '冯绍峰', '男', '2', '2', '2001.9.10', '浙江杭州');
INSERT INTO `student` VALUES ('10', '陈芊芊', '女', '3', '1', '2001.10.1', '安徽合肥');

4.2、源代码(3个文件)

4.2.1、login.java

package com.ZTY;import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/*** @Author: pumpkin* @Time: 2021-01-09   Hunan University of Science and Technology* @Changes:*   1、增加了登录跳转功能*   2、学生个人情况查询和修改部分,增加了查询、删除记录和可展示的面板*/public class login implements ActionListener {// 定义主窗口private final JFrame jf;// 定义输入用户名和密码的标签提示private final JLabel InputUserName;private final JLabel InputPassWord;// 定义输入用户名文本框private final JTextField UserName;// 定义输入密码框private final JPasswordField PassWord;// 定义登录和取消按钮private final JButton Login;private final JButton Cancel;login() {// 各组件实例化过程jf = new JFrame("学生信息管理系统");InputUserName = new JLabel("账号(123)");InputPassWord = new JLabel("密码(123):");UserName = new JTextField();PassWord = new JPasswordField();Login = new JButton("登录");Cancel = new JButton("退出");// 设置主窗口大小、位置和布局jf.setSize(400, 150);jf.setLocation(400, 400);// 设置窗口流式布局jf.setLayout(new FlowLayout());// 设置用户名和密码框大小UserName.setPreferredSize(new Dimension(300, 30));PassWord.setPreferredSize(new Dimension(300, 30));// 依次向主窗口添加各组件jf.getContentPane().add(InputUserName);jf.getContentPane().add(UserName);jf.getContentPane().add(InputPassWord);jf.getContentPane().add(PassWord);jf.getContentPane().add(Login);jf.getContentPane().add(Cancel);// 设置主窗口不可调节大小jf.setResizable(false);// 设置主窗口默认关闭操作jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 给登录和取消按钮添加 Action 监听器Login.addActionListener(this);Cancel.addActionListener(this);// 设置主窗口可见jf.setVisible(true);}@Overridepublic void actionPerformed(ActionEvent e) {// 如果单击【退出】按钮则程序退出if (e.getSource().equals(Cancel)) {System.exit(0);}// 如果单击【登录】按钮则检查用户名和密码是否匹配else if (e.getSource().equals(Login)) {// 如果用户名和密码匹配,则打开具体操作面板if (UserName.getText().equals("123") && String.valueOf(PassWord.getPassword()).equals("123")) {jf.setVisible(false);jf.dispose();QUESTIONONE2 hh= new QUESTIONONE2();}// 如果用户名和密码不匹配,则给出提示对话框else {JOptionPane.showOptionDialog(jf, "用户名或密码错误", "登陆失败",JOptionPane.CLOSED_OPTION,JOptionPane.ERROR_MESSAGE, null, null, null);}}}// 启动登录界面public static void main(String[] args) {new login();}}

4.2.2、QUESTIONONE2.java

package com.ZTY;import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;/*** @Author: ZTY* @Time: 2022/12/4 20:22   Zhejiang Dahua Technology Co., Ltd* @Changes:*   1、Optimize lines of code,*   2、Add BoxLayout to reduce the sub-panel-num of JTabbedPane from 5 to 3*/public class QUESTIONONE2 extends JFrame{JPanel jap,jap2,jap3,jap4,jap5,jap7,jap8,jap9;JLabel jab1,jab2,jab3,jab4,jab5,jab6,jab7,jab9;JPanel jap1,jap6;JTextField JaTF1,JaTF2,JaTF3,JaTF4,JaTF5,JaTF6,JaTF7;JButton jab;JPanel jbp,jbp1,jbp2,jbp3,jbp4,jbp5;JTextField JbTF1,JbTF2,JbTF4,JbTF5;JLabel jbb1,jbb2,jbb4,jbb5;JButton jbb;JPanel jcp,jcp1,jcp2,jcp3,jcp4,jcp5;JTextField JcTF1,JcTF2,JcTF3,JcTF4,JcTF5;JLabel jcb1,jcb2,jcb3,jcb4,jcb5;JButton jcb;JPanel jdp,jdp1,jdp2,jdp3,jdp4,jdp5,jdp6;JTextField JdTF1,JdTF2,JdTF3,JdTF4,JdTF5,JdTF6;JLabel jdb1,jdb2,jdb3,jdb4,jdb5,jdb6;JButton jdb;JPanel jep,jep1,jep2,jep3,jep4,jep5,jep6,jep7,jep8,jep9,jep10,jep11,jep12,jep13;JTextField JeTF1,JeTF3,JeTF4,JeTF5,JeTF6,JeTF7,JeTF8,JeTF9,JeTF10,JeTF11,JeTF12,JeTF13;JLabel jeb1,jeb4,jeb5,jeb6,jeb7,jeb8,jeb9,jeb10,jeb11,jeb12,jeb13;JButton JeB1,JeB2;JTabbedPane JTP;JTable studentJTable = null;JScrollPane studentJScrollPane = null;Vector studentVector = null;Vector titleVector = null;JButton jBQueryAll = null;JButton jBDeleteCurrentRecord = null;JButton jBDeleteAllRecords = null;private static DbProcess2 dbProcess=new DbProcess2();String SelectQueryFieldStr="";public QUESTIONONE2 (){JComboBox<String>jCBSelectQueryField = new JComboBox<String>();//查询字段jCBSelectQueryField.addItem("学号");jCBSelectQueryField.addItem("姓名");jCBSelectQueryField.addItem("性别");jCBSelectQueryField.addItem("班级");jCBSelectQueryField.addItem("院系");jCBSelectQueryField.addItem("生日");jCBSelectQueryField.addItem("住址");jCBSelectQueryField.addItemListener(new ItemListener() {//下拉框事件监听public void itemStateChanged(ItemEvent event) {switch (event.getStateChange()) {case ItemEvent.SELECTED:SelectQueryFieldStr = (String) event.getItem();System.out.println("选中:" + SelectQueryFieldStr);break;case ItemEvent.DESELECTED:System.out.println("取消选中:" + event.getItem());break;}}});jap=new JPanel(new GridLayout(9,1));//return jap;jap1=new JPanel();JaTF1=new JTextField(8);jab1 = new JLabel("学号");jab1.setFont(new Font(null,Font.PLAIN,20));jap1.add(jab1);jap1.add(JaTF1);jap2=new JPanel();JaTF2=new JTextField(8);jab2 = new JLabel("姓名");jab2.setFont(new Font(null,Font.PLAIN,20));jap2.add(jab2);jap2.add(JaTF2);jap3=new JPanel();JaTF3=new JTextField(8);jab3 = new JLabel("性别");jab3.setFont(new Font(null,Font.PLAIN,20));jap3.add(jab3);jap3.add(JaTF3);JComboBox<String> jCBSexField = new JComboBox<String>();jCBSexField.addItem("男");jCBSexField.addItem("女");jCBSexField.addItemListener(new ItemListener() {//下拉框事件监听public void itemStateChanged(ItemEvent event) {String SexFieldStr;switch (event.getStateChange()) {case ItemEvent.SELECTED:SexFieldStr = (String) event.getItem();System.out.println("选中:" + SexFieldStr);JaTF3.setText(jCBSexField.getSelectedItem().toString());break;case ItemEvent.DESELECTED:System.out.println("取消选中:" + event.getItem());break;}}});jap3.add(jCBSexField);jap4=new JPanel();JaTF4=new JTextField(8);jab4 = new JLabel("生日");jab4.setFont(new Font(null,Font.PLAIN,20));jap4.add(jab4);jap4.add(JaTF4);jap5=new JPanel();JaTF5=new JTextField(8);jab5 = new JLabel("籍贯");jab5.setFont(new Font(null,Font.PLAIN,20));jap5.add(jab5);jap5.add(JaTF5);jap6=new JPanel();JaTF6=new JTextField(8);jab6 = new JLabel("院系");jab6.setFont(new Font(null,Font.PLAIN,20));jap6.add(jab6);jap6.add(JaTF6);jap7=new JPanel();JaTF7=new JTextField(8);jab7 = new JLabel("班级");jab7.setFont(new Font(null,Font.PLAIN,20));jap7.add(jab7);jap7.add(JaTF7);jap8=new JPanel();jab=new JButton("输入");jab.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){if(e.getActionCommand().equals("输入")&&!JaTF1.getText().isEmpty()&&!JaTF2.getText().isEmpty()&&!JaTF3.getText().isEmpty()&&!JaTF4.getText().isEmpty()&&!JaTF5.getText().isEmpty()&&!JaTF6.getText().isEmpty()&&!JaTF7.getText().isEmpty()){System.out.println("actionPerformed(). 输入");String sNo=JaTF1.getText().trim();String sName=JaTF2.getText().trim();String sSex=JaTF3.getText().trim();String sBir=JaTF4.getText().trim();String sHom=JaTF5.getText().trim();String sDep=JaTF6.getText().trim();String sCla=JaTF7.getText().trim();String sql = "insert into student(STUDENTID,NAME,SEX,CLASS,DEPARTMENT,BIRTHDAY,NATIVE_PLACE) values(";sql = sql + sNo + ",'"+ sName + "','" + sSex + "'," + sCla + "," + sDep + ",'" + sBir + "','" + sHom + "')";System.out.println(sql);new DbProcess2().executeUpdate(sql);}}});jap9=new JPanel();jBQueryAll = new JButton("查询所有记录");jBDeleteCurrentRecord = new JButton("删除当前记录");jBDeleteAllRecords = new JButton("删除所有记录");studentVector = new Vector();titleVector = new Vector();// 定义表头titleVector.add("学号");titleVector.add("姓名");titleVector.add("性别");titleVector.add("班级");titleVector.add("院系");titleVector.add("生日");titleVector.add("住址");//studentTableModel = new DefaultTableModel(tableTitle, 15);studentJTable = new JTable(studentVector, titleVector);studentJTable.setPreferredScrollableViewportSize(new Dimension(500,160));studentJScrollPane = new JScrollPane(studentJTable);//分别设置水平和垂直滚动条自动出现studentJScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);studentJScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);jBQueryAll.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){System.out.println("actionPerformed(). 查询所有记录");queryAllProcess();}});jBDeleteCurrentRecord.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){System.out.println("actionPerformed(). 删除当前记录");deleteCurrentRecordProcess();}});jBDeleteAllRecords.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){System.out.println("actionPerformed(). 删除所有记录");deleteAllRecordsProcess();}});Dimension preferredSize = new Dimension(150,20);jab.setPreferredSize(preferredSize);jap8.add(jab);jab9=new JLabel("作者:18计科ZTY    交流+Q:1119094861");jap9=new JPanel(new FlowLayout());//布局jap9.add(jab9);jap.add(jap1);jap.add(jap2);jap.add(jap3);jap.add(jap4);jap.add(jap5);jap.add(jap6);jap.add(jap7);jap.add(jap8);jap.add(jap9);jbp=new JPanel();//return jbp;jbp1=new JPanel();jbp2=new JPanel();jbp3=new JPanel();jbp4=new JPanel();jbp5=new JPanel();JbTF1=new JTextField(8);jbb1=new JLabel("记录号");jbb1.setFont(new Font(null,Font.PLAIN,18));jbp1.add(jbb1);jbp1.add(JbTF1);JbTF2=new JTextField(10);jbb2=new JLabel("学号");jbb2.setFont(new Font(null,Font.PLAIN,18));jbp2.add(jbb2);jbp2.add(JbTF2);JTextField JbTF3=new JTextField(5);JLabel jbb3=new JLabel("变更代码");jbb3.setFont(new Font(null,Font.PLAIN,18));jbp3.add(jbb3);jbp3.add(JbTF3);JbTF4=new JTextField(7);jbb4=new JLabel("记录时间");jbb4.setFont(new Font(null,Font.PLAIN,18));jbp4.add(jbb4);jbp4.add(JbTF4);JbTF5=new JTextField(7);jbb5=new JLabel("描述");jbb5.setFont(new Font(null,Font.PLAIN,18));jbp5.add(jbb5);jbp5.add(JbTF5);jbb=new JButton("输入");Dimension preferredSize2 = new Dimension(60,18);jbb.setPreferredSize(preferredSize2);jbp5.add(jbb);jbp.add(jbp1);jbp.add(jbp2);jbp.add(jbp3);jbp.add(jbp4);jbp.add(jbp5);jbb.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){if(e.getActionCommand().equals("输入")&&!JbTF1.getText().isEmpty() &&!JbTF2.getText().isEmpty()&&!JbTF3.getText().isEmpty() &&!JbTF4.getText().isEmpty()&&!JbTF5.getText().isEmpty()){System.out.println("actionPerformed(). 输入");String ID=JbTF1.getText().trim();String SI=JbTF2.getText().trim();String CE=JbTF3.getText().trim();String R_T=JbTF4.getText().trim();String DSRPIN=JbTF5.getText().trim();String sql = "insert into chang(ID,STUDENTID,CHAN,REC_TIME,DSRPIN) values(";sql=sql +ID+','+SI+','+CE+','+"'"+R_T+"'"+ ','+"'"+DSRPIN+"')";System.out.println(sql);new DbProcess2().executeUpdate(sql);}}});jcp=new JPanel();//return jcp;jcp1=new JPanel();jcp2=new JPanel();jcp3=new JPanel();jcp4=new JPanel();jcp5=new JPanel();JcTF1=new JTextField(8);jcb1=new JLabel("记录号");jcb1.setFont(new Font(null,Font.PLAIN,18));jcp1.add(jcb1);jcp1.add(JcTF1);JcTF2=new JTextField(10);jcb2=new JLabel("学号");jcb2.setFont(new Font(null,Font.PLAIN,18));jcp2.add(jcb2);jcp2.add(JcTF2);JcTF3=new JTextField(5);jcb3=new JLabel("级别代码");jcb3.setFont(new Font(null,Font.PLAIN,18));jcp3.add(jcb3);jcp3.add(JcTF3);JcTF4=new JTextField(7);jcb4=new JLabel("记录时间");jcb4.setFont(new Font(null,Font.PLAIN,18));jcp4.add(jcb4);jcp4.add(JcTF4);JcTF5=new JTextField(7);jcb5=new JLabel("描述");jcb5.setFont(new Font(null,Font.PLAIN,18));jcp5.add(jcb5);jcp5.add(JcTF5);jcb=new JButton("输入");Dimension preferredSize3 = new Dimension(60,18);jcb.setPreferredSize(preferredSize3);jcp5.add(jcb);jcp.add(jcp1);jcp.add(jcp2);jcp.add(jcp3);jcp.add(jcp4);jcp.add(jcp5);jcb.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){if(e.getActionCommand().equals("输入")&&!JcTF1.getText().isEmpty() &&!JcTF2.getText().isEmpty()&&!JcTF3.getText().isEmpty() &&!JcTF4.getText().isEmpty()&&!JcTF5.getText().isEmpty()){System.out.println("actionPerformed(). 输入");String ID=JcTF1.getText().trim();String SI=JcTF2.getText().trim();String LEVELS=JcTF3.getText().trim();String R_T=JcTF4.getText().trim();String DSRPIN=JcTF5.getText().trim();String sql = "insert into reward(ID,STUDENTID,LEVELS,REC_TIME,DSRPIN) values(";sql=sql +ID+','+SI+','+LEVELS+','+"'"+R_T+"'"+ ','+"'"+DSRPIN+"')";System.out.println(sql);new DbProcess2().executeUpdate(sql);}}});jdp=new JPanel();//    return jdp;jdp1=new JPanel();jdp2=new JPanel();jdp3=new JPanel();jdp4=new JPanel();jdp5=new JPanel();jdp6=new JPanel();JdTF1=new JTextField(8);jdb1=new JLabel("记录号");jdb1.setFont(new Font(null,Font.PLAIN,18));jdp1.add(jdb1);jdp1.add(JdTF1);JdTF2=new JTextField(10);jdb2=new JLabel("学号");jdb2.setFont(new Font(null,Font.PLAIN,18));jdp2.add(jdb2);jdp2.add(JdTF2);JdTF3=new JTextField(5);jdb3=new JLabel("级别代码");jdb3.setFont(new Font(null,Font.PLAIN,18));jdp3.add(jdb3);jdp3.add(JdTF3);JdTF4=new JTextField(7);jdb4=new JLabel("记录时间");jdb4.setFont(new Font(null,Font.PLAIN,18));jdp4.add(jdb4);jdp4.add(JdTF4);JdTF5=new JTextField(7);jdb5=new JLabel("描述");jdb5.setFont(new Font(null,Font.PLAIN,18));jdp5.add(jdb5);jdp5.add(JdTF5);JdTF6=new JTextField(3);jdb6=new JLabel("是否生效");jdb6.setFont(new Font(null,Font.PLAIN,18));jdp6.add(jdb6);jdp6.add(JdTF6);jdb=new JButton("输入");Dimension preferredSize4 = new Dimension(60,18);jdb.setPreferredSize(preferredSize4);jdp.add(jdp1);jdp.add(jdp2);jdp.add(jdp3);jdp.add(jdp4);jdp.add(jdp5);jdp.add(jdp6);jdp.add(jdb);jdb.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){if(e.getActionCommand().equals("输入")&&!JdTF1.getText().isEmpty() &&!JdTF2.getText().isEmpty()&&!JdTF3.getText().isEmpty() &&!JdTF4.getText().isEmpty()&&!JdTF5.getText().isEmpty() &&!JdTF6.getText().isEmpty()){System.out.println("actionPerformed(). 输入");String ID=JdTF1.getText().trim();String SI=JdTF2.getText().trim();String LEVELS=JdTF3.getText().trim();String R_T=JdTF4.getText().trim();String DSRPIN=JdTF5.getText().trim();String ENABLE=JdTF6.getText().trim();String sql = "insert into punishment(ID,STUDENTID,LEVELS,REC_TIME,ENABLE,DSRPIN) values(";sql=sql +ID+','+SI+','+LEVELS+','+"'"+R_T+"'"+ ','+ "'" + ENABLE + "',"+"'"+DSRPIN+"')";System.out.println(sql);new DbProcess2().executeUpdate(sql);}//输入级别为0-4之间不能超过4}});Box vBox = Box.createVerticalBox();JLabel JL1 = new JLabel("处罚");JL1.setFont(new Font("宋体",Font.BOLD,16));vBox.add(JL1);vBox.add(jdp);JLabel JL2 = new JLabel("学籍");JL2.setFont(new Font("宋体",Font.BOLD,16));vBox.add(JL2);vBox.add(jbp);JLabel JL3 = new JLabel("奖励");JL3.setFont(new Font("宋体",Font.BOLD,16));vBox.add(JL3);vBox.add(jcp);vBox.add(Box.createVerticalGlue()); // 添加一个水平方向胶状的不可见组件,撑满剩余水平空间jep=new JPanel();// return jep;jep1=new JPanel();jep2=new JPanel();jep3=new JPanel();jep4=new JPanel();jep5=new JPanel();jep6=new JPanel();jep7=new JPanel();jep8=new JPanel();jep9=new JPanel();jep10=new JPanel();jep11=new JPanel();jep12=new JPanel();jep13=new JPanel();JeTF1=new JTextField(8);jeb1=new JLabel("");jeb1.setFont(new Font(null,Font.PLAIN,20));jep1.add(jeb1);jep1.add(jCBSelectQueryField);jep1.add(JeTF1);JeB1=new JButton("查询");Dimension preferredSize5 = new Dimension(136,20);JeB1.setPreferredSize(preferredSize5);JeB1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){if(e.getActionCommand().equals("查询")&&!JeTF1.getText().trim().isEmpty()){String sql=JeTF1.getText().trim();queryall(sql);queryProcess(sql);}}});jep2.add(JeB1);JeB2=new JButton("修改");jep3.add(JeB2);JeTF4=new JTextField(8);jeb4=new JLabel("学籍变动");jeb4.setFont(new Font(null,Font.PLAIN,20));jep4.add(jeb4);jep4.add(JeTF4);JeTF5=new JTextField(8);jeb5=new JLabel("记录时间");jeb5.setFont(new Font(null,Font.PLAIN,20));jep5.add(jeb5);jep5.add(JeTF5);JeTF6=new JTextField(8);jeb6=new JLabel("描述");jeb6.setFont(new Font(null,Font.PLAIN,20));jep6.add(jeb6);jep6.add(JeTF6);JeTF7=new JTextField(8);jeb7=new JLabel("奖励");jeb7.setFont(new Font(null,Font.PLAIN,20));jep7.add(jeb7);jep7.add(JeTF7);JeTF8=new JTextField(8);jeb8=new JLabel("记录时间");jeb8.setFont(new Font(null,Font.PLAIN,20));jep8.add(jeb8);jep8.add(JeTF8);JeTF9=new JTextField(8);jeb9=new JLabel("描述");jeb9.setFont(new Font(null,Font.PLAIN,20));jep9.add(jeb9);jep9.add(JeTF9);JeTF10=new JTextField(4);jeb10=new JLabel("处罚");jeb10.setFont(new Font(null,Font.PLAIN,20));jep10.add(jeb10);jep10.add(JeTF10);JeTF11=new JTextField(3);jeb11=new JLabel("记录时间");jeb11.setFont(new Font(null,Font.PLAIN,20));jep11.add(jeb11);jep11.add(JeTF11);JeTF12=new JTextField(8);jeb12=new JLabel("描述");jeb12.setFont(new Font(null,Font.PLAIN,20));jep12.add(jeb12);jep12.add(JeTF12);JeTF13=new JTextField(2);jeb13=new JLabel("是否生效");jeb13.setFont(new Font(null,Font.PLAIN,20));jep13.add(jeb13);jep13.add(JeTF13);Dimension preferredSize6 = new Dimension(136,20);JeB2.setPreferredSize(preferredSize6);JeB2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){if(e.getActionCommand().equals("修改")&&!JeTF1.getText().trim().isEmpty()){String sql=JeTF1.getText().trim();changeall(sql);queryall(sql);}}});jep.add(jep1);jep.add(jep2);jep.add(jep3);jep.add(jep4);jep.add(jep5);jep.add(jep6);jep.add(jep7);jep.add(jep8);jep.add(jep9);jep.add(jep10);jep.add(jep11);jep.add(jep12);jep.add(jep13);jep.add(studentJScrollPane);//jep.add(jBQueryAll);jep.add(jBDeleteCurrentRecord);jep.add(jBDeleteAllRecords);JTP=new JTabbedPane();JTP.addTab("学生个人情况查询和修改",jep);JTP.addTab("学生个人信息输入",jap);JTP.addTab("处罚情况、学籍变更、奖励信息输入",vBox);
//              JTP.addTab("学籍变更情况输入界面",jbp);
//              JTP.addTab("奖励信息输入界面",jcp);JTP.addChangeListener(new ChangeListener() {@Overridepublic void stateChanged(ChangeEvent e) {System.out.println("当前选中的选项卡: " + JTP.getSelectedIndex());}});// 设置默认选中的选项卡JTP.setSelectedIndex(0);this.add(JTP);this.setLayout(new GridLayout(2, 1));this.setContentPane(JTP);this.setSize(550,450);this.setLocation(400, 180);this.setTitle("学生信息管理系统");this.setBackground(Color.blue);this.setVisible(true);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public void queryall(String sql){String s1="select change_code.DSRPIN,chang.REC_TIME,chang.DSRPIN as REASON from chang join change_code on change_code.CODE = chang.CHAN";s1=s1+" where "+jCBSelectQueryFieldTransfer(SelectQueryFieldStr)+" = "+sql;String s2="select reward_levels.DSRPIN,reward.REC_TIME,reward.DSRPIN as REASON from reward join reward_levels on reward_levels.CODE=reward.LEVELS";s2=s2+" where "+jCBSelectQueryFieldTransfer(SelectQueryFieldStr)+" = "+sql;String s3="select punish_levels.DSRPIN,punishment.REC_TIME,punishment.DSRPIN as REASON,punishment.ENABLE from punishment join punish_levels on punish_levels.CODE=punishment.LEVELS";s3=s3+" where "+jCBSelectQueryFieldTransfer(SelectQueryFieldStr)+" = "+sql;try{dbProcess.connect();dbProcess.sta=dbProcess.con.createStatement();ResultSet RS1=dbProcess.sta.executeQuery(s1);while(RS1.next()){String P1=RS1.getString("DSRPIN");String P2=RS1.getString("REC_TIME");String P3=RS1.getString("REASON");System.out.println(P1);System.out.println(P2);System.out.println(P3);JeTF4.setText(P1);JeTF5.setText(P2);JeTF6.setText(P3);}}catch(SQLException ex) {System.err.println(ex.getMessage());}dbProcess.disconnect();try {dbProcess.connect();dbProcess.sta=dbProcess.con.createStatement();ResultSet RS1=dbProcess.sta.executeQuery(s2);while(RS1.next()){String P4=RS1.getString("DSRPIN");String P5=RS1.getString("REC_TIME");String P6=RS1.getString("REASON");System.out.println(P4);System.out.println(P5);System.out.println(P6);JeTF7.setText(P4);JeTF8.setText(P5);JeTF9.setText(P6);}}catch(SQLException ex) {System.err.println(ex.getMessage());}dbProcess.disconnect();try {dbProcess.connect();dbProcess.sta=dbProcess.con.createStatement();ResultSet RS1=dbProcess.sta.executeQuery(s3);while(RS1.next()){String P7=RS1.getString("DSRPIN");String P8=RS1.getString("REC_TIME");String P9=RS1.getString("REASON");String P10=RS1.getString("ENABLE");System.out.println(P7);System.out.println(P8);System.out.println(P9);JeTF10.setText(P7);JeTF11.setText(P8);JeTF12.setText(P9);JeTF13.setText(P10);}}catch(SQLException ex) {System.err.println(ex.getMessage());}dbProcess.disconnect();}public void queryProcess(String sQueryField){try{// 建立查询条件String sql = "select * from student where ";String queryFieldStr = jCBSelectQueryFieldTransfer(SelectQueryFieldStr);if(queryFieldStr.equals("STUDENTID")||queryFieldStr.equals("CLASS")||queryFieldStr.equals("DEPARTMENT")){sql = sql + queryFieldStr;sql = sql + " = " + sQueryField;}else{sql = sql + queryFieldStr;sql = sql + " = ";sql = sql + "'" + sQueryField + "';";}System.out.println("queryProcess(). sql = " + sql);dbProcess.connect();ResultSet rs = dbProcess.executeQuery(sql);// 将查询获得的记录数据,转换成适合生成JTable的数据形式studentVector.clear();while(rs.next()){Vector v = new Vector();v.add(Integer.valueOf(rs.getInt("STUDENTID")));v.add(rs.getString("NAME"));v.add(rs.getString("SEX"));v.add(Integer.valueOf(rs.getInt("CLASS")));v.add(Integer.valueOf(rs.getInt("DEPARTMENT")));v.add(rs.getString("BIRTHDAY"));v.add(rs.getString("NATIVE_PLACE"));studentVector.add(v);}studentJTable.updateUI();dbProcess.disconnect();}catch(SQLException sqle){System.out.println("sqle = " + sqle);JOptionPane.showMessageDialog(null,"数据操作错误","错误",JOptionPane.ERROR_MESSAGE);}catch(Exception e){System.out.println("e = " + e);JOptionPane.showMessageDialog(null,"数据操作错误","错误",JOptionPane.ERROR_MESSAGE);}}public void changeall(String sql){String changchan=JeTF4.getText();String changtime=JeTF5.getText();String changedes=JeTF6.getText();String rew=JeTF7.getText();String rewtime=JeTF8.getText();String rewdesc=JeTF9.getText();String pun=JeTF10.getText();String puntime=JeTF11.getText();String pundesc=JeTF12.getText();String punfun=JeTF13.getText();String d1="update chang set CHAN=(select a.CHAN from (select CHAN,CODE from chang,change_code where chang.CHAN=change_code.CODE AND chang_code.DSRPIN ="+changchan+" group by CHAN)as a),"+"REC_TIME ='"+changtime+"',"+"DSRPIN ='"+changedes+"' "+"where STUDENTID"+" = "+sql;System.out.println(d1);String d2="update reward set LEVELS=(select b.LEVELS from (select LEVELS,CODE from reward,reward_levels where reward.LEVELS=reward_levels.CODE AND reward_levels.DSRPIN ='"+rew+"' group by LEVELS)as b),"+"REC_TIME ='"+rewtime+"' ,"+"DSRPIN ='"+rewdesc+"' "+"where STUDENTID"+" = "+sql;System.out.println(d2);String d3="update punishment set LEVELS=(select c.LEVELS from(select LEVELS,CODE from punishment,punish_levels where punishment.LEVELS=punish_levels.CODE AND punish_levels.DSRPIN ='"+pun+"' group by LEVELS)as c),"+"REC_TIME ='"+puntime+"',"+"DSRPIN ='"+pundesc+"' ,"+"ENABLE ='"+punfun+"' "+"where STUDENTID"+" = "+sql;System.out.println(d3);try {dbProcess.connect();dbProcess.sta=dbProcess.con.createStatement();dbProcess.sta.execute(d1);JeTF4.setText("");JeTF5.setText("");JeTF6.setText("");}catch(SQLException ex) {System.err.println(ex.getMessage());}dbProcess.disconnect();try {dbProcess.connect();dbProcess.sta=dbProcess.con.createStatement();dbProcess.sta.execute(d2);JeTF7.setText("");JeTF8.setText("");JeTF9.setText("");}catch(SQLException ex) {System.err.println(ex.getMessage());}dbProcess.disconnect();try {dbProcess.connect();dbProcess.sta=dbProcess.con.createStatement();dbProcess.sta.execute(d3);JeTF10.setText("");JeTF11.setText("");JeTF12.setText("");JeTF13.setText("");}catch(SQLException ex) {System.err.println(ex.getMessage());}dbProcess.disconnect();}public void queryAllProcess(){try{// 建立查询条件String sql = "select * from student;";System.out.println("queryAllProcess(). sql = " + sql);dbProcess.connect();ResultSet rs = dbProcess.executeQuery(sql);// 将查询获得的记录数据,转换成适合生成JTable的数据形式studentVector.clear();while(rs.next()){Vector v = new Vector();v.add(Integer.valueOf(rs.getInt("STUDENTID")));v.add(rs.getString("NAME"));v.add(rs.getString("SEX"));v.add(Integer.valueOf(rs.getInt("CLASS")));v.add(Integer.valueOf(rs.getInt("DEPARTMENT")));v.add(rs.getString("BIRTHDAY"));v.add(rs.getString("NATIVE_PLACE"));studentVector.add(v);}studentJTable.updateUI();dbProcess.disconnect();}catch(SQLException sqle){System.out.println("sqle = " + sqle);JOptionPane.showMessageDialog(null,"数据操作错误","错误",JOptionPane.ERROR_MESSAGE);}}public void deleteCurrentRecordProcess(){String sNo = JeTF1.getText().trim();// 建立删除条件String sql = "delete from student where "+jCBSelectQueryFieldTransfer(SelectQueryFieldStr)+"='" + sNo + "';";System.out.println("deleteCurrentRecordProcess(). sql = " + sql);try{if (dbProcess.executeUpdate1(sql) < 1) {System.out.println("deleteCurrentRecordProcess(). delete database failed.");}}catch(Exception e){System.out.println("e = " + e);JOptionPane.showMessageDialog(null,"数据操作错误","错误",JOptionPane.ERROR_MESSAGE);}queryAllProcess();}public void deleteAllRecordsProcess(){// 建立删除条件String sql = "delete from student;";System.out.println("deleteAllRecordsProcess(). sql = " + sql);try{if (dbProcess.executeUpdate1(sql) < 1) {System.out.println("deleteAllRecordsProcess(). delete database failed.");}}catch(Exception e){System.out.println("e = " + e);JOptionPane.showMessageDialog(null,"数据操作错误","错误",JOptionPane.ERROR_MESSAGE);}queryAllProcess();}public String jCBSelectQueryFieldTransfer(String InputStr){String outputStr = "";System.out.println("jCBSelectQueryFieldTransfer(). InputStr = " + InputStr);if(InputStr.equals("学号")){outputStr = "STUDENTID";}else if(InputStr.equals("姓名")){outputStr = "NAME";}else if(InputStr.equals("性别")){outputStr = "SEX";}else if(InputStr.equals("班级")){outputStr = "CLASS";}else if(InputStr.equals("院系")){outputStr = "DEPARTMENT";}else if(InputStr.equals("生日")){outputStr = "BIRTHDAY";}else if(InputStr.equals("住址")){outputStr = "NATIVE_PLACE";}System.out.println("jCBSelectQueryFieldTransfer(). outputStr = " + outputStr);return outputStr;}
}

4.2.3、DbProcess2.java

package com.ZTY;import java.sql.*;/*** @Author: ZTY* @Time: 2020-02-05*/public class DbProcess2{public Connection con = null;public Statement sta=null;ResultSet rs = null;static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";//注意:下行3306后面的q1为我建立的数据库名,要改成自己建立的数据库名!!!static final String DB_URL = "jdbc:mysql://localhost:3306/q2?useSSL=false&serverTimezone=UTC";//数据库账号密码,也要改为自己的static final String USER = "root";static final String PASS = "2000918131X";public DbProcess2(){try {//Mysql数据库设置驱动程序类型Class.forName(JDBC_DRIVER);System.out.println("连接数据库...");System.out.println("mysql数据库驱动加载成功");}catch(ClassNotFoundException e){e.printStackTrace();}}public void executeUpdate(String sql){connect();try{sta=con.createStatement();sta.execute(sql);}catch(SQLException ex) {System.err.println(ex.getMessage());}disconnect();}public void connect(){try{con = DriverManager.getConnection(DB_URL,USER,PASS);if(con!=null){System.out.println("数据库连接成功");}}catch(Exception e){e.printStackTrace();}}public void disconnect(){try{if(con != null){System.out.println("数据库断开成功");con.close();con = null;}}catch(Exception e){e.printStackTrace();}}public ResultSet executeQuery(String sql) {try {System.out.println("executeQuery(). sql = " + sql);PreparedStatement pstm = con.prepareStatement(sql);// ??в??rs = pstm.executeQuery();}catch(SQLException ex) {ex.printStackTrace();}return rs;}public int executeUpdate1(String sql) {int count = 0;connect();try {Statement stmt = con.createStatement();count = stmt.executeUpdate(sql);}catch(SQLException ex) {System.err.println(ex.getMessage());}disconnect();return count;}
}

基于学生信息管理系统的数据库系统课程设计(MySQL)相关推荐

  1. 网上教学系统mysql课程设计_基于学生信息管理系统的数据库系统课程设计(MySQL)...

    题目:学生信息管理系统 1 系统需求分析 学校每年都有新生入学.老生毕业,还有其他各种人事变动.如何有效地管理这些学生 的信息,帮助学校和老师掌握学生的情况,这就是学生信息管理系统需要完成的功能. 1 ...

  2. 计算机信息管理是学什么课程设计,毕业论文计算机专业学生信息管理系统(数据库课程设计)...

    毕业论文计算机专业学生信息管理系统(数据库课程设计) (70页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 兰州石化职业技术学院毕业设计( ...

  3. 教师工作量管理系统设计_关于学生信息管理系统数据库的课程设计

    一.概述 学生信息管理系统是学校管理的重要工具,是学校不可或缺的一部分.随着在校人数的不断增加,教务系统的数量也不断的上涨.学校工作繁杂,资料众多,人工管理信息的难度也越来越大,显然是不能满足实际的需 ...

  4. 学生卡管理系统 学生信息管理系统 C语言课程设计

    一.设计目的 通过课程设计的实践环节的教学,可以加深学生对课堂所学基础知识的掌握与理解,提高学生对所学内容的综合运用能力:同时也可以通过查询相关资料,培养学生自学能力.接受新知识的能力,提高学习兴趣: ...

  5. 学生信息管理系统c语言讲解,学生信息管理系统C语言课程设计讲解.doc

    课 程 设 计 报 告 课程名称 C语言程序设计 课题名称 学生信息管理系统 专 业 机械 班 级 02 学 号 20 姓 名 刘某某 指导教师 肖伟平 何宏 郭芳 2012年 12 月 19 日 湖 ...

  6. c语言课程设老师信息管理,学生和教师信息管理系统C语言课程设计

    学生和教师信息管理系统C语言课程设计 1目 录一.课题内容 -------------------2二.总体设计 -------------------51.系统要求 ---------------- ...

  7. java毕业生设计学生信息管理系统计算机源码+系统+mysql+调试部署+lw

    java毕业生设计学生信息管理系统计算机源码+系统+mysql+调试部署+lw java毕业生设计学生信息管理系统计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目架构:B/S架构 开 ...

  8. java-jsp基于学生信息管理系统93nbx[独有源码]如何找到适合自己的毕业设计的指南

    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考. 系统的选题背景和意义 选题背景: 学生信息管理系统是一种用于管理学生信息的软件系统,它可以帮助学校. ...

  9. 图的操作和应用之景区信息管理系统(数据结构课程设计)

    0001:图的操作和应用之景区信息管理系统(C++版数据结构课程设计) 现有一个景区,景区里面有若干个景点,景点之间满足以下条件: (1) 某些景点之间铺设了道路(相邻) (2) 这些道路都是可以双向 ...

最新文章

  1. 无冬连接不上账号服务器,电脑中玩无冬online掉线怎么回事_电脑中玩无冬online游戏总是掉线如何修复...
  2. linux学习笔记十(Raid基本知识)
  3. 开发日记-20190815 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 23
  4. tableau做rfm分析_RFM模型客户关系管理
  5. 洛谷P1035 [NOIP2002 普及组] 级数求和
  6. 解决eclipse出现The superclass javax.servlet.http.HttpServlet was not found on the Java Build Path
  7. opencv-api boxPoints
  8. SQLSERVER查看阻塞和死锁的进程以及执行的语句
  9. Oracle物化视图和普通视图区别
  10. 浅谈软件外包项目报价
  11. linux网页防篡改软件,蓝盾网页防篡改系统
  12. Python爬虫自己写项目之:爬取火车站的时刻表和票务信息
  13. 电影网站 php asp,moviewebsite 这是一个电影网站的源码,基于asp技术实现.仅供交流学习 WEB(ASP,PHP,...) 238万源代码下载- www.pudn.com...
  14. 国标EasyGBS方案GB/T28181接入华为VCN后视频自动停止播放问题分析
  15. ViewFlipper的用法
  16. 数组12:激光与巧克力
  17. 中国农产品流通市场运营状况与发展前景预测报告2022-2027年
  18. 2021-01-19
  19. 特斯拉扔出了一片“二向箔”
  20. 20155314 2016-2017-2 《Java程序设计》第9周学习总结

热门文章

  1. 【观察】中建材信息再转型背后,驶入数字化时代新蓝海
  2. 使用idea打出版权_今天了解版权及其使用
  3. 适合初中生计算机组成原理视频,【五三•书友会】UbD教学模式在信息技术教学中的应用探究 ——初中部理化生计组《基于理解的教学设计》书友会...
  4. 网络基础之一:网络体系结构详解
  5. windows10复制文件需要管理员权限,复制需要管理员权限怎么办
  6. Docsify的使用和手册说明
  7. 浅谈语意网Semantic Web词网与知识本体
  8. 小型板栗自动去皮(壳)机机械设计
  9. 你全会算我输,让人直呼卧槽的Python代码!
  10. android源码编译apk