0


JAVA实训项目之学生管理系统(JDBC+GUI)

本系统设计采用的是Java作为设计语言,MySQL作为数据库,简单来说整个系统涉及到Swing界面的开发、以及对于数据库的一些操作,查询、增加、删除等,通过上述的操作来完成相应的学生管理系统的基本功能。

因为时间和精力的原因(该项目完全由博主一人独立完成),外观巨丑无比,但功能都实现了。因为篇幅太长,总共有25个类,大概2600-2700行代码,所以博主分了两篇文章来写,本文写的是教师功能。

这是博主大一期末时候的实训项目,做的相当相当的简陋不喜勿喷。此外,可以借鉴其中功能实现的过程以及思路,但不建议抄袭哦。(由于演示时间过长,所以本文就不像学生功能那样放置演示过程了)

本文运用到的主要技术为:

GUI:java实现窗体、Swing。其实JAVA Swing的GUI目前企业中已经不用了,主要是一些学校和培训机构用来教导学生写一些游戏、小项目,练练手的

JDBC的全称是JAVA数据库连接(Java Database Connectivity)。它是一套用于执行SQL语句的Java API。应用程序可通过这套API连接到关系型数据库,并使用SQL语句完成对数据库中数据的新增、删除、修改和查询等操作。

实现的功能有:

用户登录功能:

1、可以选择学生或者教师身份登录

学生功能:

1、修改密码

2、查询成绩

3、查询学籍信息

4、查看课程信息

5、退出系统

教师功能:

1、添加用户

2、删除用户

3、修改密码

4、退出系统

5、添加成绩信息

6、删除成绩信息

7、修改成绩信息

8、查询成绩信息

9、添加学籍信息

10、删除学籍信息

11、修改学籍信息

12、查询学籍信息

13、添加课程信息

14、删除课程信息

15、修改课程信息

16、查询课程信息

涉及到的数据库表以及数据:

教师功能实现代码:

登录页面:

用GUI写出窗体和相关内容,通过JDBC连接数据库。然后通过获取的学生身份或者教师身份,遍历数据库中对应的表中是否有该账号,从而完成登录,并将其转到对应的身份所拥有的所有功能页面。

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import java.sql.*;
  5. public class 登录功能 {
  6. public static void main(String[] args) {
  7. new dl();
  8. }
  9. }
  10. class dl {
  11. public static String xh;//定义一个参数记录登录的账户
  12. public void dl(){
  13. }
  14. public static String getXh() {
  15. return xh;
  16. }
  17. public static void setXh(String xh) {
  18. dl.xh = xh;
  19. }
  20. JFrame jf;
  21. JLabel l1,l2,l3;
  22. JTextField f1;
  23. JPasswordField f2;
  24. JButton jb1,jb2;
  25. JCheckBox jc;
  26. String data;//存储学生或教师身份的选择
  27. public dl() {
  28. jf = new JFrame("系统登录窗口");
  29. jf.setSize(320,400);
  30. jf.setLocationRelativeTo(null);//设置窗口每次启动都显示在屏幕正中央
  31. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  32. jf.setLayout(null);
  33. Font font = new Font("仿宋", Font.BOLD, 20);//设置统一的字体,让代码更加整洁美观
  34. JComboBox<String> jcb=new JComboBox<>();
  35. jcb.addItem("身份");
  36. jcb.addItem("学生");
  37. jcb.addItem("教师");
  38. JTextField textField=new JTextField(20);
  39. jcb.setBounds(10,55,90,25);
  40. jcb.setFont(font);
  41. //为JComboBox下拉框组件注册动作监听器
  42. jcb.addActionListener(e -> {
  43. data=(String)jcb.getSelectedItem();
  44. });
  45. l3 = new JLabel("欢迎来到学生管理系统");
  46. l3.setBounds(55,10,500,40);
  47. l3.setFont(font);
  48. l1 = new JLabel("账 号:");
  49. l1.setBounds(10,100,100,40);
  50. l1.setFont(font);
  51. f1 = new JTextField(null,20);
  52. f1.setBounds(90,107,180,30);
  53. f1.setFont(font);
  54. l2 = new JLabel("密 码:");
  55. l2.setBounds(8,145,100,40);
  56. l2.setFont(font);
  57. f2=new JPasswordField(null,20);
  58. f2.setBounds(90,150,180,30);
  59. f2.setEchoChar('*');//设置密码的外显为*
  60. f2.setFont(font);
  61. jc=new JCheckBox("显示密码");
  62. jc.setBounds(230,250,80,40);
  63. jc.addItemListener(new ItemListener() {
  64. public void itemStateChanged(ItemEvent e) {
  65. if (e.getStateChange() == ItemEvent.SELECTED) {//被选中
  66. f2.setEchoChar((char) 0);
  67. } else {
  68. f2.setEchoChar('*');
  69. }
  70. }
  71. });
  72. ActionListener listener=new AbstractAction() {
  73. @Override
  74. public void actionPerformed(ActionEvent e) {
  75. }
  76. };
  77. jc.addActionListener(listener);
  78. jb1 = new JButton("登录");
  79. jb1.setBounds(30,200,80,40);
  80. //匿名内部类
  81. jb1.addMouseListener(new MouseAdapter() {
  82. public void mouseClicked(MouseEvent e) {
  83. Statement st=null;
  84. Connection con=null;
  85. ResultSet rs=null;
  86. try {
  87. //注册驱动
  88. Class.forName("com.mysql.cj.jdbc.Driver");
  89. //这里的3306/后跟的是数据库名
  90. //获取数据库连接
  91. String url="jdbc:mysql://localhost:3306/students?serverTimezone=GMT%2B8";
  92. //通过DriverManager完成注册
  93. con= DriverManager.getConnection(url,"root","20031112");
  94. //执行SQL语句
  95. String sql="select * from dl";//from 后跟表名
  96. st=con.createStatement();
  97. rs=st.executeQuery(sql);
  98. boolean flag=false;
  99. while(rs.next()){
  100. //如果输入的用户名和密码与数据库中的用户和对应的密码相同,则弹出“登录成功!”的窗口
  101. if(f1.getText().equals(rs.getString(1))&&f2.getText().equals(rs.getString(2))
  102. &&data.equals("学生")){//学生账户登录,转到学生能够拥有的功能的页面上
  103. JOptionPane.showMessageDialog(null, "登录成功!");
  104. dl.setXh(f1.getText());
  105. new student();
  106. flag=true;//登陆成功后将标记改为true方便确认
  107. jf.dispose();//关闭窗体,释放所有资源
  108. break;
  109. }
  110. if(f1.getText().equals(rs.getString(1))&&f2.getText().equals(rs.getString(2))
  111. &&data.equals("教师")){//教师账户登录,转到教师能够拥有的功能的页面上
  112. JOptionPane.showMessageDialog(null, "登录成功!");
  113. xh=f1.getText();
  114. new teacher();
  115. flag=true;//登陆成功后将标记改为true方便确认
  116. jf.dispose();//关闭窗体,释放所有资源
  117. break;
  118. }
  119. }
  120. if(flag==false){//如果标记为false,则表示用户名和密码在数据库中未找到,弹出“登录失败!请重新输入!”的窗口
  121. JOptionPane.showMessageDialog(null, "登录失败!请重新输入!");
  122. f1.setText(null);//清空账号栏
  123. f2.setText(null);//清空密码栏
  124. }
  125. } catch (ClassNotFoundException ex) {
  126. ex.printStackTrace();
  127. } catch (SQLException ex) {
  128. ex.printStackTrace();
  129. }
  130. }
  131. });
  132. jb1.setFont(font);
  133. jb2 = new JButton("退出");
  134. jb2.setBounds(150,200,80,40);
  135. //匿名内部类
  136. jb2.addMouseListener(new MouseAdapter() {
  137. //重写鼠标点击事件
  138. public void mouseClicked(MouseEvent e) {//如果点击了退出按钮,则弹出“退出成功!”的窗口
  139. JOptionPane.showMessageDialog(null, "退出成功!");
  140. //系统退出
  141. System.exit(0);
  142. }
  143. });
  144. jb2.setFont(font);
  145. //将这些按钮和文本等加入到窗体中
  146. jf.add(l1);
  147. jf.add(f1);
  148. jf.add(l2);
  149. jf.add(f2);
  150. jf.add(l3);
  151. jf.add(jb1);
  152. jf.add(jb2);
  153. jf.add(jc);
  154. jf.add(jcb);
  155. jf.setVisible(true);//让组件显示
  156. }
  157. }

教师主页面:

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.MouseAdapter;
  4. import java.awt.event.MouseEvent;
  5. public class 教师页面 {
  6. public static void main(String[] args) {
  7. new teacher();
  8. }
  9. }
  10. class teacher{
  11. JFrame jf;
  12. JLabel l1;
  13. JButton jb1, jb2,jb3,jb4,jb5,jb6;
  14. public teacher() {
  15. jf = new JFrame("教师管理系统");
  16. jf.setSize(260, 400);//设置窗体大小
  17. jf.setLocationRelativeTo(null);//设置窗口每次启动都显示在屏幕正中央
  18. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  19. jf.setLayout(null);
  20. Font font = new Font("仿宋", Font.BOLD, 20);//设置统一的字体,让代码更加整洁美观
  21. l1 = new JLabel("请选择你需要进行的操作");
  22. l1.setBounds(10,10,500,40);
  23. l1.setFont(font);
  24. jb1 = new JButton("系统管理");
  25. jb1.setBounds(45, 50, 150, 30);
  26. jb1.setFont(font);
  27. //匿名内部类
  28. jb1.addMouseListener(new MouseAdapter() {
  29. public void mouseClicked(MouseEvent e) {
  30. //跳转到教师的系统管理页面
  31. new txt();
  32. jf.dispose();//关闭窗体,释放所有资源
  33. }
  34. });
  35. jb2=new JButton("成绩管理");
  36. jb2.setBounds(45,100,150,30);
  37. jb2.setFont(font);
  38. jb2.addMouseListener(new MouseAdapter() {
  39. @Override
  40. public void mouseClicked(MouseEvent e) {
  41. //跳转到教师的成绩管理页面
  42. new tcj();
  43. jf.dispose();//关闭窗体,释放所有资源
  44. }
  45. });
  46. jb3=new JButton("学籍管理");
  47. jb3.setBounds(45,150,150,30);
  48. jb3.setFont(font);
  49. jb3.addMouseListener(new MouseAdapter() {
  50. @Override
  51. public void mouseClicked(MouseEvent e) {
  52. //跳转到教师的学籍管理页面
  53. new txj();
  54. jf.dispose();//关闭窗体,释放所有资源
  55. }
  56. });
  57. jb4=new JButton("课程管理");
  58. jb4.setBounds(45,200,150,30);
  59. jb4.setFont(font);
  60. jb4.addMouseListener(new MouseAdapter() {
  61. @Override
  62. public void mouseClicked(MouseEvent e) {
  63. //跳转到教师课程管理页面
  64. new tkc();
  65. jf.dispose();//关闭窗体,释放所有资源
  66. }
  67. });
  68. jb5=new JButton("返回");
  69. jb5.setBounds(17,250,80,30);
  70. jb5.setFont(font);
  71. jb5.addMouseListener(new MouseAdapter() {
  72. @Override
  73. public void mouseClicked(MouseEvent e) {
  74. //返回登录界面
  75. new dl();
  76. jf.dispose();//关闭窗体,释放所有资源
  77. }
  78. });
  79. jb6 = new JButton("退出");
  80. jb6.setBounds(150, 250, 80, 30);
  81. //匿名内部类
  82. jb6.addMouseListener(new MouseAdapter() {
  83. public void mouseClicked(MouseEvent e) {
  84. JOptionPane.showMessageDialog(null, "退出成功!");
  85. //系统退出
  86. System.exit(0);
  87. }
  88. });
  89. jb6.setFont(font);
  90. //将这些按钮和文本等加入到窗体中
  91. jf.add(l1);
  92. jf.add(jb1);
  93. jf.add(jb2);
  94. jf.add(jb3);
  95. jf.add(jb4);
  96. jf.add(jb5);
  97. jf.add(jb6);
  98. jf.setVisible(true);//让组件显示
  99. }
  100. }

