• 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. }

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

  • 相关阅读:
    springboot 点滴(1)springboot IOC
    神经网络深度学习(一)损失函数
    Linux_概述
    Ubuntu搭建AI画图工具stable diffusion-webui
    kali没有wlan0
    rviz建图拉点导航
    【21天学习挑战赛—经典算法】LeetCode 1550. 存在连续三个奇数的数组
    Danmaku: A New Paradigm of Social Interaction via Online Videos作者的两篇论文核心概括
    Ubuntu(kylin)挂载iso文件和配置apt本地源
    知识图谱实体对齐3:无监督和自监督的方法
  • 原文地址:https://blog.csdn.net/qq_62731133/article/details/125372828