学生信息管理系统(JAVA+MYSQL)

  金牌会员 | 2022-6-24 20:27:47 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 638|帖子 638|积分 1914

基于Java swing+MySQL实现学生信息管理系统:功能:1录入学生基本信息的功能; 2查询学生基本信息的功能; 3修改学生基本信息的功能 ;4删除学生基本信息的功能 ;5显示所有学生信息的功能;应付一般课设足矣,分享给大家。
如有需要:https://pan.baidu.com/s/1JqLFKPlmhV2INeETy9lHAQ
提取码:nima
里面包括了所有代码源文件+mysql8.0.25驱动jar包+登录页面时的背景图345.jpg

1.开发环境:jdk11+win10+mysql 8+IDEA
记得将数据库与IDEA或者eclipse连接起来,并记得添加数据库驱动jar包
这两个分别是添加jar包和idea连接mysql大家可以做一下参考
IDEA导入mysql数据库驱动_跟着太阳.的博客-CSDN博客https://blog.csdn.net/qq_54705917/article/details/123484397?spm=1001.2014.3001.5502IDEA连接mysql数据库_跟着太阳.的博客-CSDN博客https://blog.csdn.net/qq_54705917/article/details/123484737?spm=1001.2014.3001.5502 
2.数据库设计


 代码:
库:create database student
表:create table stu(
stuId varchar(20),
stuName varchar(20),
stuSex varchar(20),
stuAge varchar(20),
stuJG varchar(20),
stuLX varchar(20),
stuBJ varchar(20)
);
3. 窗口及功能设计
(1).主函数
main.java
  1. import javax.swing.*;
  2. public class main {
  3.     public static void main(String[] args) {
  4.         JFrame jf = new StuLogin();
  5.     }
  6. }
复制代码
(2).登录界面(默认的账号密码都为:admin)
StuLogin.java
  1. import java.awt.*;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import javax.swing.*;
  5. public class StuLogin extends JFrame {
  6.     private StuLogin self;
  7.     private ImageIcon imageIcon;
  8.     private Image image;
  9.     private String userid;// 登陆用户名和密码
  10.     private String password;
  11.     private JLabel unLabel = new JLabel("账号:");// 登陆面板控件
  12.     private JTextField unField = new JTextField();
  13.     private JLabel pwLabel = new JLabel("密码:");
  14.     private JPasswordField pwField = new JPasswordField();
  15.     private JButton dl = new JButton("登录");
  16.     private JButton d2 = new JButton("重置");
  17.     public StuLogin() {
  18.         this.self = this;
  19.         this.setSize(350, 300);// 设置登陆面板
  20.         设置窗口背景图
  21.         //先将contentPane设置成透明的
  22.         ((JPanel)getContentPane()).setOpaque(false);
  23.         //再设置图片
  24.         imageIcon = new ImageIcon("345.jpg");//图标组件
  25.         image = imageIcon.getImage();
  26.         JLabel imgLabel = new JLabel(imageIcon);
  27.         getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));
  28.         imgLabel.setBounds(0,0,400,300); //背景图片的位置
  29.         this.setIconImage(image);//设置窗口图像
  30.         this.setLocation(600,300);
  31.         this.setVisible(true);
  32.         this.setResizable(false);
  33.         this.setLayout(null);
  34. //      this.getContentPane().setBackground(Color.BLACK);设置窗口背景色;
  35.         //设置窗口名称
  36.         this.setTitle("学生信息管理系统");
  37.         unLabel.setSize(50, 30);
  38.         unLabel.setLocation(60, 40);
  39.         unLabel.setForeground(Color.red);
  40.         unLabel.setFont(new Font("楷体",Font.BOLD,15));
  41.         unField.setSize(150, 35);
  42.         unField.setLocation(110, 35);
  43.         pwLabel.setSize(50, 30);
  44.         pwLabel.setLocation(60, 100);
  45.         pwLabel.setForeground(Color.red);
  46.         pwLabel.setFont(new Font("楷体",Font.BOLD,15));
  47.         pwField.setSize(150, 35);
  48.         pwField.setLocation(110, 100);
  49.         dl.setSize(80, 35);
  50.         dl.setLocation(65, 175);
  51.         dl.setBackground(Color.red);
  52.         d2.setSize(80, 35);
  53.         d2.setLocation(185, 175);
  54.         d2.setBackground(Color.red);
  55.         dl.addActionListener(new ActionListener() {
  56.             @Override
  57.             public void actionPerformed(ActionEvent e) {
  58.                 userid = unField.getText();
  59.                 password = pwField.getText();
  60.                 if(userid.equals("admin")&&password.equals("admin")) {
  61.                     self.setVisible(false);
  62. //                    JOptionPane.showMessageDialog(null, "登录成功", "登录情况",JOptionPane.PLAIN_MESSAGE);
  63.                     new StuManager();
  64.                 } else {
  65.                     JOptionPane.showMessageDialog(null, "账号或密码错误!", "登录情况",JOptionPane.PLAIN_MESSAGE);
  66.                 }
  67.             }
  68.         });
  69.         d2.addActionListener(new ActionListener() {
  70.             @Override
  71.             public void actionPerformed(ActionEvent e) {
  72.                 unField.setText("");
  73.                 pwField.setText("");
  74.             }
  75.         });
  76.         this.add(unLabel);
  77.         this.add(unField);
  78.         this.add(pwLabel);
  79.         this.add(pwField);
  80.         this.add(dl);
  81.         this.add(d2);
  82.     }
  83. }