系统管理:

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.ItemEvent;
  4. import java.awt.event.ItemListener;
  5. import java.awt.event.MouseAdapter;
  6. import java.awt.event.MouseEvent;
  7. import java.sql.Connection;
  8. import java.sql.DriverManager;
  9. import java.sql.PreparedStatement;
  10. import java.sql.SQLException;
  11. public class 教师系统管理 {
  12. public static void main(String[] args) {
  13. new txt();
  14. }
  15. }
  16. class txt{
  17. JFrame jf;
  18. JLabel l1,l2,l3;
  19. JTextField f1;
  20. JPasswordField f2,f3;
  21. JButton jb1,jb2,jb3,jb4,jb5;
  22. JCheckBox jc;
  23. public txt() {
  24. jf = new JFrame("系统管理");
  25. jf.setSize(320,300);//设置窗体大小
  26. jf.setLocationRelativeTo(null);//设置窗口每次启动都显示在屏幕正中央
  27. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  28. jf.setLayout(null);
  29. Font font = new Font("仿宋", Font.BOLD, 20);//设置统一的字体,让代码更加整洁美观
  30. l1 = new JLabel("学号:");
  31. l1.setBounds(10,10,100,40);
  32. l1.setFont(font);
  33. f1 = new JTextField(null,20);
  34. f1.setBounds(90,15,180,30);
  35. f1.setFont(font);
  36. l2 = new JLabel("新密码:");
  37. l2.setBounds(8, 50, 100, 40);
  38. l2.setFont(font);
  39. f2 = new JPasswordField(null, 20);
  40. f2.setBounds(90, 55, 180, 30);
  41. f2.setEchoChar('*');//设置密码的外显为*
  42. f2.setFont(font);
  43. l3 = new JLabel("确认密码:");
  44. l3.setBounds(8, 88, 130, 40);
  45. l3.setFont(font);
  46. f3 = new JPasswordField(null, 20);
  47. f3.setBounds(120, 95, 160, 30);
  48. f3.setEchoChar('*');//设置密码的外显为*
  49. jc=new JCheckBox("显示密码");//创建一个复选按钮
  50. jc.setBounds(230,210,80,40);
  51. jc.addItemListener(new ItemListener() {
  52. public void itemStateChanged(ItemEvent e) {
  53. if (e.getStateChange() == ItemEvent.SELECTED) {//被选中
  54. f2.setEchoChar((char) 0);//显示原本的数据
  55. f3.setEchoChar((char)0);//显示原本的数据
  56. } else {
  57. f2.setEchoChar('*');//设置密码的外显为*
  58. f3.setEchoChar('*');//设置密码的外显为*
  59. }
  60. }
  61. });
  62. f3.setFont(font);
  63. jb1 = new JButton("修改密码");
  64. jb1.setBounds(15, 130, 120, 30);
  65. //匿名内部类
  66. jb1.addMouseListener(new MouseAdapter() {
  67. public void mouseClicked(MouseEvent e) {
  68. PreparedStatement ps = null;//PreparedStatement==>表示预编译的SQL语句的对象。
  69. // SQL语句已预编译并存储在PreparedStatement对象中。
  70. Connection con = null;//Connection==>与特定数据库的连接
  71. try {
  72. //注册驱动
  73. Class.forName("com.mysql.cj.jdbc.Driver");
  74. //这里的3306/后跟的是数据库名
  75. //获取数据库连接
  76. String url = "jdbc:mysql://localhost:3306/students?serverTimezone=GMT%2B8";
  77. //通过DriverManager完成注册
  78. con = DriverManager.getConnection(url, "root", "20031112");
  79. //执行SQL语句
  80. String sql = "update dl set password=? where studentnumber=?";
  81. ps = con.prepareStatement(sql);
  82. if(f1.getText().length()!=0) {
  83. ps.setString(2, f1.getText());
  84. }else{
  85. JOptionPane.showMessageDialog(null, "学号不能为空!");//弹出窗口
  86. }
  87. if(f2.getText().length()!=0){
  88. //注:这里的所有getText()都不能写成!=null
  89. ps.setString(1, f2.getText());
  90. }else{
  91. JOptionPane.showMessageDialog(null, "新密码不能为空!");//弹出窗口
  92. }
  93. } catch (ClassNotFoundException ex) {
  94. ex.printStackTrace();
  95. } catch (SQLException ex) {
  96. ex.printStackTrace();
  97. }
  98. if (new String(f2.getPassword()).equals(new String(f3.getPassword()))) {//如果新密码与确认密码一致
  99. if (new String(f2.getPassword()).equals(new String(f3.getPassword()))&&
  100. f1.getText().length()!=0&&f2.getText().length()!=0) {//如果新密码与确认密码一致,学号和密码不为空,则修改成功
  101. JOptionPane.showMessageDialog(null, "修改成功!");
  102. //修改成功后跳转回教师页面
  103. new teacher();
  104. jf.dispose();//关闭窗体,释放所有资源
  105. try {
  106. int i = ps.executeUpdate();//将注册的账户存储到数据库中
  107. } catch (SQLException ex) {
  108. ex.printStackTrace();
  109. }
  110. }
  111. } else {
  112. JOptionPane.showMessageDialog(null, "修改失败!新密码与确认密码不一致!");
  113. f2.setText(null);//清空新密码
  114. f3.setText(null);//清空确认密码
  115. }
  116. }
  117. });
  118. jb1.setFont(font);
  119. jb2 = new JButton("退出");
  120. jb2.setBounds(180, 170, 80, 40);
  121. //匿名内部类
  122. jb2.addMouseListener(new MouseAdapter() {
  123. public void mouseClicked(MouseEvent e) {
  124. JOptionPane.showMessageDialog(null, "退出成功!");
  125. //系统退出
  126. System.exit(0);
  127. }
  128. });
  129. jb3=new JButton("返回");
  130. jb3.setBounds(30,170,80,40);
  131. jb3.setFont(font);
  132. jb3.addMouseListener(new MouseAdapter() {
  133. @Override
  134. public void mouseClicked(MouseEvent e) {
  135. //返回教师主页面
  136. new teacher();
  137. jf.dispose();//关闭窗体,释放所有资源
  138. }
  139. });
  140. jb2.setFont(font);
  141. jb4=new JButton("添加用户");
  142. jb4.setBounds(165, 130, 120, 30);
  143. jb4.addMouseListener(new MouseAdapter() {
  144. @Override
  145. public void mouseClicked(MouseEvent e) {
  146. //转到注册功能页面
  147. new zc();
  148. jf.dispose();//关闭窗体,释放所有资源
  149. }
  150. });
  151. jb4.setFont(font);
  152. jb5 = new JButton("删除用户");
  153. jb5.setBounds(85, 220, 120, 30);
  154. jb5.setFont(font);
  155. jb5.addMouseListener(new MouseAdapter() {
  156. @Override
  157. public void mouseClicked(MouseEvent e) {
  158. //转到删除用户页面
  159. new scyh();
  160. jf.dispose();//关闭窗体,释放所有资源
  161. }
  162. });
  163. //将这些按钮和文本等加入到窗体中
  164. jf.add(l1);
  165. jf.add(f1);
  166. jf.add(l2);
  167. jf.add(f2);
  168. jf.add(l3);
  169. jf.add(f3);
  170. jf.add(jc);
  171. jf.add(jb1);
  172. jf.add(jb2);
  173. jf.add(jb3);
  174. jf.add(jb4);
  175. jf.add(jb5);
  176. jf.setVisible(true);//让组件显示
  177. }
  178. }

添加用户功能:

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import java.sql.*;
  5. public class 注册功能 {
  6. public static void main(String[] args) {
  7. new zc();
  8. }
  9. }
  10. class zc{
  11. JFrame jf;
  12. JLabel l1,l2,l3;
  13. JTextField f1;
  14. JPasswordField f2,f3;
  15. JButton jb1,jb2,jb3;
  16. JCheckBox jc;
  17. public zc() {
  18. jf = new JFrame("系统注册窗口");
  19. jf.setSize(320,300);//设置窗体大小
  20. jf.setLocationRelativeTo(null);//设置窗口每次启动都显示在屏幕正中央
  21. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  22. jf.setLayout(null);
  23. Font font = new Font("仿宋", Font.BOLD, 20);//设置统一的字体,让代码更加整洁美观
  24. l1 = new JLabel("学号:");
  25. l1.setBounds(10,10,100,40);
  26. l1.setFont(font);
  27. f1 = new JTextField(null,20);
  28. f1.setBounds(90,15,180,30);
  29. f1.setFont(font);
  30. l2 = new JLabel("密 码:");
  31. l2.setBounds(8, 50, 100, 40);
  32. l2.setFont(font);
  33. f2 = new JPasswordField(null, 20);
  34. f2.setBounds(90, 55, 180, 30);
  35. f2.setEchoChar('*');//设置密码的外显为*
  36. f2.setFont(font);
  37. l3 = new JLabel("确认密码:");
  38. l3.setBounds(8, 88, 130, 40);
  39. l3.setFont(font);
  40. f3 = new JPasswordField(null, 20);
  41. f3.setBounds(120, 95, 160, 30);
  42. f3.setEchoChar('*');//设置密码的外显为*
  43. jc=new JCheckBox("显示密码");//创建一个复选按钮
  44. jc.setBounds(230,140,80,40);
  45. jc.addItemListener(new ItemListener() {
  46. public void itemStateChanged(ItemEvent e) {
  47. if (e.getStateChange() == ItemEvent.SELECTED) {//被选中
  48. f2.setEchoChar((char) 0);//显示原本的数据
  49. f3.setEchoChar((char)0);//显示原本的数据
  50. } else {
  51. f2.setEchoChar('*');//设置密码的外显为*
  52. f3.setEchoChar('*');//设置密码的外显为*
  53. }
  54. }
  55. });
  56. f3.setFont(font);
  57. jb1 = new JButton("注册");
  58. jb1.setBounds(100, 140, 80, 40);
  59. //匿名内部类
  60. jb1.addMouseListener(new MouseAdapter() {
  61. public void mouseClicked(MouseEvent e) {
  62. PreparedStatement ps = null;//PreparedStatement==>表示预编译的SQL语句的对象。
  63. // SQL语句已预编译并存储在PreparedStatement对象中。
  64. Connection con = null;//Connection==>与特定数据库的连接
  65. try {
  66. //注册驱动
  67. Class.forName("com.mysql.cj.jdbc.Driver");
  68. //这里的3306/后跟的是数据库名
  69. //获取数据库连接
  70. String url = "jdbc:mysql://localhost:3306/students?serverTimezone=GMT%2B8";
  71. //通过DriverManager完成注册
  72. con = DriverManager.getConnection(url, "root", "20031112");
  73. //执行SQL语句
  74. String sql = "insert into dl(studentnumber,password) values(?,?)";
  75. ps = con.prepareStatement(sql);
  76. if(f1.getText().length()!=0){
  77. //注:这里的所有getText()都不能写成!=null
  78. ps.setString(1, f1.getText());
  79. }else{
  80. JOptionPane.showMessageDialog(null, "学号不能为空!");//弹出窗口
  81. }
  82. if(f2.getText().length()!=0) {
  83. ps.setString(2, f2.getText());
  84. }else{
  85. JOptionPane.showMessageDialog(null, "密码不能为空!");
  86. }
  87. } catch (ClassNotFoundException ex) {
  88. ex.printStackTrace();
  89. } catch (SQLException ex) {
  90. ex.printStackTrace();
  91. }
  92. if (new String(f2.getPassword()).equals(new String(f3.getPassword()))) {//如果密码与确认密码一致
  93. if (new String(f2.getPassword()).equals(new String(f3.getPassword()))&&
  94. f1.getText().length()!=0&&f2.getText().length()!=0) {//如果密码与确认密码一致,学号和密码不为空,则注册成功
  95. JOptionPane.showMessageDialog(null, "注册成功!");
  96. f1.setText(null);
  97. f2.setText(null);
  98. f3.setText(null);
  99. try {
  100. int i = ps.executeUpdate();//将注册的账户存储到数据库中
  101. } catch (SQLException ex) {
  102. ex.printStackTrace();
  103. }
  104. }
  105. } else {
  106. JOptionPane.showMessageDialog(null, "注册失败!密码与确认密码不一致!");
  107. f2.setText(null);//清空密码
  108. f3.setText(null);//清空确认密码
  109. }
  110. }
  111. });
  112. jb1.setFont(font);
  113. jb2 = new JButton("退出");
  114. jb2.setBounds(180, 200, 80, 40);
  115. //匿名内部类
  116. jb2.addMouseListener(new MouseAdapter() {
  117. public void mouseClicked(MouseEvent e) {
  118. JOptionPane.showMessageDialog(null, "退出成功!");
  119. //系统退出
  120. System.exit(0);
  121. }
  122. });
  123. jb2.setFont(font);
  124. jb3=new JButton("返回");
  125. jb3.setBounds(40,200,80,40);
  126. jb3.setFont(font);
  127. jb3.addMouseListener(new MouseAdapter() {
  128. @Override
  129. public void mouseClicked(MouseEvent e) {
  130. //跳转到教师的系统管理页面
  131. new txt();
  132. jf.dispose();//关闭窗体,释放所有资源
  133. }
  134. });
  135. //将这些按钮和文本等加入到窗体中
  136. jf.add(l1);
  137. jf.add(f1);
  138. jf.add(l2);
  139. jf.add(f2);
  140. jf.add(l3);
  141. jf.add(f3);
  142. jf.add(jc);
  143. jf.add(jb1);
  144. jf.add(jb2);
  145. jf.add(jb3);
  146. jf.setVisible(true);//让组件显示
  147. }
  148. }

删除用户功能:

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.MouseAdapter;
  4. import java.awt.event.MouseEvent;
  5. import java.sql.Connection;
  6. import java.sql.DriverManager;
  7. import java.sql.PreparedStatement;
  8. import java.sql.SQLException;
  9. public class 删除用户功能 {
  10. public static void main(String[] args) {
  11. new scyh();
  12. }
  13. }
  14. class scyh{
  15. JFrame jf;
  16. JLabel l1;
  17. JTextField f1;
  18. JButton jb1,jb2,jb3;
  19. public scyh(){
  20. jf = new JFrame("删除用户");
  21. jf.setSize(320,280);//设置窗体大小
  22. jf.setLocationRelativeTo(null);//设置窗口每次启动都显示在屏幕正中央
  23. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  24. jf.setLayout(null);
  25. Font font = new Font("仿宋", Font.BOLD, 20);//设置统一的字体,让代码更加整洁美观
  26. l1 = new JLabel("学 号:");
  27. l1.setBounds(10,10,100,40);
  28. l1.setFont(font);
  29. f1 = new JTextField(null,20);
  30. f1.setBounds(90,15,180,30);
  31. f1.setFont(font);
  32. jb1 = new JButton("删除用户");
  33. jb1.setBounds(75, 75, 140, 40);
  34. jb1.setFont(font);
  35. jb1.addMouseListener(new MouseAdapter() {
  36. @Override
  37. public void mouseClicked(MouseEvent e) {
  38. PreparedStatement ps = null;//PreparedStatement==>表示预编译的SQL语句的对象。
  39. // SQL语句已预编译并存储在PreparedStatement对象中。
  40. Connection con = null;//Connection==>与特定数据库的连接
  41. try {
  42. //注册驱动
  43. Class.forName("com.mysql.cj.jdbc.Driver");
  44. //这里的3306/后跟的是数据库名
  45. //获取数据库连接
  46. String url = "jdbc:mysql://localhost:3306/students?serverTimezone=GMT%2B8";
  47. //通过DriverManager完成注册
  48. con = DriverManager.getConnection(url, "root", "20031112");
  49. //执行SQL语句
  50. String sql = "delete from dl where studentnumber=?";
  51. ps = con.prepareStatement(sql);
  52. if(f1.getText().length()!=0){
  53. ps.setString(1,f1.getText());
  54. }else{
  55. JOptionPane.showMessageDialog(null, "学号不能为空!");
  56. }
  57. if(f1.getText().length()!=0){
  58. JOptionPane.showMessageDialog(null, "删除成功!");
  59. f1.setText(null);
  60. int i = ps.executeUpdate();
  61. }else{
  62. JOptionPane.showMessageDialog(null, "删除失败!");
  63. }
  64. } catch (ClassNotFoundException ex) {
  65. ex.printStackTrace();
  66. } catch (SQLException ex) {
  67. ex.printStackTrace();
  68. }
  69. }
  70. });
  71. jb2 = new JButton("返回");
  72. jb2.setBounds(35, 140, 80, 40);
  73. jb2.setFont(font);
  74. jb2.addMouseListener(new MouseAdapter() {
  75. @Override
  76. public void mouseClicked(MouseEvent e) {
  77. //返回到教师系统管理页面
  78. new txt();
  79. jf.dispose();//关闭窗体,释放所有资源
  80. }
  81. });
  82. jb3 = new JButton("退出");
  83. jb3.setBounds(190, 140, 80, 40);
  84. jb3.setFont(font);
  85. jb3.addMouseListener(new MouseAdapter() {
  86. public void mouseClicked(MouseEvent e) {
  87. JOptionPane.showMessageDialog(null, "退出成功!");
  88. //系统退出
  89. System.exit(0);
  90. }
  91. });
  92. //将这些按钮和文本等加入到窗体中
  93. jf.add(l1);
  94. jf.add(f1);
  95. jf.add(jb1);
  96. jf.add(jb2);
  97. jf.add(jb3);
  98. jf.setVisible(true);//让组件显示
  99. }
  100. }

成绩管理:

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.MouseAdapter;
  4. import java.awt.event.MouseEvent;
  5. public class 教师成绩管理 {
  6. public static void main(String[] args) {
  7. new tcj();
  8. }
  9. }
  10. class tcj{
  11. JFrame jf;
  12. JButton jb1,jb2,jb3,jb4,jb5,jb6;
  13. public tcj(){
  14. jf = new JFrame("成绩管理");
  15. jf.setSize(320,350);//设置窗体大小
  16. jf.setLocationRelativeTo(null);//设置窗口每次启动都显示在屏幕正中央
  17. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  18. jf.setLayout(null);
  19. Font font = new Font("仿宋", Font.BOLD, 20);//设置统一的字体,让代码更加整洁美观
  20. jb1 = new JButton("添加成绩信息");
  21. jb1.setBounds(55, 20, 200, 40);
  22. jb1.setFont(font);
  23. jb1.addMouseListener(new MouseAdapter() {
  24. @Override
  25. public void mouseClicked(MouseEvent e) {
  26. //跳转到教师添加成绩页面
  27. new ttjcj();
  28. jf.dispose();//关闭窗体,释放所有资源
  29. }
  30. });
  31. jb2 = new JButton("修改成绩信息");
  32. jb2.setBounds(55, 75, 200, 40);
  33. jb2.setFont(font);
  34. jb2.addMouseListener(new MouseAdapter() {
  35. @Override
  36. public void mouseClicked(MouseEvent e) {
  37. //跳转到教师修改成绩页面
  38. new txgcj();
  39. jf.dispose();//关闭窗体,释放所有资源
  40. }
  41. });
  42. jb3 = new JButton("查询成绩信息");
  43. jb3.setBounds(55, 125, 200, 40);
  44. jb3.setFont(font);
  45. jb3.addMouseListener(new MouseAdapter() {
  46. @Override
  47. public void mouseClicked(MouseEvent e) {
  48. //跳转到教师查询成绩功能页面
  49. new tcx();
  50. jf.dispose();//关闭窗体,释放所有资源
  51. }
  52. });
  53. jb6=new JButton("删除成绩信息");
  54. jb6.setBounds(55,175,200,40);
  55. jb6.setFont(font);
  56. jb6.addMouseListener(new MouseAdapter() {
  57. @Override
  58. public void mouseClicked(MouseEvent e) {
  59. //跳转到教师删除成绩功能页面
  60. new sccj();
  61. jf.dispose();//关闭窗体,释放所有资源
  62. }
  63. });
  64. jb4 = new JButton("返回");
  65. jb4.setBounds(30, 245, 80, 40);
  66. jb4.setFont(font);
  67. jb4.addMouseListener(new MouseAdapter() {
  68. @Override
  69. public void mouseClicked(MouseEvent e) {
  70. //返回教师主页面
  71. new teacher();
  72. jf.dispose();//关闭窗体,释放所有资源
  73. }
  74. });
  75. jb5 = new JButton("退出");
  76. jb5.setBounds(200, 245, 80, 40);
  77. jb5.setFont(font);
  78. jb5.addMouseListener(new MouseAdapter() {
  79. @Override
  80. public void mouseClicked(MouseEvent e) {
  81. JOptionPane.showMessageDialog(null, "退出成功!");
  82. //系统退出
  83. System.exit(0);
  84. }
  85. });
  86. //将这些按钮和文本等加入到窗体中
  87. jf.add(jb1);
  88. jf.add(jb2);
  89. jf.add(jb3);
  90. jf.add(jb4);
  91. jf.add(jb5);
  92. jf.add(jb6);
  93. jf.setVisible(true);//让组件显示
  94. }
  95. }

添加成绩功能:

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.MouseAdapter;
  4. import java.awt.event.MouseEvent;
  5. import java.sql.Connection;
  6. import java.sql.DriverManager;
  7. import java.sql.PreparedStatement;
  8. import java.sql.SQLException;
  9. public class 添加成绩功能 {
  10. public static void main(String[] args) {
  11. new ttjcj();
  12. }
  13. }
  14. class ttjcj{
  15. JFrame jf;
  16. JLabel l1,l2,l3;
  17. JTextField f1,f2,f3;
  18. JButton jb1,jb2,jb3;
  19. public ttjcj(){
  20. jf = new JFrame("添加成绩");
  21. jf.setSize(320,300);//设置窗体大小
  22. jf.setLocationRelativeTo(null);//设置窗口每次启动都显示在屏幕正中央
  23. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  24. jf.setLayout(null);
  25. Font font = new Font("仿宋", Font.BOLD, 20);//设置统一的字体,让代码更加整洁美观
  26. l1 = new JLabel("学 号:");
  27. l1.setBounds(10,10,100,40);
  28. l1.setFont(font);
  29. f1 = new JTextField(null,20);
  30. f1.setBounds(90,15,180,30);
  31. f1.setFont(font);
  32. l2 = new JLabel("课程名:");
  33. l2.setBounds(8, 50, 100, 40);
  34. l2.setFont(font);
  35. f2=new JTextField(null,20);
  36. f2.setBounds(90,55,180,30);
  37. f2.setFont(font);
  38. l3 = new JLabel("成 绩:");
  39. l3.setBounds(8, 90, 100, 40);
  40. l3.setFont(font);
  41. f3=new JTextField(null,20);
  42. f3.setBounds(90,95,180,30);
  43. f3.setFont(font);
  44. jb1 = new JButton("添加成绩信息");
  45. jb1.setBounds(65, 140, 180, 40);
  46. jb1.setFont(font);
  47. jb1.addMouseListener(new MouseAdapter() {
  48. @Override
  49. public void mouseClicked(MouseEvent e) {
  50. PreparedStatement ps = null;//PreparedStatement==>表示预编译的SQL语句的对象。
  51. // SQL语句已预编译并存储在PreparedStatement对象中。
  52. Connection con = null;//Connection==>与特定数据库的连接
  53. try {
  54. //注册驱动
  55. Class.forName("com.mysql.cj.jdbc.Driver");
  56. //这里的3306/后跟的是数据库名
  57. //获取数据库连接
  58. String url = "jdbc:mysql://localhost:3306/students?serverTimezone=GMT%2B8";
  59. //通过DriverManager完成注册
  60. con = DriverManager.getConnection(url, "root", "20031112");
  61. //执行SQL语句
  62. String sql = "insert into chengji(studentnumber,course,cj) values(?,?,?)";
  63. ps = con.prepareStatement(sql);
  64. if (f1.getText().length() != 0) {
  65. ps.setString(1, f1.getText());
  66. } else {
  67. JOptionPane.showMessageDialog(null, "学号不能为空!");//弹出窗口
  68. }
  69. if (f2.getText().length() != 0) {
  70. ps.setString(2, f2.getText());
  71. } else {
  72. JOptionPane.showMessageDialog(null, "课程名不能为空!");//弹出窗口
  73. }
  74. if (f3.getText().length() != 0) {
  75. ps.setString(3, f3.getText());
  76. } else {
  77. JOptionPane.showMessageDialog(null, "成绩不能为空!");//弹出窗口
  78. }
  79. } catch (ClassNotFoundException ex) {
  80. ex.printStackTrace();
  81. } catch (SQLException ex) {
  82. ex.printStackTrace();
  83. }
  84. if (f1.getText().length() != 0 && f2.getText().length() != 0 && f3.getText().length() != 0) {//如果学号、课程名、成绩信息都填写了,便添加成功
  85. JOptionPane.showMessageDialog(null, "添加成功!");
  86. f1.setText(null);
  87. f2.setText(null);
  88. f3.setText(null);
  89. try {
  90. int i = ps.executeUpdate();//将数据存储到数据库中
  91. } catch (SQLException ex) {
  92. ex.printStackTrace();
  93. }
  94. }
  95. }
  96. });
  97. jb2 = new JButton("返回");
  98. jb2.setBounds(35, 200, 80, 40);
  99. jb2.setFont(font);
  100. jb2.addMouseListener(new MouseAdapter() {
  101. @Override
  102. public void mouseClicked(MouseEvent e) {
  103. //返回到教师成绩管理页面
  104. new tcj();
  105. jf.dispose();//关闭窗体,释放所有资源
  106. }
  107. });
  108. jb3 = new JButton("退出");
  109. jb3.setBounds(190, 200, 80, 40);
  110. jb3.setFont(font);
  111. jb3.addMouseListener(new MouseAdapter() {
  112. public void mouseClicked(MouseEvent e) {
  113. JOptionPane.showMessageDialog(null, "退出成功!");
  114. //系统退出
  115. System.exit(0);
  116. }
  117. });
  118. //将这些按钮和文本等加入到窗体中
  119. jf.add(l1);
  120. jf.add(f1);
  121. jf.add(l2);
  122. jf.add(f2);
  123. jf.add(l3);
  124. jf.add(f3);
  125. jf.add(jb1);
  126. jf.add(jb2);
  127. jf.add(jb3);
  128. jf.setVisible(true);//让组件显示
  129. }
  130. }