复制代码
登录页面的背景图我会放到 上面分享的链接里
 (3).管理员界面(删除功能在这里面)
StuManager.java
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.PreparedStatement;
  7. import java.sql.ResultSet;
  8. import java.sql.Statement;
  9. public class StuManager extends JFrame implements ActionListener {
  10.     //定义一些控件
  11.     private Object[] types = {"-请选择查询方式-", "按学号号查询", "姓名查询", "性别查询","按年龄查询", "按籍贯查询","按班级查询"};
  12.     private JComboBox searchType = new JComboBox(types); //创建一个组合框用来选取查询不同的学生信息·
  13.     JPanel jp1,jp2;
  14.     JLabel jl1;
  15.     JButton jb1,jb2,jb3,jb4;
  16.     JTable jt;
  17.     JScrollPane jsp;
  18.     JTextField jtf1,jtf2;
  19.     String strRS;
  20.     StuModel sm;
  21.     //定义连接数据库的变量
  22.     PreparedStatement ps;
  23.     Connection ct = null;
  24.     ResultSet rs = null;
  25.     //构造函数
  26.     public StuManager(){
  27.         jp1 = new JPanel();
  28.         jp1.setBackground(Color.gray);
  29.         jtf1 = new JTextField(15);
  30.         jtf2 = new JTextField();
  31.         jtf2.setEditable(false);
  32.         jb1 = new JButton("查询");
  33.         jb1.addActionListener(this);
  34.         jl1 = new JLabel("总人数:");
  35.         jp1.add(searchType);
  36.         jp1.add(jtf1);
  37.         jp1.add(jb1);
  38.         jp1.add(jl1);
  39.         jp1.add(jtf2);
  40.         jb2 = new JButton("添加");
  41.         jb2.setSize(100,500);
  42.         jb2.addActionListener(this);
  43.         jb3 = new JButton("修改");
  44.         jb3.addActionListener(this);
  45.         jb4 = new JButton("删除");
  46.         jb4.addActionListener(this);
  47.         jp2 = new JPanel();
  48.         jp2.add(jb2);
  49.         jp2.add(jb3);
  50.         jp2.add(jb4);
  51.         jp2.setBackground(Color.gray);
  52.         //创建模型对象
  53.         sm = new StuModel();
  54.         //初始化总人数
  55.         strRS=String.valueOf(sm.getRowCount());
  56.         jtf2.setText(strRS);
  57.         //初始化表和滚动面板
  58.         jt = new JTable(sm);
  59.         jsp = new JScrollPane(jt);
  60.         //将jsp放入到jframe中
  61.         this.add(jsp);
  62.         this.add(jp1,BorderLayout.PAGE_START);
  63.         this.add(jp2,BorderLayout.PAGE_END);
  64.         this.setTitle("学生信息管理系统");
  65. //        this.pack();
  66.         this.setSize(600, 400);
  67.         this.setLocation(500, 200);
  68.         this.setDefaultCloseOperation(EXIT_ON_CLOSE);
  69.         this.setVisible(true);
  70.     }
  71.     public void actionPerformed(ActionEvent arg0) {
  72.         //判断是哪个按钮被点击
  73.         if(arg0.getSource() == jb1){
  74.             System.out.println("用户希望被查询...");
  75.             int index = searchType.getSelectedIndex();
  76.             String sql = new String();
  77.             if(index == 0){
  78.                 sql = "select * from stu ";
  79.             }
  80.             else if(index == 1){
  81.                 //因为把对表的数据封装到StuModel中,可以比较简单的完成查询
  82.                 String Id =this.jtf1.getText().trim();
  83.                 //写一个sql语句
  84.                 sql = "select * from stu where stuId = '"+Id+"' ";
  85.             }
  86.             else if(index == 2){
  87.                 String name =this.jtf1.getText().trim();
  88.                 sql = "select * from stu where stuName = '"+name+"' ";
  89.             }
  90.             else if(index == 3){
  91.                 String sex =this.jtf1.getText().trim();
  92.                 sql = "select * from stu where stuSex = '"+sex+"' ";
  93.             }
  94.             else if(index == 4){
  95.                 String age =this.jtf1.getText().trim();
  96.                 sql = "select * from stu where stuAge = '"+age+"' ";
  97.             }
  98.             else if(index ==5){
  99.                 String jg =this.jtf1.getText().trim();
  100.                 sql = "select * from stu where stuJG= '"+jg+"' ";
  101.             }
  102.             else if(index ==6){
  103.                 String bj =this.jtf1.getText().trim();
  104.                 sql = "select * from stu where stuBJ= '"+bj+"' ";
  105.             }
  106.             //构建一个数据模型类,并更新
  107.             sm = new StuModel(sql);
  108.             strRS=String.valueOf(sm.getRowCount());
  109.             jtf2.setText(strRS);
  110.             //更新jtable
  111.             jt.setModel(sm);
  112.         }
  113.         //一、弹出添加界面
  114.         else if(arg0.getSource() == jb2){
  115.             System.out.println("添加...");
  116.             StuAddDiag sa = new StuAddDiag(this,"添加学生",true);
  117.             //重新再获得新的数据模型,
  118.             sm =  new StuModel();
  119.             strRS=String.valueOf(sm.getRowCount());
  120.             jtf2.setText(strRS);
  121.             jt.setModel(sm);
  122.         }else if(arg0.getSource() == jb4){
  123.             //二、删除记录
  124.             //1.得到学生的ID
  125.             int rowNum = this.jt.getSelectedRow();//getSelectedRow会返回给用户点中的行
  126.             //如果该用户一行都没有选,就返回-1
  127.             if(rowNum == -1){
  128.                 //提示
  129.                 JOptionPane.showMessageDialog(this, "请选中一行");
  130.                 return ;
  131.             }
  132.             //得到学术ID
  133.             String stuId = (String)sm.getValueAt(rowNum, 0);
  134.             //连接数据库,完成删除任务
  135.             try{
  136.                 //1.加载驱动
  137.                 Class.forName("com.mysql.cj.jdbc.Driver");
  138.                 //2.连接数据库
  139.                 String url = "jdbc:mysql://localhost:3306/student";
  140.                 String user = "root";
  141.                 String passwd = "020334";
  142.                 ct = DriverManager.getConnection(url, user, passwd);
  143. //                System.out.println("连接成功");
  144.                 ps = ct.prepareStatement("delete from stu where stuId = ?");
  145.                 ps.setString(1,stuId);
  146.                 ps.executeUpdate();
  147.                 JOptionPane.showMessageDialog(null, "删除成功", "删除情况",JOptionPane.PLAIN_MESSAGE);
  148.             }catch(Exception e){
  149.                 e.printStackTrace();
  150.             }finally{
  151.                 try{
  152.                     if(rs!= null){
  153.                         rs.close();
  154.                         rs = null;
  155.                     }
  156.                     if(ps!= null){
  157.                         ps.close();
  158.                         ps = null;
  159.                     }
  160.                     if(ct != null){
  161.                         ct.close();
  162.                         ct = null;
  163.                     }
  164.                 } catch(Exception e){
  165.                     e.printStackTrace();
  166.                 }
  167.             }
  168.             sm = new StuModel();
  169.             strRS=String.valueOf(sm.getRowCount());
  170.             jtf2.setText(strRS);
  171.             //更新jtable
  172.             jt.setModel(sm);
  173.         }else if(arg0.getSource() == jb3){
  174. //            System.out.println("11111");
  175.             //三、用户希望修改
  176.             int rowNum = this.jt.getSelectedRow();
  177.             if(rowNum == -1){
  178.                 //提示
  179.                 JOptionPane.showMessageDialog(this, "请选择一行");
  180.                 return ;
  181.             }
  182.             //显示对话框
  183. //            System.out.println( "12435");
  184.             StuUpDiag su = new StuUpDiag(this, "修改学生信息", true, sm, rowNum);
  185.             sm = new StuModel();
  186.             jt.setModel(sm);
  187.         }
  188.     }
  189. }