修改成绩功能:

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.MouseAdapter;
  4. import java.awt.event.MouseEvent;
  5. import java.sql.*;
  6. public class 修改成绩功能 {
  7. public static void main(String[] args) {
  8. new txgcj();
  9. }
  10. }
  11. class txgcj{
  12. JFrame jf;
  13. JLabel l1,l2,l3;
  14. JTextField f1,f2,f3;
  15. JButton jb1,jb2,jb3;
  16. public txgcj(){
  17. jf = new JFrame("修改成绩");
  18. jf.setSize(320,280);//设置窗体大小
  19. jf.setLocationRelativeTo(null);//设置窗口每次启动都显示在屏幕正中央
  20. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  21. jf.setLayout(null);
  22. Font font = new Font("仿宋", Font.BOLD, 20);//设置统一的字体,让代码更加整洁美观
  23. l1 = new JLabel("学 号:");
  24. l1.setBounds(10,10,100,40);
  25. l1.setFont(font);
  26. f1 = new JTextField(null,20);
  27. f1.setBounds(90,15,180,30);
  28. f1.setFont(font);
  29. l2 = new JLabel("课程名:");
  30. l2.setBounds(8, 50, 100, 40);
  31. l2.setFont(font);
  32. f2=new JTextField(null,20);
  33. f2.setBounds(90,55,180,30);
  34. f2.setFont(font);
  35. l3=new JLabel("成 绩:");
  36. l3.setBounds(10,90,100,40);
  37. l3.setFont(font);
  38. f3=new JTextField(null,20);
  39. f3.setBounds(90,95,180,30);
  40. f3.setFont(font);
  41. jb1 = new JButton("修改成绩信息");
  42. jb1.setBounds(65, 140, 180, 40);
  43. jb1.setFont(font);
  44. jb1.addMouseListener(new MouseAdapter() {
  45. @Override
  46. public void mouseClicked(MouseEvent e) {
  47. PreparedStatement ps = null;//PreparedStatement==>表示预编译的SQL语句的对象。
  48. // SQL语句已预编译并存储在PreparedStatement对象中。
  49. Connection con = null;//Connection==>与特定数据库的连接
  50. Statement st=null;
  51. ResultSet rs=null;
  52. try {
  53. //注册驱动
  54. Class.forName("com.mysql.cj.jdbc.Driver");
  55. //这里的3306/后跟的是数据库名
  56. //获取数据库连接
  57. String url = "jdbc:mysql://localhost:3306/students?serverTimezone=GMT%2B8";
  58. //通过DriverManager完成注册
  59. con = DriverManager.getConnection(url, "root", "20031112");
  60. //执行SQL语句
  61. String sql2="update chengji set cj=? where studentnumber=? and course=?";
  62. ps = con.prepareStatement(sql2);
  63. String sql = "select * from chengji";
  64. st=con.createStatement();
  65. rs=st.executeQuery(sql);
  66. int flag=0;
  67. while (rs.next()){
  68. //根据学号和课程名修改成绩
  69. if(rs.getString("studentnumber").equals(f1.getText())&&rs.getString("course").equals(f2.getText())){
  70. ps.setString(1,f3.getText());
  71. ps.setString(2,f1.getText());
  72. ps.setString(3,f2.getText());
  73. flag++;
  74. }
  75. }
  76. if(flag==0){
  77. JOptionPane.showMessageDialog(null, "没有该学生和课程!");
  78. }
  79. if(f1.getText().length()!=0&&f2.getText().length()!=0&&f3.getText().length()!=0 && flag!=0){
  80. //如果学号、课程名、成绩都填写了,则修改成功
  81. JOptionPane.showMessageDialog(null, "修改成功!");
  82. f1.setText(null);
  83. f2.setText(null);
  84. f3.setText(null);
  85. try {
  86. int i = ps.executeUpdate();//将数据存储到数据库中
  87. } catch (SQLException ex) {
  88. ex.printStackTrace();
  89. }
  90. }else{
  91. JOptionPane.showMessageDialog(null, "修改失败!");
  92. }
  93. } catch (ClassNotFoundException ex) {
  94. ex.printStackTrace();
  95. } catch (SQLException ex) {
  96. ex.printStackTrace();
  97. }
  98. }
  99. });
  100. jb2 = new JButton("返回");
  101. jb2.setBounds(35, 190, 80, 40);
  102. jb2.setFont(font);
  103. jb2.addMouseListener(new MouseAdapter() {
  104. @Override
  105. public void mouseClicked(MouseEvent e) {
  106. //返回到教师成绩管理页面
  107. new tcj();
  108. jf.dispose();//关闭窗体,释放所有资源
  109. }
  110. });
  111. jb3 = new JButton("退出");
  112. jb3.setBounds(190, 190, 80, 40);
  113. jb3.setFont(font);
  114. jb3.addMouseListener(new MouseAdapter() {
  115. public void mouseClicked(MouseEvent e) {
  116. JOptionPane.showMessageDialog(null, "退出成功!");
  117. //系统退出
  118. System.exit(0);
  119. }
  120. });
  121. //将这些按钮和文本等加入到窗体中
  122. jf.add(l1);
  123. jf.add(f1);
  124. jf.add(l2);
  125. jf.add(f2);
  126. jf.add(l3);
  127. jf.add(f3);
  128. jf.add(jb1);
  129. jf.add(jb2);
  130. jf.add(jb3);
  131. jf.setVisible(true);//让组件显示
  132. }
  133. }

查询成绩功能:

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.MouseAdapter;
  4. import java.awt.event.MouseEvent;
  5. import java.sql.*;
  6. public class 教师查询成绩功能 {
  7. public static void main(String[] args) {
  8. new tcx();
  9. }
  10. }
  11. class tcx{
  12. //文本域
  13. private JTextArea jta;
  14. //滚动条
  15. private JScrollPane jsp;
  16. //面板
  17. private JPanel jp;
  18. //按钮
  19. private JButton jb,jb2,jb3;
  20. //窗体
  21. JFrame jf;
  22. public tcx(){
  23. //初始化组件
  24. jta=new JTextArea();
  25. jf = new JFrame("查询成绩");
  26. //将文本域添加到滚动条中,实现滚动效果
  27. jsp=new JScrollPane(jta);
  28. //面板
  29. jp=new JPanel();
  30. jb=new JButton("查询");
  31. //将文本框和按钮添加到面板中
  32. jb2=new JButton("返回");
  33. jb2.addMouseListener(new MouseAdapter() {
  34. @Override
  35. public void mouseClicked(MouseEvent e) {
  36. //跳转回教师成绩管理页面
  37. new tcj();
  38. jf.dispose();//关闭窗体,释放所有资源
  39. }
  40. });
  41. jb3=new JButton("退出");
  42. jb3.addMouseListener(new MouseAdapter() {
  43. @Override
  44. public void mouseClicked(MouseEvent e) {
  45. JOptionPane.showMessageDialog(null, "退出成功!");
  46. //系统退出
  47. System.exit(0);
  48. }
  49. });
  50. jp.add(jb);
  51. jp.add(jb2);
  52. jp.add(jb3);
  53. //将滚动条和面板都添加到窗体中
  54. jf.add(jsp, BorderLayout.CENTER);
  55. jf.add(jp,BorderLayout.SOUTH);
  56. jf.setSize(400,400);
  57. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  58. jf.setLocationRelativeTo(null);
  59. jf.setVisible(true);//设置组件显示
  60. //给查询按钮绑定一个监听点击事件
  61. jb.addMouseListener(new MouseAdapter() {
  62. @Override
  63. public void mouseClicked(MouseEvent e) {
  64. Statement st=null;
  65. Connection con=null;
  66. ResultSet rs=null;
  67. try {
  68. //注册驱动
  69. Class.forName("com.mysql.cj.jdbc.Driver");
  70. //这里的3306/后跟的是数据库名
  71. //获取数据库连接
  72. String url = "jdbc:mysql://localhost:3306/students?serverTimezone=GMT%2B8";
  73. //通过DriverManager完成注册
  74. con = DriverManager.getConnection(url, "root", "20031112");
  75. //执行SQL语句
  76. String sql = "select * from chengji";
  77. st=con.createStatement();
  78. rs=st.executeQuery(sql);
  79. String text;
  80. while (rs.next()){
  81. text ="学号:"+rs.getString("studentnumber")+"\n"+"课程名:"
  82. +rs.getString("course")+"\n"+"成绩:"+rs.getString("cj")+"\n\n";
  83. jta.append(text);
  84. }
  85. } catch (ClassNotFoundException ex) {
  86. ex.printStackTrace();
  87. } catch (SQLException ex) {
  88. ex.printStackTrace();
  89. }
  90. }
  91. });
  92. }
  93. }

删除成绩功能:

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.MouseAdapter;
  4. import java.awt.event.MouseEvent;
  5. import java.sql.*;
  6. public class 删除成绩功能 {
  7. public static void main(String[] args) {
  8. new sccj();
  9. }
  10. }
  11. class sccj{
  12. JFrame jf;
  13. JLabel l1,l2;
  14. JTextField f1,f2;
  15. JButton jb1,jb2,jb3;
  16. public sccj(){
  17. jf = new JFrame("删除成绩");
  18. jf.setSize(320,280);//设置窗体大小
  19. jf.setLocationRelativeTo(null);//设置窗口每次启动都显示在屏幕正中央
  20. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  21. jf.setLayout(null);
  22. Font font = new Font("仿宋", Font.BOLD, 20);//设置统一的字体,让代码更加整洁美观
  23. l1 = new JLabel("学 号:");
  24. l1.setBounds(10,10,100,40);
  25. l1.setFont(font);
  26. f1 = new JTextField(null,20);
  27. f1.setBounds(90,15,180,30);
  28. f1.setFont(font);
  29. l2 = new JLabel("课程名:");
  30. l2.setBounds(8, 50, 100, 40);
  31. l2.setFont(font);
  32. f2=new JTextField(null,20);
  33. f2.setBounds(90,55,180,30);
  34. f2.setFont(font);
  35. jb1 = new JButton("删除成绩信息");
  36. jb1.setBounds(65, 110, 180, 40);
  37. jb1.setFont(font);
  38. jb1.addMouseListener(new MouseAdapter() {
  39. @Override
  40. public void mouseClicked(MouseEvent e) {
  41. PreparedStatement ps = null;//PreparedStatement==>表示预编译的SQL语句的对象。
  42. // SQL语句已预编译并存储在PreparedStatement对象中。
  43. Connection con = null;//Connection==>与特定数据库的连接
  44. try {
  45. //注册驱动
  46. Class.forName("com.mysql.cj.jdbc.Driver");
  47. //这里的3306/后跟的是数据库名
  48. //获取数据库连接
  49. String url = "jdbc:mysql://localhost:3306/students?serverTimezone=GMT%2B8";
  50. //通过DriverManager完成注册
  51. con = DriverManager.getConnection(url, "root", "20031112");
  52. //执行SQL语句
  53. String sql = "delete from chengji where studentnumber=? and course=?";
  54. ps = con.prepareStatement(sql);
  55. if(f1.getText().length()!=0){
  56. ps.setString(1,f1.getText());
  57. }else{
  58. JOptionPane.showMessageDialog(null, "学号不能为空!");
  59. }
  60. if(f2.getText().length()!=0){
  61. ps.setString(2,f2.getText());
  62. }else{
  63. JOptionPane.showMessageDialog(null, "课程名不能为空!");
  64. }
  65. if(f1.getText().length()!=0&&f2.getText().length()!=0){
  66. JOptionPane.showMessageDialog(null, "删除成功!");
  67. f1.setText(null);
  68. f2.setText(null);
  69. int i = ps.executeUpdate();
  70. }else{
  71. JOptionPane.showMessageDialog(null, "删除失败!");
  72. }
  73. } catch (ClassNotFoundException ex) {
  74. ex.printStackTrace();
  75. } catch (SQLException ex) {
  76. ex.printStackTrace();
  77. }
  78. }
  79. });
  80. jb2 = new JButton("返回");
  81. jb2.setBounds(35, 165, 80, 40);
  82. jb2.setFont(font);
  83. jb2.addMouseListener(new MouseAdapter() {
  84. @Override
  85. public void mouseClicked(MouseEvent e) {
  86. //返回到教师成绩管理页面
  87. new tcj();
  88. jf.dispose();//关闭窗体,释放所有资源
  89. }
  90. });
  91. jb3 = new JButton("退出");
  92. jb3.setBounds(190, 165, 80, 40);
  93. jb3.setFont(font);
  94. jb3.addMouseListener(new MouseAdapter() {
  95. public void mouseClicked(MouseEvent e) {
  96. JOptionPane.showMessageDialog(null, "退出成功!");
  97. //系统退出
  98. System.exit(0);
  99. }
  100. });
  101. //将这些按钮和文本等加入到窗体中
  102. jf.add(l1);
  103. jf.add(f1);
  104. jf.add(l2);
  105. jf.add(f2);
  106. jf.add(jb1);
  107. jf.add(jb2);
  108. jf.add(jb3);
  109. jf.setVisible(true);//让组件显示
  110. }
  111. }

学籍管理:

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.MouseAdapter;
  4. import java.awt.event.MouseEvent;
  5. public class 教师学籍管理 {
  6. public static void main(String[] args) {
  7. new txj();
  8. }
  9. }
  10. class txj{
  11. JFrame jf;
  12. JButton jb1,jb2,jb3,jb4,jb5,jb6;
  13. public txj(){
  14. jf = new JFrame("学籍管理");
  15. jf.setSize(320,350);//设置窗体大小
  16. jf.setLocationRelativeTo(null);//设置窗口每次启动都显示在屏幕正中央
  17. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  18. jf.setLayout(null);
  19. Font font = new Font("仿宋", Font.BOLD, 20);//设置统一的字体,让代码更加整洁美观
  20. jb1 = new JButton("添加学籍信息");
  21. jb1.setBounds(55, 20, 200, 40);
  22. jb1.setFont(font);
  23. jb1.addMouseListener(new MouseAdapter() {
  24. @Override
  25. public void mouseClicked(MouseEvent e) {
  26. //跳转到教师添加学籍页面
  27. new ttjxj();
  28. jf.dispose();//关闭窗体,释放所有资源
  29. }
  30. });
  31. jb2 = new JButton("修改学籍信息");
  32. jb2.setBounds(55, 75, 200, 40);
  33. jb2.setFont(font);
  34. jb2.addMouseListener(new MouseAdapter() {
  35. @Override
  36. public void mouseClicked(MouseEvent e) {
  37. //跳转到教师修改学籍页面
  38. new txgxj();
  39. jf.dispose();//关闭窗体,释放所有资源
  40. }
  41. });
  42. jb3 = new JButton("查询学籍信息");
  43. jb3.setBounds(55, 125, 200, 40);
  44. jb3.setFont(font);
  45. jb3.addMouseListener(new MouseAdapter() {
  46. @Override
  47. public void mouseClicked(MouseEvent e) {
  48. //跳转到教师查询功能页面
  49. new txjcx();
  50. jf.dispose();//关闭窗体,释放所有资源
  51. }
  52. });
  53. jb6=new JButton("删除学籍信息");
  54. jb6.setBounds(55,175,200,40);
  55. jb6.setFont(font);
  56. jb6.addMouseListener(new MouseAdapter() {
  57. @Override
  58. public void mouseClicked(MouseEvent e) {
  59. //跳转到教师删除学籍功能页面
  60. new scxj();
  61. jf.dispose();//关闭窗体,释放所有资源
  62. }
  63. });
  64. jb4 = new JButton("返回");
  65. jb4.setBounds(30, 245, 80, 40);
  66. jb4.setFont(font);
  67. jb4.addMouseListener(new MouseAdapter() {
  68. @Override
  69. public void mouseClicked(MouseEvent e) {
  70. //返回教师主页面
  71. new teacher();
  72. jf.dispose();//关闭窗体,释放所有资源
  73. }
  74. });
  75. jb5 = new JButton("退出");
  76. jb5.setBounds(200, 245, 80, 40);
  77. jb5.setFont(font);
  78. jb5.addMouseListener(new MouseAdapter() {
  79. @Override
  80. public void mouseClicked(MouseEvent e) {
  81. JOptionPane.showMessageDialog(null, "退出成功!");
  82. //系统退出
  83. System.exit(0);
  84. }
  85. });
  86. //将这些按钮和文本等加入到窗体中
  87. jf.add(jb1);
  88. jf.add(jb2);
  89. jf.add(jb3);
  90. jf.add(jb4);
  91. jf.add(jb5);
  92. jf.add(jb6);
  93. jf.setVisible(true);//让组件显示
  94. }
  95. }

添加学籍功能:

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.MouseAdapter;
  4. import java.awt.event.MouseEvent;
  5. import java.sql.Connection;
  6. import java.sql.DriverManager;
  7. import java.sql.PreparedStatement;
  8. import java.sql.SQLException;
  9. public class 添加学籍功能 {
  10. public static void main(String[] args) {
  11. new ttjxj();
  12. }
  13. }
  14. class ttjxj{
  15. JFrame jf;
  16. JLabel l1,l2,l3,l4,l5;
  17. JTextField f1,f2,f3,f4,f5;
  18. JButton jb1,jb2,jb3;
  19. public ttjxj(){
  20. jf = new JFrame("添加学籍");
  21. jf.setSize(320,450);//设置窗体大小
  22. jf.setLocationRelativeTo(null);//设置窗口每次启动都显示在屏幕正中央
  23. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  24. jf.setLayout(null);
  25. Font font = new Font("仿宋", Font.BOLD, 20);//设置统一的字体,让代码更加整洁美观
  26. l1 = new JLabel("班 级:");
  27. l1.setBounds(10,10,100,40);
  28. l1.setFont(font);
  29. f1 = new JTextField(null,20);
  30. f1.setBounds(90,15,180,30);
  31. f1.setFont(font);
  32. l2 = new JLabel("学 号:");
  33. l2.setBounds(8, 50, 100, 40);
  34. l2.setFont(font);
  35. f2=new JTextField(null,20);
  36. f2.setBounds(90,55,180,30);
  37. f2.setFont(font);
  38. l3 = new JLabel("姓 名:");
  39. l3.setBounds(8, 90, 100, 40);
  40. l3.setFont(font);
  41. f3=new JTextField(null,20);
  42. f3.setBounds(90,95,180,30);
  43. f3.setFont(font);
  44. l4 = new JLabel("性 别:");
  45. l4.setBounds(8, 130, 100, 40);
  46. l4.setFont(font);
  47. f4=new JTextField(null,20);
  48. f4.setBounds(90,135,180,30);
  49. f4.setFont(font);
  50. l5 = new JLabel("出生年月:");
  51. l5.setBounds(8, 170, 130, 40);
  52. l5.setFont(font);
  53. f5=new JTextField(null,20);
  54. f5.setBounds(90,210,180,30);
  55. f5.setFont(font);
  56. jb1 = new JButton("添加学籍信息");
  57. jb1.setBounds(65, 265, 180, 40);
  58. jb1.setFont(font);
  59. jb1.addMouseListener(new MouseAdapter() {
  60. @Override
  61. public void mouseClicked(MouseEvent e) {
  62. PreparedStatement ps = null;//PreparedStatement==>表示预编译的SQL语句的对象。
  63. // SQL语句已预编译并存储在PreparedStatement对象中。
  64. Connection con = null;//Connection==>与特定数据库的连接
  65. try {
  66. //注册驱动
  67. Class.forName("com.mysql.cj.jdbc.Driver");
  68. //这里的3306/后跟的是数据库名
  69. //获取数据库连接
  70. String url = "jdbc:mysql://localhost:3306/students?serverTimezone=GMT%2B8";
  71. //通过DriverManager完成注册
  72. con = DriverManager.getConnection(url, "root", "20031112");
  73. //执行SQL语句
  74. String sql = "insert into student_status(class,studentnumber,name,sex,date) values(?,?,?,?,?)";
  75. ps = con.prepareStatement(sql);
  76. if (f1.getText().length() != 0) {
  77. ps.setString(1, f1.getText());
  78. } else {
  79. JOptionPane.showMessageDialog(null, "班级不能为空!");//弹出窗口
  80. }
  81. if (f2.getText().length() != 0) {
  82. ps.setString(2, f2.getText());
  83. } else {
  84. JOptionPane.showMessageDialog(null, "学号不能为空!");//弹出窗口
  85. }
  86. if (f3.getText().length() != 0) {
  87. ps.setString(3, f3.getText());
  88. } else {
  89. JOptionPane.showMessageDialog(null, "姓名不能为空!");//弹出窗口
  90. }
  91. if (f4.getText().length() != 0) {
  92. ps.setString(4, f4.getText());
  93. } else {
  94. JOptionPane.showMessageDialog(null, "性别不能为空!");//弹出窗口
  95. }
  96. if (f5.getText().length() != 0) {
  97. ps.setString(5, f5.getText());
  98. } else {
  99. JOptionPane.showMessageDialog(null, "出生年月不能为空!");//弹出窗口
  100. }
  101. } catch (ClassNotFoundException ex) {
  102. ex.printStackTrace();
  103. } catch (SQLException ex) {
  104. ex.printStackTrace();
  105. }
  106. if (f1.getText().length() != 0 && f2.getText().length() != 0 && f3.getText().length() != 0
  107. && f4.getText().length() != 0&& f5.getText().length() != 0) {//如果所有信息都填写了,便添加成功
  108. JOptionPane.showMessageDialog(null, "添加成功!");
  109. f1.setText(null);
  110. f2.setText(null);
  111. f3.setText(null);
  112. f4.setText(null);
  113. f5.setText(null);
  114. try {
  115. int i = ps.executeUpdate();//将数据存储到数据库中
  116. } catch (SQLException ex) {
  117. ex.printStackTrace();
  118. }
  119. }
  120. }
  121. });
  122. jb2 = new JButton("返回");
  123. jb2.setBounds(35, 325, 80, 40);
  124. jb2.setFont(font);
  125. jb2.addMouseListener(new MouseAdapter() {
  126. @Override
  127. public void mouseClicked(MouseEvent e) {
  128. //返回到教师学籍管理页面
  129. new txj();
  130. jf.dispose();//关闭窗体,释放所有资源
  131. }
  132. });
  133. jb3 = new JButton("退出");
  134. jb3.setBounds(190, 325, 80, 40);
  135. jb3.setFont(font);
  136. jb3.addMouseListener(new MouseAdapter() {
  137. public void mouseClicked(MouseEvent e) {
  138. JOptionPane.showMessageDialog(null, "退出成功!");
  139. //系统退出
  140. System.exit(0);
  141. }
  142. });
  143. jf.add(l1);
  144. jf.add(f1);
  145. jf.add(l2);
  146. jf.add(f2);
  147. jf.add(l3);
  148. jf.add(f3);
  149. jf.add(l4);
  150. jf.add(f4);
  151. jf.add(l5);
  152. jf.add(f5);
  153. jf.add(jb1);
  154. jf.add(jb2);
  155. jf.add(jb3);
  156. jf.setVisible(true);
  157. }
  158. }