复制代码
  (4).模型界面
StuModel.java
  1. /*
  2.   用来刷新、呈现数据库
  3. * 这是我的一个stu表的模型
  4. * 可以把对学生表的操作全都封装到这个类
  5. */
  6. import java.sql.Connection;
  7. import java.sql.DriverManager;
  8. import java.sql.ResultSet;
  9. import java.sql.Statement;
  10. import java.util.Vector;
  11. import javax.swing.table.*;
  12. public class StuModel extends AbstractTableModel{
  13.     //rowData存放行数据,columnNames存放列名
  14.     Vector rowData,columnNames;//Vector和ArrayList一样,底层也是一个Object类型的数组Object[]。;    构造一个空向量,使其内部数据数组的大小为10,其标准容量增量为零
  15.     //定义连接数据库的变量
  16.     Statement stat = null;
  17.     Connection ct = null;
  18.     ResultSet rs = null;
  19.     //初始化
  20.     public void init(String sql){
  21.         if(sql.equals("")){
  22.             sql = "select * from stu";
  23.         }
  24.         //中间
  25.         //设置列名
  26.         columnNames = new Vector();//这里是一维向量表示列;
  27.         columnNames.add("学号");
  28.         columnNames.add("名字");
  29.         columnNames.add("性别");
  30.         columnNames.add("年龄");
  31.         columnNames.add("籍贯");
  32.         columnNames.add("联系方式");
  33.         columnNames.add("班级");
  34.         //rowData存放多行
  35.         rowData = new Vector();
  36.         try{
  37.             //1.加载驱动
  38.             Class.forName("com.mysql.cj.jdbc.Driver");
  39.             System.out.println("加载成功");
  40.             //2.连接数据库
  41.             //定义几个常量
  42.             String url = "jdbc:mysql://localhost:3306/student";
  43.             String user = "root";
  44.             String passwd = "020334";//这里你要填写你自己的数据库密码
  45.             ct = DriverManager.getConnection(url,user,passwd);
  46.             stat = ct.createStatement();//创建stat对象
  47.             rs = stat.executeQuery(sql);//查询结果
  48.             while(rs.next()){
  49.                 Vector hang = new Vector();
  50.                 hang.add(rs.getString(1));
  51.                 hang.add(rs.getString(2));
  52.                 hang.add(rs.getString(3));
  53.                 hang.add(rs.getString(4));
  54.                 hang.add(rs.getString(5));
  55.                 hang.add(rs.getString(6));
  56.                 hang.add(rs.getString(7));
  57.                 //加入到rowData中
  58.                 rowData.add(hang);//这里是二维向量,表示行;
  59.             }
  60.         }catch(Exception e){
  61.             e.printStackTrace();
  62.         }finally{
  63.             try{
  64.                 if(rs!=null){
  65.                     rs.close();
  66.                     rs = null;
  67.                 }
  68.                 if(stat != null){
  69.                     stat.close();
  70.                     stat = null;
  71.                 }
  72.                 if(ct != null){
  73.                     ct.close();
  74.                     ct = null;
  75.                 }
  76.             }catch(Exception e){
  77.                 e.printStackTrace();
  78.             }
  79.         }
  80.     }
  81.     //第二个构造函数,通过传递的sql语句来获得数据模型
  82.     public StuModel(String sql){
  83.         this.init(sql);
  84.     }
  85.     //构造函数,用于初始化我的数据模型(表)
  86.     public StuModel(){
  87.         this.init("");
  88.     }
  89.     //得到共有多少行
  90.     public int getRowCount() {
  91.         // TODO Auto-generated method stub
  92.         return this.rowData.size();
  93.     }
  94.     //得到共有多少列
  95.     public  int getColumnCount() {
  96.         // TODO Auto-generated method stub
  97.         return this.columnNames.size();
  98.     }
  99.     //得到某行某列的数据
  100.     public Object getValueAt(int row, int column) {
  101.         // TODO Auto-generated method stub
  102.         return ((Vector)(this.rowData.get(row))).get(column);
  103.     }
  104.     //得到属性名字
  105.     public String getColumnName(int column) {
  106.         // TODO Auto-generated method stub
  107.         return (String)this.columnNames.get(column);
  108.     }
  109. }