修改学籍功能:

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.MouseAdapter;
  4. import java.awt.event.MouseEvent;
  5. import java.sql.*;
  6. public class 修改学籍功能 {
  7. public static void main(String[] args) {
  8. new txgxj();
  9. }
  10. }
  11. class txgxj{
  12. JFrame jf;
  13. JLabel l1,l2,l3,l4,l5;
  14. JTextField f1,f2,f3,f4,f5;
  15. JButton jb1,jb2,jb3;
  16. public txgxj(){
  17. jf = new JFrame("修改学籍");
  18. jf.setSize(320,450);//设置窗体大小
  19. jf.setLocationRelativeTo(null);//设置窗口每次启动都显示在屏幕正中央
  20. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  21. jf.setLayout(null);
  22. Font font = new Font("仿宋", Font.BOLD, 20);//设置统一的字体,让代码更加整洁美观
  23. l1 = new JLabel("班 级:");
  24. l1.setBounds(10,10,100,40);
  25. l1.setFont(font);
  26. f1 = new JTextField(null,20);
  27. f1.setBounds(90,15,180,30);
  28. f1.setFont(font);
  29. l2 = new JLabel("学 号:");
  30. l2.setBounds(8, 50, 100, 40);
  31. l2.setFont(font);
  32. f2=new JTextField(null,20);
  33. f2.setBounds(90,55,180,30);
  34. f2.setFont(font);
  35. l3 = new JLabel("姓 名:");
  36. l3.setBounds(8, 90, 100, 40);
  37. l3.setFont(font);
  38. f3=new JTextField(null,20);
  39. f3.setBounds(90,95,180,30);
  40. f3.setFont(font);
  41. l4 = new JLabel("性 别:");
  42. l4.setBounds(8, 130, 100, 40);
  43. l4.setFont(font);
  44. f4=new JTextField(null,20);
  45. f4.setBounds(90,135,180,30);
  46. f4.setFont(font);
  47. l5 = new JLabel("出生年月:");
  48. l5.setBounds(8, 170, 130, 40);
  49. l5.setFont(font);
  50. f5=new JTextField(null,20);
  51. f5.setBounds(90,210,180,30);
  52. f5.setFont(font);
  53. jb1 = new JButton("修改学籍信息");
  54. jb1.setBounds(65, 265, 180, 40);
  55. jb1.setFont(font);
  56. jb1.addMouseListener(new MouseAdapter() {
  57. @Override
  58. public void mouseClicked(MouseEvent e) {
  59. PreparedStatement ps = null;//PreparedStatement==>表示预编译的SQL语句的对象。
  60. // SQL语句已预编译并存储在PreparedStatement对象中。
  61. Connection con = null;//Connection==>与特定数据库的连接
  62. Statement st=null;
  63. ResultSet rs=null;
  64. try {
  65. //注册驱动
  66. Class.forName("com.mysql.cj.jdbc.Driver");
  67. //这里的3306/后跟的是数据库名
  68. //获取数据库连接
  69. String url = "jdbc:mysql://localhost:3306/students?serverTimezone=GMT%2B8";
  70. //通过DriverManager完成注册
  71. con = DriverManager.getConnection(url, "root", "20031112");
  72. //执行SQL语句
  73. String sql2="update student_status set name=?,sex=?,date=? where class=? and studentnumber=?";
  74. ps = con.prepareStatement(sql2);
  75. String sql = "select * from student_status";
  76. st=con.createStatement();
  77. rs=st.executeQuery(sql);
  78. int flag=0;
  79. while (rs.next()){
  80. if(rs.getString("class").equals(f1.getText())&&rs.getString("studentnumber").equals(f2.getText())){
  81. ps.setString(1,f3.getText());
  82. ps.setString(2,f4.getText());
  83. ps.setString(3,f5.getText());
  84. ps.setString(4,f1.getText());
  85. ps.setString(5,f2.getText());
  86. flag++;
  87. }
  88. }
  89. if(flag==0){
  90. JOptionPane.showMessageDialog(null, "没有找到相应的班级和学生!");
  91. }
  92. if(f1.getText().length()!=0&&f2.getText().length()!=0&&f3.getText().length()!=0
  93. &&f4.getText().length()!=0&&f5.getText().length()!=0 && flag!=0){
  94. JOptionPane.showMessageDialog(null, "修改成功!");
  95. f1.setText(null);
  96. f2.setText(null);
  97. f3.setText(null);
  98. f4.setText(null);
  99. f5.setText(null);
  100. try {
  101. int i = ps.executeUpdate();//将注册的账户存储到数据库中
  102. } catch (SQLException ex) {
  103. ex.printStackTrace();
  104. }
  105. }else{
  106. JOptionPane.showMessageDialog(null, "信息填写不完整,修改失败!");
  107. }
  108. } catch (ClassNotFoundException ex) {
  109. ex.printStackTrace();
  110. } catch (SQLException ex) {
  111. ex.printStackTrace();
  112. }
  113. if (f1.getText().length() != 0 && f2.getText().length() != 0 && f3.getText().length() != 0
  114. && f4.getText().length() != 0&& f5.getText().length() != 0) {//如果所有信息都填写了,便添加成功
  115. JOptionPane.showMessageDialog(null, "修改成功!");
  116. f1.setText(null);
  117. f2.setText(null);
  118. f3.setText(null);
  119. f4.setText(null);
  120. f5.setText(null);
  121. try {
  122. int i = ps.executeUpdate();//将数据存储到数据库中
  123. } catch (SQLException ex) {
  124. ex.printStackTrace();
  125. }
  126. }
  127. }
  128. });
  129. jb2 = new JButton("返回");
  130. jb2.setBounds(35, 325, 80, 40);
  131. jb2.setFont(font);
  132. jb2.addMouseListener(new MouseAdapter() {
  133. @Override
  134. public void mouseClicked(MouseEvent e) {
  135. //返回到教师学籍管理页面
  136. new txj();
  137. jf.dispose();//关闭窗体,释放所有资源
  138. }
  139. });
  140. jb3 = new JButton("退出");
  141. jb3.setBounds(190, 325, 80, 40);
  142. jb3.setFont(font);
  143. jb3.addMouseListener(new MouseAdapter() {
  144. public void mouseClicked(MouseEvent e) {
  145. JOptionPane.showMessageDialog(null, "退出成功!");
  146. //系统退出
  147. System.exit(0);
  148. }
  149. });
  150. jf.add(l1);
  151. jf.add(f1);
  152. jf.add(l2);
  153. jf.add(f2);
  154. jf.add(l3);
  155. jf.add(f3);
  156. jf.add(l4);
  157. jf.add(f4);
  158. jf.add(l5);
  159. jf.add(f5);
  160. jf.add(jb1);
  161. jf.add(jb2);
  162. jf.add(jb3);
  163. jf.setVisible(true);
  164. }
  165. }

查询学籍功能:

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.MouseAdapter;
  5. import java.awt.event.MouseEvent;
  6. import java.sql.*;
  7. public class 教师查询学籍功能 {
  8. public static void main(String[] args) {
  9. new txjcx();
  10. }
  11. }
  12. class txjcx{
  13. //文本域
  14. private JTextArea jta;
  15. //滚动条
  16. private JScrollPane jsp;
  17. //面板
  18. private JPanel jp;
  19. //按钮
  20. private JButton jb,jb2;
  21. //窗体
  22. JFrame jf;
  23. public txjcx(){
  24. //初始化组件
  25. jta=new JTextArea();
  26. jf = new JFrame("查询学籍");
  27. //将文本域添加到滚动条中,实现滚动效果
  28. jsp=new JScrollPane(jta);
  29. //面板
  30. jp=new JPanel();
  31. jb=new JButton("查询");
  32. //将文本框和按钮添加到面板中
  33. jb2=new JButton("返回");
  34. jb2.addMouseListener(new MouseAdapter() {
  35. @Override
  36. public void mouseClicked(MouseEvent e) {
  37. new txj();
  38. jf.dispose();//关闭窗体,释放所有资源
  39. }
  40. });
  41. jp.add(jb);
  42. jp.add(jb2);
  43. //将滚动条和面板都添加到窗体中
  44. jf.add(jsp, BorderLayout.CENTER);
  45. jf.add(jp,BorderLayout.SOUTH);
  46. jf.setSize(400,300);
  47. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  48. jf.setLocationRelativeTo(null);
  49. jf.setVisible(true);//设置组件显示
  50. //给查询按钮绑定一个监听点击事件
  51. jb.addActionListener(new AbstractAction() {
  52. @Override
  53. public void actionPerformed(ActionEvent e) {
  54. Statement st=null;
  55. Connection con=null;
  56. ResultSet rs=null;
  57. try {
  58. //注册驱动
  59. Class.forName("com.mysql.cj.jdbc.Driver");
  60. //这里的3306/后跟的是数据库名
  61. //获取数据库连接
  62. String url = "jdbc:mysql://localhost:3306/students?serverTimezone=GMT%2B8";
  63. //通过DriverManager完成注册
  64. con = DriverManager.getConnection(url, "root", "20031112");
  65. //执行SQL语句
  66. String sql = "select * from student_status";
  67. st=con.createStatement();
  68. rs=st.executeQuery(sql);
  69. String text;
  70. while (rs.next()){
  71. text = "班级:"+rs.getString(1) + "\n" +"学号:"+ rs.getString(2) + "\n" +"姓名:"+ rs.getString(3) +
  72. "\n" +"性别:"+ rs.getString(4) + "\n" +"出生年月:"+ rs.getString(5)+"\n\n";
  73. jta.append(text);
  74. }
  75. } catch (ClassNotFoundException ex) {
  76. ex.printStackTrace();
  77. } catch (SQLException ex) {
  78. ex.printStackTrace();
  79. }
  80. }
  81. });
  82. }
  83. }