复制代码
  (5).增加学生界面
StuAddDiag.java
  1. import javax.swing.JDialog;
  2. import javax.swing.*;
  3. import java.awt.*;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6. import java.sql.Statement;
  7. import java.sql.Connection;
  8. import java.sql.DriverManager;
  9. import java.sql.ResultSet;
  10. import java.sql.*;
  11. //用来实现增添读者功能
  12. public class StuAddDiag extends JDialog implements ActionListener {
  13.     //定义我需要的swing组件
  14.     JLabel jl1,jl2,jl3,jl4,jl5,jl6,jl7;
  15.     JTextField jf1,jf2,jf3,jf4,jf5,jf6,jf7;
  16.     JPanel jp1,jp2,jp3;
  17.     JButton jb1,jb2;
  18.     //owner代笔父窗口,title是窗口的名字,modal指定是模式窗口()或者非模式窗口
  19.     public StuAddDiag(Frame owner, String title, boolean modal){
  20.         //调用父类方法
  21.         super(owner,title,modal);
  22.         jl1 = new JLabel("学号");
  23.         jl2 = new JLabel("名字");
  24.         jl3 = new JLabel("性别");
  25.         jl4 = new JLabel("年龄");
  26.         jl5 = new JLabel("籍贯");
  27.         jl6 = new JLabel("联系方式");
  28.         jl7 = new JLabel("班级");
  29.         jf1 = new JTextField(30);
  30.         jf2 = new JTextField(30);
  31.         jf3 = new JTextField(30);
  32.         jf4 = new JTextField(30);
  33.         jf5 = new JTextField(30);
  34.         jf6 = new JTextField(30);
  35.         jf7 = new JTextField(30);
  36.         jb1 = new JButton("添加");
  37.         jb1.addActionListener(this::actionPerformed);
  38.         jb2 = new JButton("取消");
  39.         jb2.addActionListener(this::actionPerformed);
  40.         jp1 = new JPanel();
  41.         jp2 = new JPanel();
  42.         jp3 = new JPanel();
  43.         //设置布局
  44.         jp1.setLayout(new GridLayout(7,1));
  45.         jp2.setLayout(new GridLayout(7,1));
  46.         jp3.add(jb1);
  47.         jp3.add(jb2);
  48.         jp1.add(jl1);
  49.         jp1.add(jl2);
  50.         jp1.add(jl3);
  51.         jp1.add(jl4);
  52.         jp1.add(jl5);
  53.         jp1.add(jl6);
  54.         jp1.add(jl7);
  55.         jp2.add(jf1);
  56.         jp2.add(jf2);
  57.         jp2.add(jf3);
  58.         jp2.add(jf4);
  59.         jp2.add(jf5);
  60.         jp2.add(jf6);
  61.         jp2.add(jf7);
  62.         this.add(jp1, BorderLayout.WEST);
  63.         this.add(jp2, BorderLayout.CENTER);
  64.         this.add(jp3, BorderLayout.SOUTH);
  65.         this.setLocation(600, 350);
  66.         this.setSize(300,200);
  67.         this.setVisible(true);
  68.     }
  69.     @Override
  70.     public void actionPerformed(ActionEvent e) {
  71.         // TODO Auto-generated method stub
  72.         if(e.getSource() == jb1){
  73.             Connection ct = null;
  74.             PreparedStatement pstmt = null;
  75.             ResultSet rs = null;
  76.             try{
  77.                 //1.加载驱动
  78.                 Class.forName("com.mysql.cj.jdbc.Driver");
  79.                 System.out.println("加载成功");
  80.                 //2.连接数据库
  81.                 //定义几个常量
  82.                 String url = "jdbc:mysql://localhost:3306/student";
  83.                 String user = "root";
  84.                 String passwd = "020334";
  85.                 ct = DriverManager.getConnection(url,user,passwd);
  86.                 //与编译语句对象
  87.                 String strsql = "insert into stu values(?,?,?,?,?,?,?)";
  88.                 pstmt = ct.prepareStatement(strsql);
  89.                 //给对象赋值
  90.                 pstmt.setString(1,jf1.getText());
  91.                 pstmt.setString(2,jf2.getText());
  92.                 pstmt.setString(3,jf3.getText());
  93.                 pstmt.setString(4,jf4.getText());
  94.                 pstmt.setString(5,jf5.getText());
  95.                 pstmt.setString(6,jf6.getText());
  96.                 pstmt.setString(7,jf7.getText());
  97.                 pstmt.executeUpdate();
  98.                 JOptionPane.showMessageDialog(null, "添加成功", "添加情况",-1);
  99.                 this.dispose();//关闭学生对话框
  100.             }catch(Exception arg1){
  101.                 arg1.printStackTrace();
  102.             }finally{
  103.                 try{
  104.                     if(rs!=null){
  105.                         rs.close();
  106.                         rs = null;
  107.                     }
  108.                     if(pstmt != null){
  109.                         pstmt.close();
  110.                         pstmt = null;
  111.                     }
  112.                     if(ct != null){
  113.                         ct.close();
  114.                         ct = null;
  115.                     }
  116.                 }catch(Exception arg2){
  117.                     arg2.printStackTrace();
  118.                 }
  119.             }
  120.         }else{
  121.             this.dispose();
  122.         }
  123.     }
  124. }