删除学籍功能:

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.MouseAdapter;
  4. import java.awt.event.MouseEvent;
  5. import java.sql.Connection;
  6. import java.sql.DriverManager;
  7. import java.sql.PreparedStatement;
  8. import java.sql.SQLException;
  9. public class 删除学籍功能 {
  10. public static void main(String[] args) {
  11. new scxj();
  12. }
  13. }
  14. class scxj{
  15. JFrame jf;
  16. JLabel l1,l2;
  17. JTextField f1,f2;
  18. JButton jb1,jb2,jb3;
  19. public scxj(){
  20. jf = new JFrame("删除学籍");
  21. jf.setSize(320,300);//设置窗体大小
  22. jf.setLocationRelativeTo(null);//设置窗口每次启动都显示在屏幕正中央
  23. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  24. jf.setLayout(null);
  25. Font font = new Font("仿宋", Font.BOLD, 20);//设置统一的字体,让代码更加整洁美观
  26. l1 = new JLabel("学 号:");
  27. l1.setBounds(10,10,100,40);
  28. l1.setFont(font);
  29. f1 = new JTextField(null,20);
  30. f1.setBounds(90,15,180,30);
  31. f1.setFont(font);
  32. l2 = new JLabel("姓 名:");
  33. l2.setBounds(8, 50, 100, 40);
  34. l2.setFont(font);
  35. f2=new JTextField(null,20);
  36. f2.setBounds(90,55,180,30);
  37. f2.setFont(font);
  38. jb1 = new JButton("删除学籍信息");
  39. jb1.setBounds(65, 105, 180, 40);
  40. jb1.setFont(font);
  41. jb1.addMouseListener(new MouseAdapter() {
  42. @Override
  43. public void mouseClicked(MouseEvent e) {
  44. PreparedStatement ps = null;//PreparedStatement==>表示预编译的SQL语句的对象。
  45. // SQL语句已预编译并存储在PreparedStatement对象中。
  46. Connection con = null;//Connection==>与特定数据库的连接
  47. try {
  48. //注册驱动
  49. Class.forName("com.mysql.cj.jdbc.Driver");
  50. //这里的3306/后跟的是数据库名
  51. //获取数据库连接
  52. String url = "jdbc:mysql://localhost:3306/students?serverTimezone=GMT%2B8";
  53. //通过DriverManager完成注册
  54. con = DriverManager.getConnection(url, "root", "20031112");
  55. //执行SQL语句
  56. String sql = "delete from student_status where studentnumber=? and name=?";
  57. ps = con.prepareStatement(sql);
  58. if(f1.getText().length()!=0){
  59. ps.setString(1,f1.getText());
  60. }else{
  61. JOptionPane.showMessageDialog(null, "学号不能为空!");
  62. }
  63. if(f2.getText().length()!=0){
  64. ps.setString(2,f2.getText());
  65. }else{
  66. JOptionPane.showMessageDialog(null, "姓名不能为空!");
  67. }
  68. if(f1.getText().length()!=0&&f2.getText().length()!=0){
  69. JOptionPane.showMessageDialog(null, "删除成功!");
  70. f1.setText(null);
  71. f2.setText(null);
  72. int i = ps.executeUpdate();//将数据存储到数据库中
  73. }else{
  74. JOptionPane.showMessageDialog(null, "删除失败!");
  75. }
  76. } catch (ClassNotFoundException ex) {
  77. ex.printStackTrace();
  78. } catch (SQLException ex) {
  79. ex.printStackTrace();
  80. }
  81. }
  82. });
  83. jb2 = new JButton("返回");
  84. jb2.setBounds(35, 165, 80, 40);
  85. jb2.setFont(font);
  86. jb2.addMouseListener(new MouseAdapter() {
  87. @Override
  88. public void mouseClicked(MouseEvent e) {
  89. //返回到教师学籍管理页面
  90. new txj();
  91. jf.dispose();//关闭窗体,释放所有资源
  92. }
  93. });
  94. jb3 = new JButton("退出");
  95. jb3.setBounds(190, 165, 80, 40);
  96. jb3.setFont(font);
  97. jb3.addMouseListener(new MouseAdapter() {
  98. public void mouseClicked(MouseEvent e) {
  99. JOptionPane.showMessageDialog(null, "退出成功!");
  100. //系统退出
  101. System.exit(0);
  102. }
  103. });
  104. //将这些按钮和文本等加入到窗体中
  105. jf.add(l1);
  106. jf.add(f1);
  107. jf.add(l2);
  108. jf.add(f2);
  109. jf.add(jb1);
  110. jf.add(jb2);
  111. jf.add(jb3);
  112. jf.setVisible(true);//让组件显示
  113. }
  114. }

课程管理:

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.MouseAdapter;
  4. import java.awt.event.MouseEvent;
  5. public class 教师课程管理 {
  6. public static void main(String[] args) {
  7. new tkc();
  8. }
  9. }
  10. class tkc{
  11. JFrame jf;
  12. JButton jb1,jb2,jb3,jb4,jb5,jb6;
  13. public tkc(){
  14. jf = new JFrame("课程管理");
  15. jf.setSize(320,350);//设置窗体大小
  16. jf.setLocationRelativeTo(null);//设置窗口每次启动都显示在屏幕正中央
  17. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  18. jf.setLayout(null);
  19. Font font = new Font("仿宋", Font.BOLD, 20);//设置统一的字体,让代码更加整洁美观
  20. jb1 = new JButton("添加课程信息");
  21. jb1.setBounds(55, 20, 200, 40);
  22. jb1.setFont(font);
  23. jb1.addMouseListener(new MouseAdapter() {
  24. @Override
  25. public void mouseClicked(MouseEvent e) {
  26. //跳转到教师添加课程页面
  27. new ttj();
  28. jf.dispose();//关闭窗体,释放所有资源
  29. }
  30. });
  31. jb2 = new JButton("修改课程信息");
  32. jb2.setBounds(55, 75, 200, 40);
  33. jb2.setFont(font);
  34. jb2.addMouseListener(new MouseAdapter() {
  35. @Override
  36. public void mouseClicked(MouseEvent e) {
  37. //跳转到教师修改课程页面
  38. new txgkc();
  39. jf.dispose();//关闭窗体,释放所有资源
  40. }
  41. });
  42. jb3 = new JButton("查询课程信息");
  43. jb3.setBounds(55, 125, 200, 40);
  44. jb3.setFont(font);
  45. jb3.addMouseListener(new MouseAdapter() {
  46. @Override
  47. public void mouseClicked(MouseEvent e) {
  48. //跳转到教师查询课程页面
  49. new tcxkc();
  50. jf.dispose();//关闭窗体,释放所有资源
  51. }
  52. });
  53. jb6=new JButton("删除课程信息");
  54. jb6.setBounds(55,175,200,40);
  55. jb6.setFont(font);
  56. jb6.addMouseListener(new MouseAdapter() {
  57. @Override
  58. public void mouseClicked(MouseEvent e) {
  59. //跳转到教师删除课程页面
  60. new sckc();
  61. jf.dispose();//关闭窗体,释放所有资源
  62. }
  63. });
  64. jb4 = new JButton("返回");
  65. jb4.setBounds(30, 245, 80, 40);
  66. jb4.setFont(font);
  67. jb4.addMouseListener(new MouseAdapter() {
  68. @Override
  69. public void mouseClicked(MouseEvent e) {
  70. //返回教师主页面
  71. new teacher();
  72. jf.dispose();//关闭窗体,释放所有资源
  73. }
  74. });
  75. jb5 = new JButton("退出");
  76. jb5.setBounds(200, 245, 80, 40);
  77. jb5.setFont(font);
  78. jb5.addMouseListener(new MouseAdapter() {
  79. @Override
  80. public void mouseClicked(MouseEvent e) {
  81. JOptionPane.showMessageDialog(null, "退出成功!");
  82. //系统退出
  83. System.exit(0);
  84. }
  85. });
  86. //将这些按钮和文本等加入到窗体中
  87. jf.add(jb1);
  88. jf.add(jb2);
  89. jf.add(jb3);
  90. jf.add(jb4);
  91. jf.add(jb5);
  92. jf.add(jb6);
  93. jf.setVisible(true);//让组件显示
  94. }
  95. }

添加课程功能:

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.MouseAdapter;
  4. import java.awt.event.MouseEvent;
  5. import java.sql.Connection;
  6. import java.sql.DriverManager;
  7. import java.sql.PreparedStatement;
  8. import java.sql.SQLException;
  9. public class 添加课程功能 {
  10. public static void main(String[] args) {
  11. new ttj();
  12. }
  13. }
  14. class ttj{
  15. JFrame jf;
  16. JLabel l1,l2;
  17. JTextField f1,f2;
  18. JButton jb1,jb2,jb3;
  19. public ttj(){
  20. jf = new JFrame("添加课程");
  21. jf.setSize(320,300);//设置窗体大小
  22. jf.setLocationRelativeTo(null);//设置窗口每次启动都显示在屏幕正中央
  23. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  24. jf.setLayout(null);
  25. Font font = new Font("仿宋", Font.BOLD, 20);//设置统一的字体,让代码更加整洁美观
  26. l1 = new JLabel("课程名:");
  27. l1.setBounds(10,10,100,40);
  28. l1.setFont(font);
  29. f1 = new JTextField(null,20);
  30. f1.setBounds(90,15,180,30);
  31. f1.setFont(font);
  32. l2 = new JLabel("学 分:");
  33. l2.setBounds(10,50,100,40);
  34. l2.setFont(font);
  35. f2 = new JTextField(null,20);
  36. f2.setBounds(90,55,180,30);
  37. f2.setFont(font);
  38. jb1 = new JButton("添加");
  39. jb1.setBounds(105, 110, 80, 40);
  40. jb1.setFont(font);
  41. jb1.addMouseListener(new MouseAdapter() {
  42. @Override
  43. public void mouseClicked(MouseEvent e) {
  44. PreparedStatement ps = null;//PreparedStatement==>表示预编译的SQL语句的对象。
  45. // SQL语句已预编译并存储在PreparedStatement对象中。
  46. Connection con = null;//Connection==>与特定数据库的连接
  47. try {
  48. //注册驱动
  49. Class.forName("com.mysql.cj.jdbc.Driver");
  50. //这里的3306/后跟的是数据库名
  51. //获取数据库连接
  52. String url = "jdbc:mysql://localhost:3306/students?serverTimezone=GMT%2B8";
  53. //通过DriverManager完成注册
  54. con = DriverManager.getConnection(url, "root", "20031112");
  55. //执行SQL语句
  56. String sql = "insert into kecheng(course,xuefen) values(?,?)";
  57. ps = con.prepareStatement(sql);
  58. if(f1.getText().length()!=0){
  59. //注:这里的所有getText()都不能写成!=null
  60. ps.setString(1, f1.getText());
  61. }else{
  62. JOptionPane.showMessageDialog(null, "课程名不能为空!");//弹出窗口
  63. }
  64. if(f2.getText().length()!=0) {
  65. ps.setString(2, f2.getText());
  66. }else{
  67. JOptionPane.showMessageDialog(null, "学分不能为空!");
  68. }
  69. if(f1.getText().length()!=0&&f2.getText().length()!=0){
  70. JOptionPane.showMessageDialog(null, "添加成功!");
  71. f1.setText(null);
  72. f2.setText(null);
  73. try {
  74. int i = ps.executeUpdate();//将数据存储到数据库中
  75. } catch (SQLException ex) {
  76. ex.printStackTrace();
  77. }
  78. }
  79. } catch (ClassNotFoundException ex) {
  80. ex.printStackTrace();
  81. } catch (SQLException ex) {
  82. ex.printStackTrace();
  83. }
  84. }
  85. });
  86. jb2 = new JButton("退出");
  87. jb2.setBounds(180, 160, 80, 40);
  88. //匿名内部类
  89. jb2.addMouseListener(new MouseAdapter() {
  90. public void mouseClicked(MouseEvent e) {
  91. JOptionPane.showMessageDialog(null, "退出成功!");
  92. //系统退出
  93. System.exit(0);
  94. }
  95. });
  96. jb2.setFont(font);
  97. jb3=new JButton("返回");
  98. jb3.setBounds(40,160,80,40);
  99. jb3.setFont(font);
  100. jb3.addMouseListener(new MouseAdapter() {
  101. @Override
  102. public void mouseClicked(MouseEvent e) {
  103. //跳转到教师的课程管理页面
  104. new tkc();
  105. jf.dispose();//关闭窗体,释放所有资源
  106. }
  107. });
  108. //将这些按钮和文本等加入到窗体中
  109. jf.add(f1);
  110. jf.add(l1);
  111. jf.add(l2);
  112. jf.add(f2);
  113. jf.add(jb1);
  114. jf.add(jb2);
  115. jf.add(jb3);
  116. jf.setVisible(true);//让组件显示
  117. }
  118. }