复制代码
  (6).修改学生界面
StuUpDiag.java
  1. import javax.swing.JDialog;
  2. import javax.swing.*;
  3. import java.awt.*;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6. import java.sql.Statement;
  7. import java.sql.Connection;
  8. import java.sql.DriverManager;
  9. import java.sql.ResultSet;
  10. import java.sql.*;
  11. /*
  12. // * 是修改学生信息
  13. */
  14. public class StuUpDiag extends JDialog implements ActionListener {
  15.     //定义我需要的swing组件
  16.     JLabel jl1,jl2,jl3,jl4,jl5,jl6,jl7;
  17.     JTextField jf1,jf2,jf3,jf4,jf5,jf6,jf7;
  18.     JPanel jp1,jp2,jp3;
  19.     JButton jb1,jb2;
  20.     //owner代笔父窗口,title是窗口的名字,modal指定是模式窗口()或者非模式窗口
  21.     public StuUpDiag(Frame owner, String title, boolean modal, StuModel sm, int rowNum){
  22.         //调用父类方法
  23.         super(owner,title,modal);
  24.         jl1 = new JLabel("学号");
  25.         jl2 = new JLabel("名字");
  26.         jl3 = new JLabel("性别");
  27.         jl4 = new JLabel("年龄");
  28.         jl5 = new JLabel("籍贯");
  29.         jl6 = new JLabel("联系方式");
  30.         jl7 = new JLabel("班级");
  31.         jf1 = new JTextField(30);
  32.         jf1.setText((sm.getValueAt(rowNum, 0)).toString());
  33.         jf2 = new JTextField(30);
  34.         jf2.setText((String)sm.getValueAt(rowNum, 1));
  35.         jf3 = new JTextField(30);
  36.         jf3.setText(sm.getValueAt(rowNum, 2).toString());
  37.         jf4 = new JTextField(30);
  38.         jf4.setText((sm.getValueAt(rowNum, 3)).toString());
  39.         jf5 = new JTextField(30);
  40.         jf5.setText((String)sm.getValueAt(rowNum, 4));
  41.         jf6 = new JTextField(30);
  42.         jf6.setText((String)sm.getValueAt(rowNum, 5));
  43.         jf7 = new JTextField(30);
  44.         jf7.setText((String)sm.getValueAt(rowNum, 6));
  45.         jb1 = new JButton("修改");
  46.         jb1.addActionListener(this::actionPerformed);
  47.         jb2 = new JButton("取消");
  48.         jb2.addActionListener(this::actionPerformed);
  49.         jp1 = new JPanel();
  50.         jp2 = new JPanel();
  51.         jp3 = new JPanel();
  52.         //设置布局
  53.         jp1.setLayout(new GridLayout(7,1));
  54.         jp2.setLayout(new GridLayout(7,1));
  55.         jp3.add(jb1);
  56.         jp3.add(jb2);
  57.         jp1.add(jl1);
  58.         jp1.add(jl2);
  59.         jp1.add(jl3);
  60.         jp1.add(jl4);
  61.         jp1.add(jl5);
  62.         jp1.add(jl6);
  63.         jp1.add(jl7);
  64.         jp2.add(jf1);
  65.         jp2.add(jf2);
  66.         jp2.add(jf3);
  67.         jp2.add(jf4);
  68.         jp2.add(jf5);
  69.         jp2.add(jf6);
  70.         jp2.add(jf7);
  71.         this.add(jp1, BorderLayout.WEST);
  72.         this.add(jp2, BorderLayout.CENTER);
  73.         this.add(jp3, BorderLayout.SOUTH);
  74.         this.setLocation(600, 350);
  75.         this.setSize(300,200);
  76.         this.setVisible(true);
  77.     }
  78.     @Override
  79.     public void actionPerformed(ActionEvent e) {
  80.         // TODO Auto-generated method stub
  81.         if(e.getSource() == jb1){
  82.             Connection ct = null;
  83.             PreparedStatement pstmt = null;
  84.             ResultSet rs = null;
  85.             try{
  86.                 //1.加载驱动
  87.                 Class.forName("com.mysql.cj.jdbc.Driver");
  88.                 System.out.println("加载成功");
  89.                 //2.连接数据库
  90.                 //定义几个常量
  91.                 String url = "jdbc:mysql://localhost:3306/student";
  92.                 String user = "root";
  93.                 String passwd = "020334";
  94.                 ct = DriverManager.getConnection(url,user,passwd);
  95.                 //与编译语句对象
  96.                 String strsql = "update stu set stuName = '"+jf2.getText()+"',stuSex = '"+jf3.getText()+"',stuAge = '"+jf4.getText()+"',stuJG='"+jf5.getText()+"',stuLX='"+jf6.getText()+"',stuBJ='"+jf7.getText()+"' where stuId = '"+jf1.getText()+"'";
  97.                 pstmt = ct.prepareStatement(strsql);
  98.                 pstmt.executeUpdate();
  99.                 JOptionPane.showMessageDialog(null, "修改成功", "修改情况",JOptionPane.PLAIN_MESSAGE);
  100.                 this.dispose();//关闭学生对话框
  101.             }catch(Exception arg1){
  102.                 arg1.printStackTrace();
  103.             }finally{
  104.                 try{
  105.                     if(rs!=null){
  106.                         rs.close();
  107.                         rs = null;
  108.                     }
  109.                     if(pstmt != null){
  110.                         pstmt.close();
  111.                         pstmt = null;
  112.                     }
  113.                     if(ct != null){
  114.                         ct.close();
  115.                         ct = null;
  116.                     }
  117.                 }catch(Exception arg2){
  118.                     arg2.printStackTrace();
  119.                 }
  120.             }
  121.         }else{
  122.             this.dispose();//关闭学生对话框
  123.         }
  124.     }
  125. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表