修改课程功能:

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.MouseAdapter;
  4. import java.awt.event.MouseEvent;
  5. import java.sql.*;
  6. public class 修改课程功能 {
  7. public static void main(String[] args) {
  8. new txgkc();
  9. }
  10. }
  11. class txgkc{
  12. JFrame jf;
  13. JLabel l1,l2;
  14. JTextField f1,f2;
  15. JButton jb1,jb2,jb3;
  16. public txgkc(){
  17. jf = new JFrame("修改课程");
  18. jf.setSize(320,300);//设置窗体大小
  19. jf.setLocationRelativeTo(null);//设置窗口每次启动都显示在屏幕正中央
  20. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  21. jf.setLayout(null);
  22. Font font = new Font("仿宋", Font.BOLD, 20);//设置统一的字体,让代码更加整洁美观
  23. l1 = new JLabel("课程名:");
  24. l1.setBounds(10,10,100,40);
  25. l1.setFont(font);
  26. f1 = new JTextField(null,20);
  27. f1.setBounds(90,15,180,30);
  28. f1.setFont(font);
  29. l2 = new JLabel("学 分:");
  30. l2.setBounds(10,50,100,40);
  31. l2.setFont(font);
  32. f2 = new JTextField(null,20);
  33. f2.setBounds(90,55,180,30);
  34. f2.setFont(font);
  35. jb1 = new JButton("修改");
  36. jb1.setBounds(105, 110, 80, 40);
  37. jb1.setFont(font);
  38. jb1.addMouseListener(new MouseAdapter() {
  39. @Override
  40. public void mouseClicked(MouseEvent e) {
  41. PreparedStatement ps = null;//PreparedStatement==>表示预编译的SQL语句的对象。
  42. // SQL语句已预编译并存储在PreparedStatement对象中。
  43. Connection con = null;//Connection==>与特定数据库的连接
  44. Statement st=null;
  45. ResultSet rs=null;
  46. try {
  47. //注册驱动
  48. Class.forName("com.mysql.cj.jdbc.Driver");
  49. //这里的3306/后跟的是数据库名
  50. //获取数据库连接
  51. String url = "jdbc:mysql://localhost:3306/students?serverTimezone=GMT%2B8";
  52. //通过DriverManager完成注册
  53. con = DriverManager.getConnection(url, "root", "20031112");
  54. //执行SQL语句
  55. String sql2="update kecheng set xuefen=? where course=?";
  56. ps = con.prepareStatement(sql2);
  57. String sql = "select * from kecheng";
  58. st=con.createStatement();
  59. rs=st.executeQuery(sql);
  60. int flag=0;
  61. while (rs.next()){
  62. if(rs.getString("course").equals(f1.getText())){//根据课程名修改成绩
  63. ps.setString(1,f2.getText());
  64. ps.setString(2,f1.getText());
  65. flag++;
  66. }
  67. }
  68. if(flag==0){
  69. JOptionPane.showMessageDialog(null, "没有该课程!");
  70. }
  71. if(f1.getText().length()!=0&&f2.getText().length()!=0 && flag!=0){//如果课程名和成绩都填写了
  72. JOptionPane.showMessageDialog(null, "修改成功!");
  73. f1.setText(null);
  74. f2.setText(null);
  75. try {
  76. int i = ps.executeUpdate();//将数据存储到数据库中
  77. } catch (SQLException ex) {
  78. ex.printStackTrace();
  79. }
  80. }else{
  81. JOptionPane.showMessageDialog(null, "修改失败!");
  82. }
  83. } catch (ClassNotFoundException ex) {
  84. ex.printStackTrace();
  85. } catch (SQLException ex) {
  86. ex.printStackTrace();
  87. }
  88. }
  89. });
  90. jb2 = new JButton("返回");
  91. jb2.setBounds(40,160,80,40);
  92. jb2.setFont(font);
  93. jb2.addMouseListener(new MouseAdapter() {
  94. @Override
  95. public void mouseClicked(MouseEvent e) {
  96. //返回到教师课程管理页面
  97. new tkc();
  98. jf.dispose();//关闭窗体,释放所有资源
  99. }
  100. });
  101. jb3 = new JButton("退出");
  102. jb3.setBounds(180, 160, 80, 40);
  103. jb3.setFont(font);
  104. jb3.addMouseListener(new MouseAdapter() {
  105. public void mouseClicked(MouseEvent e) {
  106. JOptionPane.showMessageDialog(null, "退出成功!");
  107. //系统退出
  108. System.exit(0);
  109. }
  110. });
  111. //将这些按钮和文本等加入到窗体中
  112. jf.add(l1);
  113. jf.add(f1);
  114. jf.add(l2);
  115. jf.add(f2);
  116. jf.add(jb1);
  117. jf.add(jb2);
  118. jf.add(jb3);
  119. jf.setVisible(true);//让组件显示
  120. }
  121. }

查询课程功能:

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.MouseAdapter;
  5. import java.awt.event.MouseEvent;
  6. import java.sql.*;
  7. public class 教师查询课程功能 {
  8. public static void main(String[] args) {
  9. new tcxkc();
  10. }
  11. }
  12. class tcxkc{
  13. //文本域
  14. private JTextArea jta;
  15. //滚动条
  16. private JScrollPane jsp;
  17. //面板
  18. private JPanel jp;
  19. //按钮
  20. private JButton jb,jb2;
  21. //窗体
  22. JFrame jf;
  23. public tcxkc() {
  24. //初始化组件
  25. jta = new JTextArea();
  26. jf = new JFrame("查询课程");
  27. //将文本域添加到滚动条中,实现滚动效果
  28. jsp = new JScrollPane(jta);
  29. //面板
  30. jp = new JPanel();
  31. jb = new JButton("查询");
  32. //将文本框和按钮添加到面板中
  33. jb2 = new JButton("返回");
  34. jb2.addMouseListener(new MouseAdapter() {
  35. @Override
  36. public void mouseClicked(MouseEvent e) {
  37. //返回教师课程管理页面
  38. new tkc();
  39. jf.dispose();//关闭窗体,释放所有资源
  40. }
  41. });
  42. jp.add(jb);
  43. jp.add(jb2);
  44. //将滚动条和面板都添加到窗体中
  45. jf.add(jsp, BorderLayout.CENTER);
  46. jf.add(jp, BorderLayout.SOUTH);
  47. jf.setSize(400, 300);
  48. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  49. jf.setLocationRelativeTo(null);
  50. jf.setVisible(true);//设置组件显示
  51. //给查询按钮绑定一个监听点击事件
  52. jb.addActionListener(new AbstractAction() {
  53. @Override
  54. public void actionPerformed(ActionEvent e) {
  55. Statement st = null;
  56. Connection con = null;
  57. ResultSet rs = null;
  58. try {
  59. //注册驱动
  60. Class.forName("com.mysql.cj.jdbc.Driver");
  61. //这里的3306/后跟的是数据库名
  62. //获取数据库连接
  63. String url = "jdbc:mysql://localhost:3306/students?serverTimezone=GMT%2B8";
  64. //通过DriverManager完成注册
  65. con = DriverManager.getConnection(url, "root", "20031112");
  66. //执行SQL语句
  67. String sql = "select * from kecheng";
  68. st = con.createStatement();
  69. rs = st.executeQuery(sql);
  70. String text;
  71. while (rs.next()) {
  72. text = "课程名:" + rs.getString(1) + "\n" + "学分:" + rs.getString(2) + "\n";
  73. jta.append(text);
  74. }
  75. } catch (ClassNotFoundException ex) {
  76. ex.printStackTrace();
  77. } catch (SQLException ex) {
  78. ex.printStackTrace();
  79. }
  80. }
  81. });
  82. }
  83. }

删除课程功能:

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.MouseAdapter;
  4. import java.awt.event.MouseEvent;
  5. import java.sql.Connection;
  6. import java.sql.DriverManager;
  7. import java.sql.PreparedStatement;
  8. import java.sql.SQLException;
  9. public class 删除课程功能 {
  10. public static void main(String[] args) {
  11. new sckc();
  12. }
  13. }
  14. class sckc{
  15. JFrame jf;
  16. JLabel l1;
  17. JTextField f1;
  18. JButton jb1,jb2,jb3;
  19. public sckc(){
  20. jf = new JFrame("删除课程");
  21. jf.setSize(320,280);//设置窗体大小
  22. jf.setLocationRelativeTo(null);//设置窗口每次启动都显示在屏幕正中央
  23. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  24. jf.setLayout(null);
  25. Font font = new Font("仿宋", Font.BOLD, 20);//设置统一的字体,让代码更加整洁美观
  26. l1 = new JLabel("课程名:");
  27. l1.setBounds(10,10,100,40);
  28. l1.setFont(font);
  29. f1 = new JTextField(null,20);
  30. f1.setBounds(90,15,180,30);
  31. f1.setFont(font);
  32. jb1 = new JButton("删除课程信息");
  33. jb1.setBounds(65, 65, 180, 40);
  34. jb1.setFont(font);
  35. jb1.addMouseListener(new MouseAdapter() {
  36. @Override
  37. public void mouseClicked(MouseEvent e) {
  38. PreparedStatement ps = null;//PreparedStatement==>表示预编译的SQL语句的对象。
  39. // SQL语句已预编译并存储在PreparedStatement对象中。
  40. Connection con = null;//Connection==>与特定数据库的连接
  41. try {
  42. //注册驱动
  43. Class.forName("com.mysql.cj.jdbc.Driver");
  44. //这里的3306/后跟的是数据库名
  45. //获取数据库连接
  46. String url = "jdbc:mysql://localhost:3306/students?serverTimezone=GMT%2B8";
  47. //通过DriverManager完成注册
  48. con = DriverManager.getConnection(url, "root", "20031112");
  49. //执行SQL语句
  50. String sql = "delete from kecheng where course=?";
  51. ps = con.prepareStatement(sql);
  52. if(f1.getText().length()!=0){
  53. ps.setString(1,f1.getText());
  54. }else{
  55. JOptionPane.showMessageDialog(null, "课程名不能为空!");
  56. }
  57. if(f1.getText().length()!=0){
  58. JOptionPane.showMessageDialog(null, "删除成功!");
  59. f1.setText(null);
  60. int i = ps.executeUpdate();//将数据存储到数据库中
  61. }else{
  62. JOptionPane.showMessageDialog(null, "删除失败!");
  63. }
  64. } catch (ClassNotFoundException ex) {
  65. ex.printStackTrace();
  66. } catch (SQLException ex) {
  67. ex.printStackTrace();
  68. }
  69. }
  70. });
  71. jb2 = new JButton("返回");
  72. jb2.setBounds(40,125,80,40);
  73. jb2.setFont(font);
  74. jb2.addMouseListener(new MouseAdapter() {
  75. @Override
  76. public void mouseClicked(MouseEvent e) {
  77. //返回到教师课程管理页面
  78. new tkc();
  79. jf.dispose();//关闭窗体,释放所有资源
  80. }
  81. });
  82. jb3 = new JButton("退出");
  83. jb3.setBounds(180, 125, 80, 40);
  84. jb3.setFont(font);
  85. jb3.addMouseListener(new MouseAdapter() {
  86. public void mouseClicked(MouseEvent e) {
  87. JOptionPane.showMessageDialog(null, "退出成功!");
  88. //系统退出
  89. System.exit(0);
  90. }
  91. });
  92. //将这些按钮和文本等加入到窗体中
  93. jf.add(l1);
  94. jf.add(f1);
  95. jf.add(jb1);
  96. jf.add(jb2);
  97. jf.add(jb3);
  98. jf.setVisible(true);//让组件显示
  99. }
  100. }

缺陷:外观并不美观。查询页面应用表格的形式显示,不应该用文本域的形式显示。数据库表与表之间并无关联等。

标签: java 开发语言 mysql

本文转载自: https://blog.csdn.net/qq_62731133/article/details/125372828
版权归原作者 遇安.112 所有, 如有侵权,请联系我们删除。

“JAVA实训项目之学生管理系统(JDBC+GUI)”的评论:

还没有评论