• Java期末大作业补救基地~ 谁还不会点JDBC?【Java Swing 和 Mysql】历时三天三夜的代码&&直接白拿


    Java期末大作业补救基地~ 谁还不会点JDBC?【Java Swing 和 Mysql】历时三天三夜的代码&&直接白拿

    视频讲解地址:B站

    1.代码结构

    在这里插入图片描述

    1.1图片Logo

    在这里插入图片描述
    图片logo

    1.2主页面

    在这里插入图片描述
    主页面:登录和注册页面

    1.3JDBC操作

    在这里插入图片描述
    主要是JDBC操作
    baseOperate:主要是班级管理,学生管理,成绩管理,课程管理的添加,删除,修改操作
    student_inquire:获取学生的成绩(查询)。
    teacher_inqure:获取班级管理,学生管理,成绩管理,课程管理的具体信息(查询)
    verification:登录&注册的逻辑验证

    1.4学生页面

    在这里插入图片描述
    first_web:学生页面大概框架
    second_web:学生页面具体实现

    1.5老师页面

    在这里插入图片描述
    first_web:大体框架
    second_web:具体实现

    2.页面展示&代码

    2.1主页面

    2.1.1主页面(登录&注册)

    在这里插入图片描述

    package index;
    
    import java.awt.Color;
    
    import java.awt.Dimension;
    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    
    import javax.swing.Icon;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPasswordField;
    import javax.swing.JTextField;
    
    import Mysql.verification.Login_register_verification;
    import student.first_web.Student_Main;
    import teacher.first_web.Teacher_Main;
    
    public class Main 
    {
    	public static String u = null;
    	public static void FirstPage()
    	{
    		//创建窗口
    		JFrame f = new JFrame("学生管理系统");
    		//设置窗口大小
    		Dimension d = new Dimension();
    		d.setSize(510, 580);//510 580
    		f.setSize(d);
    //				//窗口背景颜色(无效果)
    //				f.setBackground(Color.red);
    		//窗口显示位置
    		f.setLocationRelativeTo(null);
    		//设置布局方式:绝对定位
    		f.setLayout(null);
    		//字体大小
    		Font font = new Font("login_web", Font.BOLD, 20);
    		//@@@@@@@@@@@@@@@@@@@@@@@@@@@@账号&密码&账号登录身份@@@@@@@@@@@@@@@@@
    		//实例化
    		JLabel username = new JLabel("用户名:");
    		JLabel password = new JLabel("密码:");
    		JLabel identity = new JLabel("账号登录身份:");
    		//设置字体样式
    		username.setFont(font);
    		password.setFont(font);
    		identity.setFont(font);
    		//设置字体颜色
    		username.setForeground(Color.blue);
    		password.setForeground(Color.blue);
    		identity.setForeground(Color.blue);
    		//设置绝对定位
    		username.setBounds(100, 225, 150, 30);
    		password.setBounds(100, 275, 150, 30);
    		identity.setBounds(100, 325, 150, 30);
    		f.add(username);
    		f.add(password);
    		f.add(identity);
    		//@@@@@@@@@@@@@@@@@@@@@@@@top学校logo@@@@@@@@@@@@@@@@@
    		//实例化
    		Icon schoolimg = new ImageIcon("src/img/logo.jpg");
    		JLabel school_Image = new JLabel(schoolimg,JLabel.CENTER);
    		//设置绝对定位
    		school_Image.setBounds(0, 0, 500,200);
    		f.add(school_Image);
    
    		//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@登录&注册按钮@@@@@@@@@@@@@@@@@@@@
    		//实例化
    		JButton login_but = new JButton("登录");
    		JButton register_but = new JButton("注册");
    		//设置绝对定位
    		login_but.setBounds(140, 400, 90, 50);
    		register_but.setBounds(260, 400, 90, 50);
    		//字体样式
    		login_but.setFont(font);
    		register_but.setFont(font);
    		//字体颜色
    		login_but.setForeground(Color.red);
    		register_but.setForeground(Color.red);
    		f.add(login_but);
    		f.add(register_but);
    		//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@文本框@@@@@@@@@@@@@@@@@@
    		JTextField name = new JTextField(30);
    		//JTextField pass = new JTextField(30);
    		JPasswordField pass =new JPasswordField(30);
    		//pass.setEchoChar('X');
    		String types[]= {"老师","学生"};
    		JComboBox<String> jbox = new JComboBox<String>(types);
    		//位置:
    		name.setBounds(200, 225, 150, 30);
    		pass.setBounds(200, 275, 150, 30);
    		jbox.setBounds(250, 325, 100, 30);
    		f.add(name);
    		f.add(pass);
    		f.add(jbox);
    		//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@点击登录@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    		login_but.addActionListener(new ActionListener() 
    		{
    			
    			public void actionPerformed(ActionEvent e) 
    			{
    				//判断触发源是不是 按钮
    				if(e.getSource()==login_but)
    				{
    					System.out.println(name.getText()+"\t"+new String(pass.getPassword())+"\t"+(String)jbox.getSelectedItem());
    					try 
    					{
    						//存在此用户==》登陆成功
    						if(Login_register_verification.login_verification(name.getText(), new String(pass.getPassword()),(String)jbox.getSelectedItem()))
    						{
    							u = name.getText();
    							System.out.println(u);
    							//打开老师页面
    							if((jbox.getSelectedItem().equals("老师")))
    							{
    								f.dispose();
    								Teacher_Main.login();
    							}
    							//打开学生页面
    							else 
    							{
    								f.dispose();
    								Student_Main.login();
    							}
    						}
    						//登陆失败
    						else 
    						{
    							name.setText("");
    							pass.setText("");
    							JOptionPane.showMessageDialog(null, "账号或密码错误,请重新输入!!\n或身份选择错误!!!!\n如果没有注册过,请先注册!!!");
    						}
    					} 
    					catch (Exception e1) 
    					{
    						e1.printStackTrace();
    					}
    				}
    			}
    		});
    		//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@点击注册@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    		register_but.addActionListener(new ActionListener()
    		{
    			public void actionPerformed(ActionEvent e) 
    			{
    				System.out.println(name.getText()+"\t"+new String(pass.getPassword())+"\t"+(String)jbox.getSelectedItem());
    				//判断触发源是不是 按钮
    				if(e.getSource()==register_but)
    				{
    					try 
    					{
    						//用户名或密码 空
    						if(name.getText().isEmpty() || new String(pass.getPassword()).isEmpty())
    						{
    							JOptionPane.showMessageDialog(null, "用户名or密码不能为空!");
    						}
    						else
    						{
    							//成功注册
    							if(Login_register_verification.register_verification(name.getText(), new String(pass.getPassword()),(String)jbox.getSelectedItem()))
    							{
    								name.setText("");
    								pass.setText("");
    								JOptionPane.showMessageDialog(null, "注册成功!请登录~~");
    							}
    							//注册失败
    							else
    							{
    								JOptionPane.showMessageDialog(null, "用户名存在,注册失败!!!");
    							}
    						}
    					}
    					catch (Exception e2) 
    					{
    						e2.printStackTrace();
    					}
    					
    				}
    			}
    		});
    		f.addWindowListener(new WindowAdapter() 
    		{
    			public void windowClosing(WindowEvent e)
    			{
    				//测试
    				//System.out.println("点击退出了!!");
    				System.exit(1);
    			}
    		});
    		//显示窗口
    		f.setVisible(true);
    
    	}
    	
    	public static void main(String[] args) 
    	{
    			FirstPage();	
    	}
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207

    2.1.1登录和注册验证(逻辑)

    package Mysql.verification;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    
    public class Login_register_verification 
    {
    	public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
    	public static final String DBURL = "jdbc:mysql://localhost:3306/student";
    	public static final String DBUSER = "root";
    	public static final String DBPASS = "写自己的密码";	
    	
    	//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@登录(是否存在用户&密码&类型)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    	public static boolean login_verification(String username,String password,String type) throws Exception
    	{		
    		Class.forName(DBDRIVER);
    		String sql = "select username,password,type from user where username = ? and password = ? and type = ?";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		pstmt.setString(1, username);
    		pstmt.setString(2, password);
    		pstmt.setString(3,type);
    		ResultSet rs = pstmt.executeQuery();
    		
    		if(rs.next())//存在
    		{
    			conn.close();
    			return true; 
    		}
    		else//不存在
    		{
    			conn.close();
    			return false;
    		}
    	}
    	//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@注册(用户名是否被注册过)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    	public static boolean register_verification(String username,String password,String type) throws Exception
    	{		
    		Class.forName(DBDRIVER);
    		String sql = "select username from user where username = ?";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		pstmt.setString(1, username);
    		ResultSet rs = pstmt.executeQuery();
    		
    		if(rs.next())//存在-->失败
    		{
    			conn.close();
    			return false; 
    		}
    		else//不存在-->注册成功
    		{
    			String sql1 = "insert into user(username,password,type) values(?,?,?)";
    			PreparedStatement pstmt1 = conn.prepareStatement(sql1);
    			pstmt1.setString(1, username);
    			pstmt1.setString(2, password); 
    			pstmt1.setString(3,type);
    			pstmt1.executeUpdate();
    			conn.close();
    			return true;
    		}
    	}	
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67

    2.2学生页面

    2.2.1学生查询成绩页面

    在这里插入图片描述

    package student.first_web;
    
    import javax.swing.JFrame;
    
    import student.second_web.Student_grade_web;
    public class Student_Main 
    {
    	public static void login() throws Exception
    	{
    		JFrame f = new JFrame("学生-主页");
    		f.setSize(900,600);
    		f.setLocationRelativeTo(null);
    		//加入页面
    		f.add(Student_grade_web.getweb());
    		f.setVisible(true);
    	}
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    package student.second_web;
    
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.util.Vector;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;
    import Mysql.student_inquire.Grade_Inquire;
    import index.*;
    public class Student_grade_web 
    {
    
    	public static JPanel getweb() throws Exception
    	{
    		JPanel pan1 = new JPanel();
    		pan1.setBackground(Color.DARK_GRAY);
    		//创建JScrollPane(滚动面板)
    		final JScrollPane scrollPane = new JScrollPane();
    		pan1.add(scrollPane,BorderLayout.CENTER);
    		
    		//设置JTable中的列名
    		Vector<String> columnNames =  Grade_Inquire.gettitle();
    		//设置JTable的表格数据
    		Vector<Vector<Object>> tableValues =  Grade_Inquire.getcontent(Main.u);
    
    		
    		//创建JTable (表格)
    		JTable table = new JTable();
    		//创建表格模型	
    		DefaultTableModel defaultTableModel = new DefaultTableModel(tableValues, columnNames);	
    		//设置JTable的表格模型	
    		table.setModel(defaultTableModel);
    		table.setEnabled(false);
    		//#########################将JTable添加到JScrollPane中######################
    		scrollPane.setViewportView(table);//将组件放入滚动面板		
    		return pan1;
    	}
    }
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42

    2.2.1具体JDBC

    package Mysql.student_inquire;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.Vector;
    
    public class Grade_Inquire
    {
    	public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
    	public static final String DBURL = "jdbc:mysql://localhost:3306/student";
    	public static final String DBUSER = "root";
    	public static final String DBPASS = "dyh20011022";
    	
    	//学生成绩查询【标题】
    	public static Vector<String> gettitle() throws Exception
    	{
    		//title
    		Vector<String> title = new Vector<String>();
    		title.add("姓名");
    		title.add("课程");
    		title.add("分数");	
    
    		return title;
    	}
    	//学生成绩查询【内容】
    	public static  Vector< Vector<Object> > getcontent(String sno) throws Exception
    	{
    		Class.forName(DBDRIVER);
    		String sql = "select a.sname,b.cname,c.grade from student_mg a,course_mg b,grade_mg c where a.sno=c.sno and b.cno = c.cno and a.sno=?";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		pstmt.setString(1,sno);
    		ResultSet rs = pstmt.executeQuery();
    		Vector< Vector<Object> > content = new Vector<Vector<Object>>();
    		while(rs.next())
    		{
    			String sname = rs.getString(1);
    			String cname = rs.getString(2);
    			int grade = rs.getInt(3);
    			Vector<Object> d = new Vector<Object>();
    			d.add(sname);
    			d.add(cname);
    			d.add(grade);
    			content.add(d);
    		}
    		
    		rs.close();
    		pstmt.close();
    		conn.close();
    		
    		return content;
    	}
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56

    2.3老师页面

    2.3.1班级管理页面

    在这里插入图片描述

    package teacher.first_web;
    
    import java.awt.Color;
    import javax.swing.JFrame;
    import javax.swing.JTabbedPane;
    import teacher.second_web.Class_mg_web;
    import teacher.second_web.Course_mg_web;
    import teacher.second_web.Grade_mg_web;
    import teacher.second_web.Student_mg_web;
    public class Teacher_Main
    {
    
    	
    	public static void login() throws Exception
    	{
            //Jframe
            JFrame f = new JFrame("老师-主页");
    		f.setSize(1000,600);
    		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		f.setLocationRelativeTo(null);
    		//JTabbedPane
    		JTabbedPane tab = new JTabbedPane();
    		tab.setForeground(Color.blue);
    				
    		tab.addTab("班级管理", Class_mg_web.getweb());
    		tab.addTab("课程管理", Course_mg_web.getweb());
    		tab.addTab("学生管理", Student_mg_web.getweb());
    		tab.addTab("成绩管理", Grade_mg_web.getweb());
    		
    		f.add(tab);
    		f.setVisible(true);
    	}
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    package teacher.second_web;
    
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.util.Vector;
    import javax.swing.JButton;
    import javax.swing.JPanel;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.JTextField;
    import javax.swing.ListSelectionModel;
    import javax.swing.table.DefaultTableModel;
    import index.*;
    import Mysql.baseOperate.*;
    import Mysql.teacher_inquire.Class_mg_sql;
    public class Class_mg_web
    {
    	//选择行
    	static int selectedRow ;
    	//创建JTable (表格)
    	static JTable table = new JTable();
    	static DefaultTableModel defaultTableModel ;
    	public static void update()throws Exception
    	{
    		//设置JTable中的列名
    		Vector<String> columnNames =  Class_mg_sql.gettitle();
    		//设置JTable的表格数据
    		Vector<Vector<Object>> tableValues =  Class_mg_sql.getcontent(Main.u);
    		//创建表格模型	
    		defaultTableModel = new DefaultTableModel(tableValues, columnNames);	
    		//设置JTable的表格模型	
    		table.setModel(defaultTableModel);
    	}
    	
    	public static JPanel getweb() throws Exception
    	{
    		JPanel pan1 = new JPanel();
    		pan1.setBackground(Color.DARK_GRAY);
    		//单行文本框	
    		JTextField aTextField;
    		JTextField bTextField;
    		JTextField cTextField;
    		//创建JScrollPane(滚动面板)
    		final JScrollPane scrollPane = new JScrollPane();
    		pan1.add(scrollPane,BorderLayout.CENTER);
    		
    		update();
    //		//设置JTable中的列名
    //		Vector<String> columnNames =  new Class_mg_sql().gettitle();
    //		//设置JTable的表格数据
    //		Vector<Vector<Object>> tableValues =  new Class_mg_sql().getcontent(Main.u);
    //		//创建表格模型	
    //		DefaultTableModel defaultTableModel = new DefaultTableModel(tableValues, columnNames);	
    //		
    //		//设置JTable的表格模型	
    //		table.setModel(defaultTableModel);
    	
    		//#########################将JTable添加到JScrollPane中######################
    		scrollPane.setViewportView(table);//将组件放入滚动面板
    		final JPanel panel = new JPanel();	
    		panel.setBackground(Color.lightGray);
    		pan1.add(panel,BorderLayout.SOUTH);
    		
    		//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   文本框      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    		//第一个文本框
    		panel.add(new JLabel("教师编码: "));	
    		aTextField = new JTextField("teacherId",10);
    		panel.add(aTextField);	
    		//第二个文本框
    		panel.add(new JLabel("班级号:"));
    		bTextField = new JTextField("classNum", 10);	
    		panel.add(bTextField);
    		//第三个文本框
    		panel.add(new JLabel("班级名称: "));	
    		cTextField = new JTextField("className", 10);	
    		panel.add(cTextField);	
    		
    		//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  按钮         @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    		JButton insertButton = new JButton("添加");	
    		JButton deleteButton = new JButton("删除");	
    		JButton updateButton = new JButton("修改");	
    		insertButton.setSize(50, 40);
    		panel.add(insertButton);	
    		panel.add(deleteButton);	
    		panel.add(updateButton);
    		
    		
    		//设置表格的选择模式---为单选模式
    		table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    		
    		//@@@@@@@@@@@@@@@@@@@@@@点击JScrollPane滚动面板,取消选中的行@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    		scrollPane.addMouseListener(new MouseAdapter()
    		{	
    			public void mouseClicked(MouseEvent e) 
    			{	
    				//取消掉选中行,但是选中行的索引值还是在的,没有取消掉	
    				table.clearSelection();	
    				//显示选中行的索引值。	
    				System.out.println("点击空白处:"+selectedRow);	
    				//设置JTextField的默认值	
    				aTextField.setText("teacherId");	
    				bTextField.setText("classNum");	
    				cTextField.setText("className");
    			}
    		});
    		
    		//@@@@@@@@@@@@@@@@@ 将选中的JTable行的的信息传递给--aTestField、bTextField、cTextField@@@@@@@@@@@@@@@@@@@@@@
    		
    		table.addMouseListener(new MouseAdapter()
    		{
    			public void mouseClicked(MouseEvent e) 
    			{
    				//获取到JTable中选定行的---索引值
    				selectedRow = table.getSelectedRow();
    				//获取到指定单元格的值
    				Object oa = defaultTableModel.getValueAt(selectedRow, 0);
    				Object ob = defaultTableModel.getValueAt(selectedRow, 1);
    				Object oc = defaultTableModel.getValueAt(selectedRow, 2);
    
    				//将获取去到的DefaultTableModel中指定单元格的值,传递给JTextField
    				aTextField.setText(oa.toString());
    				bTextField.setText(ob.toString());
    				cTextField.setText(oc.toString());
    				
    			}
    		});
    		//@@@@@@@@@@@@@@@@@@@@@@@@@添加@@@@@@@@@@@@@@@@@@@@@@@@@
    		insertButton.addActionListener(new ActionListener() 
    		{
    			public void actionPerformed(ActionEvent e) 
    			{
    				System.out.println("添加");
    				//设置要添加到DefaultTableModel中的---行数据内容
    //				String[] rowValues = {
    //						aTextField.getText(),
    //						bTextField.getText(),
    //						cTextField.getText()
    //						};
    				//是自己的教师编码
    				if(Main.u.equals(aTextField.getText())) 
    				{	
    					System.out.println(Main.u);
    					try 
    					{
    						if(Add.isRepeat(bTextField.getText()))
    						{
    							JOptionPane.showMessageDialog(null, "已经输入过该班级号!!");
    						}
    						else
    						{	
    							//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ add_mysql  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    							Add.class_mg(aTextField.getText(), bTextField.getText(), cTextField.getText());
    							update();
    						}
    					}
    					catch (Exception e1) 
    					{
    						e1.printStackTrace();
    					}
    				}
    				//不是自己的教师编码
    				else 
    				{
    					JOptionPane.showMessageDialog(null, "您的教师编码不对!!");
    				}
    				
    				
    				//设置JTextField的默认值
    				aTextField.setText("teacherId");
    				bTextField.setText("classNum");
    				cTextField.setText("className");
    			}
    		});
    		//##########################删除####################################
    		deleteButton.addActionListener(new ActionListener() 
    		{
    			public void actionPerformed(ActionEvent e)
    			{	
    				System.out.println("删除");
    				//获取到JTable中选定行的---索引值	
    				selectedRow = table.getSelectedRow();
    				//选中行
    				if(selectedRow!=-1) 
    				{
    					try 
    					{
    						//$$$$$$$$$$$$$$$$$$$$$$  delete_mysql  $$$$$$$$$$$$$$$$$$$$$$$$$$$$
    						Delete.class_mg(aTextField.getText(), bTextField.getText(), cTextField.getText());
    						update();
    					}
    					catch (Exception e2)
    					{
    						e2.printStackTrace();
    					}
    					
    					System.out.println("delete_btn:"+selectedRow);		
    				}
    				else 
    				{
    					JOptionPane.showMessageDialog(null, "没有选中删除的单元格!!");	
    				}
    				
    			}
    		});
    		
    		//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@修改@@@@@@@@@@@@@@@@@@@@@@@
    		updateButton.addActionListener(new ActionListener()
    		{
    			public void actionPerformed(ActionEvent e) 
    			{
    				//获取到JTable中选定行的---索引值
    				selectedRow = table.getSelectedRow();
    				System.out.println("修改");
    				System.out.println("修改行数:"+selectedRow);
    				
    				//JTable中行的索引值是从0,1,2.3...开始的,
    				//只有选中行时,才能修改内容
    				if(selectedRow!=-1)
    				{
    					//获取记录唯一ID
    					int id = (int) table.getValueAt(selectedRow, 3);
    					System.out.println("选中行的唯一记录ID:"+id);
    					
    					//修改后 还是自己的教师编码
    					if(Main.u.equals(aTextField.getText()))
    					{
    						try 
    						{
    								System.out.println("else");
    								//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ update_mysql  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    								Update.class_mg(aTextField.getText(), bTextField.getText(), cTextField.getText(),id);
    								update();
    						}
    						catch (Exception e1) 
    						{
    							e1.printStackTrace();
    						}
    					}
    					else //不是自己的教师编码
    					{
    						JOptionPane.showMessageDialog(null, "您的教师编码不对!!");
    					}
    				}
    				else 
    				{
    					System.out.println("没有选中修改的单元格!!");
    					JOptionPane.showMessageDialog(null, "没有选中修改的单元格!!");	
    				}
    			}
    			
    		});
    		
    		return pan1;
    	}
    }
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259
    • 260
    • 261
    • 262
    • 263

    2.3.1具体JDBC

    package Mysql.teacher_inquire;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.Vector;
    
    public class Class_mg_sql 
    {
    	public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
    	public static final String DBURL = "jdbc:mysql://localhost:3306/student";
    	public static final String DBUSER = "root";
    	public static final String DBPASS = "dyh20011022";
    	
    	//班级管理【标题】
    	public static Vector<String> gettitle() throws Exception
    	{
    		//title
    		Vector<String> title = new Vector<String>();
    		title.add("教师编码");
    		title.add("班级号");
    		title.add("班级名称");	
    		title.add("记录ID");	
    
    		return title;
    	}
    	//班级管理【内容】
    	public static  Vector< Vector<Object> > getcontent(String teacherId) throws Exception
    	{
    
    		Class.forName(DBDRIVER);
    		String sql = "select teacher_id,class_num,class_name,id from class_mg where teacher_id = ?";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		pstmt.setString(1, teacherId);
    		ResultSet rs = pstmt.executeQuery();
    		Vector< Vector<Object> > content = new Vector<Vector<Object>>();
    		while(rs.next())
    		{
    			String teacher_id = rs.getString(1);
    			String class_num = rs.getString(2);
    			String class_name = rs.getString(3);
    			int id = rs.getInt(4);
    			Vector<Object> d = new Vector<Object>();
    			d.add(teacher_id);
    			d.add(class_num);
    			d.add(class_name);
    			d.add(id);
    			content.add(d);
    		}
    		
    		rs.close();
    		pstmt.close();
    		conn.close();
    		
    		return content;
    	}
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60

    2.3.2课程管理页面

    在这里插入图片描述

    package teacher.second_web;
    
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.util.Vector;
    import javax.swing.JButton;
    import javax.swing.JPanel;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.JTextField;
    import javax.swing.ListSelectionModel;
    import javax.swing.table.DefaultTableModel;
    import Mysql.baseOperate.Add;
    import Mysql.baseOperate.Delete;
    import Mysql.baseOperate.Update;
    import Mysql.teacher_inquire.Course_mg_sql;
    
    public class Course_mg_web
    {
    	//选择行
    	static int selectedRow ;
    	
    	//创建JTable (表格)
    	static JTable table2 = new JTable();
    	static DefaultTableModel defaultTableModel2 ;
    	public static void update()throws Exception
    	{
    		//设置JTable中的列名
    		Vector<String> columnNames =  Course_mg_sql.gettitle();
    		//设置JTable的表格数据
    		Vector<Vector<Object>> tableValues =  Course_mg_sql.getcontent();
    		//创建表格模型	
    		defaultTableModel2 = new DefaultTableModel(tableValues, columnNames);	
    		//设置JTable的表格模型	
    		table2.setModel(defaultTableModel2);
    	}
    	
    	
    	public static JPanel getweb() throws Exception
    	{
    		JPanel pan2 = new JPanel();
    		pan2.setBackground(Color.DARK_GRAY);
    		//单行文本框	
    		JTextField aTextField ;
    		JTextField bTextField ;
    		JTextField cTextField ;
    		JTextField dTextField ;
    		//创建JScrollPane(滚动面板)
    		final JScrollPane scrollPane = new JScrollPane();
    		pan2.add(scrollPane,BorderLayout.CENTER);
    		
    		update();
    	
    		//#########################将JTable添加到JScrollPane中######################
    		scrollPane.setViewportView(table2);//将组件放入滚动面板
    		final JPanel panel = new JPanel();	
    		panel.setBackground(Color.lightGray);
    		pan2.add(panel,BorderLayout.SOUTH);
    		
    		//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   文本框      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    		//第一个文本框
    		panel.add(new JLabel("课程号: "));	
    		aTextField = new JTextField("cno",10);
    		panel.add(aTextField);	
    		//第二个文本框
    		panel.add(new JLabel("课程名称:"));
    		bTextField = new JTextField("cname", 10);	
    		panel.add(bTextField);
    		//第三个文本框
    		panel.add(new JLabel("课程人数: "));	
    		cTextField = new JTextField("0", 10);	
    		panel.add(cTextField);	
    		//第四个文本框
    		panel.add(new JLabel("课程学分: "));	
    		dTextField = new JTextField("0", 10);	
    		panel.add(dTextField);	
    		
    		//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  按钮         @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    		JButton insertButton = new JButton("添加");	
    		JButton deleteButton = new JButton("删除");	
    		JButton updateButton = new JButton("修改");	
    		panel.add(insertButton);	
    		panel.add(deleteButton);	
    		panel.add(updateButton);
    
    		//设置表格的选择模式---为单选模式
    		table2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    		
    		//@@@@@@@@@@@@@@@@@@@@@@点击JScrollPane滚动面板,取消选中的行@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    		scrollPane.addMouseListener(new MouseAdapter()
    		{	
    			public void mouseClicked(MouseEvent e) 
    			{	
    				//取消掉选中行,但是选中行的索引值还是在的,没有取消掉	
    				table2.clearSelection();	
    				//显示选中行的索引值。	
    				System.out.println("点击空白处:"+selectedRow);	
    				//设置JTextField的默认值	
    				aTextField.setText("cno");	
    				bTextField.setText("cname");	
    				cTextField.setText("0");
    				dTextField.setText("0");
    			}
    		});
    		
    		//@@@@@@@@@@@@@@@@@ 将选中的JTable行的的信息传递给--aTestField、bTextField、cTextField@@@@@@@@@@@@@@@@@@@@@@
    		
    		table2.addMouseListener(new MouseAdapter()
    		{
    			public void mouseClicked(MouseEvent e) 
    			{
    				//获取到JTable中选定行的---索引值
    				selectedRow = table2.getSelectedRow();
    				//获取到指定单元格的值
    				Object oa = defaultTableModel2.getValueAt(selectedRow, 0);
    				Object ob = defaultTableModel2.getValueAt(selectedRow, 1);
    				Object oc = defaultTableModel2.getValueAt(selectedRow, 2);
    				Object od = defaultTableModel2.getValueAt(selectedRow, 3);
    				
    				//将获取去到的DefaultTableModel中指定单元格的值,传递给JTextField
    				aTextField.setText(oa.toString());
    				bTextField.setText(ob.toString());
    				cTextField.setText(oc.toString());	
    				dTextField.setText(od.toString());
    			}
    		});
    		
    		//@@@@@@@@@@@@@@@@@@@@@@@@@添加@@@@@@@@@@@@@@@@@@@@@@@@@
    		insertButton.addActionListener(new ActionListener() 
    		{
    			public void actionPerformed(ActionEvent e) 
    			{
    				System.out.println("添加");
    				//设置要添加到DefaultTableModel中的---行数据内容
    //				String[] rowValues = {
    //						aTextField.getText(),
    //						bTextField.getText(),
    //						cTextField.getText(),
    //						dTextField.getText(),
    //						};
    				try 
    				{ 	
    					if(Add.isRepeat2(aTextField.getText()))
    					{
    						JOptionPane.showMessageDialog(null, "已经输入过该课程号!!");
    					}
    					else
    					{	
    						//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ add_mysql  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    						Add.course_mg(aTextField.getText(), bTextField.getText(), Integer.parseInt(cTextField.getText()),Integer.parseInt(dTextField.getText()));
    						update();
    					}
    				}
    				catch (Exception e1) 
    				{
    					e1.printStackTrace();
    				}
    				//设置JTextField的默认值
    				aTextField.setText("cno");	
    				bTextField.setText("cname");	
    				cTextField.setText("0");
    				dTextField.setText("0");
    			}
    		});
    		//##########################删除####################################
    		deleteButton.addActionListener(new ActionListener() 
    		{
    			public void actionPerformed(ActionEvent e)
    			{	
    				//获取到JTable中选定行的---索引值	
    				selectedRow = table2.getSelectedRow();	
    				System.out.println("删除");	
    				
    				//选中行
    				if(selectedRow!=-1) 
    				{
    					try 
    					{
    						//$$$$$$$$$$$$$$$$$$$$$$  delete_mysql  $$$$$$$$$$$$$$$$$$$$$$$$$$$$
    						Delete.course_mg(aTextField.getText());
    						update();
    					}
    					catch (Exception e2)
    					{
    						e2.printStackTrace();
    					}
    				}
    				else 
    				{
    					JOptionPane.showMessageDialog(null, "没有选中删除的单元格!!");	
    				}
    			}
    		});
    		
    		
    		//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@修改@@@@@@@@@@@@@@@@@@@@@@@
    		updateButton.addActionListener(new ActionListener()
    		{
    			public void actionPerformed(ActionEvent e) 
    			{
    				//获取到JTable中选定行的---索引值
    				selectedRow = table2.getSelectedRow();
    				System.out.println("修改");
    				System.out.println("修改行数:"+selectedRow);
    				//JTable中行的索引值是从0,1,2.3...开始的,
    				//只有选中行时,才能修改内容
    				if(selectedRow!=-1)
    				{
    						try 
    						{
    							//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ update_mysql  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    							Update.course_mg(aTextField.getText(), bTextField.getText(), Integer.parseInt(cTextField.getText()),Integer.parseInt(dTextField.getText()));
    							update();
    						}
    						catch (Exception e1) 
    						{
    							e1.printStackTrace();
    						}
    				}
    				else 
    				{
    					System.out.println("没有选中修改的单元格!!");
    					JOptionPane.showMessageDialog(null, "没有选中修改的单元格!!");	
    				}
    			}
    	});
    		
    		return pan2;
    	}
    }
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238

    2.3.2具体JDBC

    
    package Mysql.teacher_inquire;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.Vector;
    
    public class Course_mg_sql
    {
    	public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
    	public static final String DBURL = "jdbc:mysql://localhost:3306/student";
    	public static final String DBUSER = "root";
    	public static final String DBPASS = "dyh20011022";
    	
    	//课程管理【标题】
    	public static Vector<String> gettitle() throws Exception
    	{
    		//title
    		Vector<String> title = new Vector<String>();
    		title.add("课程号");
    		title.add("课程名称");
    		title.add("课程人数");
    		title.add("课程学分");
    		return title;
    	}
    	//课程管理【内容】
    	public static  Vector< Vector<Object> > getcontent() throws Exception
    	{
    
    		Class.forName(DBDRIVER);
    		String sql = "select cno,cname,cpno,ccredit from course_mg";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		ResultSet rs = pstmt.executeQuery();
    		Vector< Vector<Object> > content = new Vector<Vector<Object>>();
    		while(rs.next())
    		{
    			String cno = rs.getString(1);
    			String cname = rs.getString(2);
    			int cpno = rs.getInt(3);
    			int ccredit = rs.getInt(4);
    			Vector<Object> d = new Vector<Object>();
    			d.add(cno);
    			d.add(cname);
    			d.add(cpno);
    			d.add(ccredit);
    			content.add(d);
    		}
    		
    		rs.close();
    		pstmt.close();
    		conn.close();
    		
    		return content;
    	}
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59

    2.3.3学生管理页面

    在这里插入图片描述

    package teacher.second_web;
    
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.util.Vector;
    import javax.swing.JButton;
    import javax.swing.JPanel;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.JTextField;
    import javax.swing.ListSelectionModel;
    import javax.swing.table.DefaultTableModel;
    import Mysql.baseOperate.Add;
    import Mysql.baseOperate.Delete;
    import Mysql.baseOperate.Update;
    import Mysql.teacher_inquire.Student_mg_sql;
    
    public class Student_mg_web
    {
    	//选择行
    	static int selectedRow ;
    	
    	//创建JTable (表格)
    	static JTable table4 = new JTable();
    	static DefaultTableModel defaultTableModel4 ;
    	public static void update()throws Exception
    	{
    		//设置JTable中的列名
    		Vector<String> columnNames =  Student_mg_sql.gettitle();
    		//设置JTable的表格数据
    		Vector<Vector<Object>> tableValues =  Student_mg_sql.getcontent();
    		//创建表格模型	
    		defaultTableModel4 = new DefaultTableModel(tableValues, columnNames);	
    		//设置JTable的表格模型	
    		table4.setModel(defaultTableModel4);
    	}
    	
    	
    	public static JPanel getweb() throws Exception
    	{
    		JPanel pan3 = new JPanel();
    		pan3.setBackground(Color.DARK_GRAY);
    		//单行文本框	
    		JTextField aTextField ;
    		JTextField bTextField ;
    		JTextField cTextField ;
    		JTextField dTextField ;
    		JTextField eTextField ;
    		//创建JScrollPane(滚动面板)
    		final JScrollPane scrollPane = new JScrollPane();
    		pan3.add(scrollPane,BorderLayout.CENTER);
    		
    		update();
    		
    		//#########################将JTable添加到JScrollPane中######################
    		scrollPane.setViewportView(table4);//将组件放入滚动面板
    		final JPanel panel = new JPanel();	
    		panel.setBackground(Color.lightGray);
    		pan3.add(panel,BorderLayout.SOUTH);
    		
    		//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   文本框      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    		//第一个文本框
    		panel.add(new JLabel("学生学号: "));	
    		aTextField = new JTextField("2020188032",10);
    		panel.add(aTextField);	
    		//第二个文本框
    		panel.add(new JLabel("学生姓名:"));
    		bTextField = new JTextField("李华", 10);	
    		panel.add(bTextField);
    		//第三个文本框
    		panel.add(new JLabel("性别: "));	
    		cTextField = new JTextField("男", 10);	
    		panel.add(cTextField);	
    		//第四个文本框
    		panel.add(new JLabel("年龄:"));	
    		dTextField = new JTextField("18", 10);	
    		panel.add(dTextField);	
    		//第五个文本框
    		panel.add(new JLabel("院系:"));	
    		eTextField = new JTextField("软件工程", 10);	
    		panel.add(eTextField);	
    				
    		//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  按钮         @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    		JButton insertButton = new JButton("添加");	
    		JButton deleteButton = new JButton("删除");	
    		JButton updateButton = new JButton("修改");	
    		panel.add(insertButton);	
    		panel.add(deleteButton);	
    		panel.add(updateButton);
    
    		//设置表格的选择模式---为单选模式
    		table4.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    		
    		//@@@@@@@@@@@@@@@@@@@@@@点击JScrollPane滚动面板,取消选中的行@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    		scrollPane.addMouseListener(new MouseAdapter()
    		{	
    			public void mouseClicked(MouseEvent e) 
    			{	
    				//取消掉选中行,但是选中行的索引值还是在的,没有取消掉	
    				table4.clearSelection();	
    				//显示选中行的索引值。	
    				System.out.println("点击空白处:"+selectedRow);	
    				//设置JTextField的默认值	
    				aTextField.setText("2020188032");	
    				bTextField.setText("李华");	
    				cTextField.setText("男");
    				dTextField.setText("18");
    				eTextField.setText("软件工程");
    			}
    		});
    		
    		//@@@@@@@@@@@@@@@@@ 将选中的JTable行的的信息传递给--aTestField、bTextField、cTextField@@@@@@@@@@@@@@@@@@@@@@
    		
    		table4.addMouseListener(new MouseAdapter()
    		{
    			public void mouseClicked(MouseEvent e) 
    			{
    				//获取到JTable中选定行的---索引值
    				selectedRow = table4.getSelectedRow();
    				//获取到指定单元格的值
    				Object oa = defaultTableModel4.getValueAt(selectedRow, 0);
    				Object ob = defaultTableModel4.getValueAt(selectedRow, 1);
    				Object oc = defaultTableModel4.getValueAt(selectedRow, 2);
    				Object od = defaultTableModel4.getValueAt(selectedRow, 3);
    				Object oe = defaultTableModel4.getValueAt(selectedRow, 4);
    				
    				
    				//将获取去到的DefaultTableModel中指定单元格的值,传递给JTextField
    				aTextField.setText(oa.toString());
    				bTextField.setText(ob.toString());
    				cTextField.setText(oc.toString());	
    				dTextField.setText(od.toString());
    				eTextField.setText(oe.toString());
    			}
    		});
    		
    		//@@@@@@@@@@@@@@@@@@@@@@@@@添加@@@@@@@@@@@@@@@@@@@@@@@@@
    		insertButton.addActionListener(new ActionListener() 
    		{
    			public void actionPerformed(ActionEvent e) 
    			{
    				System.out.println("添加");
    				//设置要添加到DefaultTableModel中的---行数据内容
    //				String[] rowValues = {
    //						aTextField.getText(),
    //						bTextField.getText(),
    //						cTextField.getText(),
    //						dTextField.getText(),
    //						eTextField.getText()
    //						};
    				
    //				System.out.println(Main.u);
    				try 
    				{
    					if(Add.isRepeat4(aTextField.getText()))
    					{
    						JOptionPane.showMessageDialog(null, "已经输入过该学生号!!");
    					}
    					else
    					{	
    						//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ add_mysql  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    						Add.student_mg(aTextField.getText(), bTextField.getText(), cTextField.getText(),Integer.parseInt(dTextField.getText()),eTextField.getText());
    						update();
    					}
    				}
    				catch (Exception e1) 
    				{
    					e1.printStackTrace();
    				}
    			
    			
    				//设置JTextField的默认值
    				aTextField.setText("2020188032");	
    				bTextField.setText("李华");	
    				cTextField.setText("男");
    				dTextField.setText("18");
    				eTextField.setText("软件工程");
    				
    			}
    		});
    		//##########################删除####################################
    		deleteButton.addActionListener(new ActionListener() 
    		{
    			public void actionPerformed(ActionEvent e)
    			{	
    				//获取到JTable中选定行的---索引值	
    				selectedRow = table4.getSelectedRow();	
    				System.out.println("删除");	
    				//选中行
    				if(selectedRow!=-1) 
    				{
    					try 
    					{
    						//$$$$$$$$$$$$$$$$$$$$$$  delete_mysql  $$$$$$$$$$$$$$$$$$$$$$$$$$$$
    						Delete.student_mg(aTextField.getText(), bTextField.getText(), cTextField.getText(),Integer.parseInt(dTextField.getText()),eTextField.getText());
    						update();
    					}
    					catch (Exception e2)
    					{
    						e2.printStackTrace();
    					}
    				}
    				else 
    				{
    					JOptionPane.showMessageDialog(null, "没有选中删除的单元格!!");	
    				}
    				
    			}
    		});
    		
    		
    		//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@修改@@@@@@@@@@@@@@@@@@@@@@@
    		updateButton.addActionListener(new ActionListener()
    		{
    			public void actionPerformed(ActionEvent e) 
    			{
    				//获取到JTable中选定行的---索引值
    				selectedRow = table4.getSelectedRow();
    
    				System.out.println("修改");
    				System.out.println("修改行数:"+selectedRow);
    				
    
    				if(selectedRow!=-1)
    				{
    
    					try 
    					{
    						//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ update_mysql  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    						Update.student_mg(aTextField.getText(), bTextField.getText(), cTextField.getText(),Integer.parseInt(dTextField.getText()),eTextField.getText());
    						update();
    					}
    					catch (Exception e1) 
    					{
    						e1.printStackTrace();
    					}
    				}
    				else 
    				{
    					System.out.println("没有选中修改的单元格!!");
    					JOptionPane.showMessageDialog(null, "没有选中修改的单元格!!");	
    				}
    			}
    			
    		});
    		return pan3;
    	}
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255

    2.3.3具体JDBC

    
    package Mysql.teacher_inquire;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.Vector;
    
    public class  Student_mg_sql
    {
    	public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
    	public static final String DBURL = "jdbc:mysql://localhost:3306/student";
    	public static final String DBUSER = "root";
    	public static final String DBPASS = "dyh20011022";
    	
    	//学生管理【标题】
    	public static Vector<String> gettitle() throws Exception
    	{
    		//title
    		Vector<String> title = new Vector<String>();
    		title.add("学生学号");
    		title.add("学生姓名");
    		title.add("性别");
    		title.add("年龄");
    		title.add("院系");
    		return title;
    	}
    	//学生管理【内容】
    	public static  Vector< Vector<Object> > getcontent() throws Exception
    	{
    
    		Class.forName(DBDRIVER);
    		String sql = "select sno,sname,ssex,sage,sdept from student_mg";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		ResultSet rs = pstmt.executeQuery();
    		Vector< Vector<Object> > content = new Vector<Vector<Object>>();
    		while(rs.next())
    		{
    			String sno = rs.getString(1);
    			String sname = rs.getString(2);
    			String ssex = rs.getString(3);
    			int sage = rs.getInt(4);
    			String sdept = rs.getString(5);
    			Vector<Object> d = new Vector<Object>();
    			d.add(sno);
    			d.add(sname);
    			d.add(ssex);
    			d.add(sage);
    			d.add(sdept);
    			content.add(d);
    		}
    		
    		rs.close();
    		pstmt.close();
    		conn.close();
    		
    		return content;
    	}
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62

    2.3.4成绩管理页面

    在这里插入图片描述

    package teacher.second_web;
    
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.util.Vector;
    import javax.swing.JButton;
    import javax.swing.JPanel;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.JTextField;
    import javax.swing.ListSelectionModel;
    import javax.swing.table.DefaultTableModel;
    import Mysql.baseOperate.Add;
    import Mysql.baseOperate.Delete;
    import Mysql.baseOperate.Update;
    import Mysql.teacher_inquire.Grade_mg_sql;
    public class Grade_mg_web
    {
    	//选择行
    	static int selectedRow ;
    	
    	//创建JTable (表格)
    	static JTable table3 = new JTable();
    	static DefaultTableModel defaultTableModel3 ;
    	public static void update()throws Exception
    	{
    		//设置JTable中的列名
    		Vector<String> columnNames =  Grade_mg_sql.gettitle();
    		//设置JTable的表格数据
    		Vector<Vector<Object>> tableValues = Grade_mg_sql.getcontent();
    		//创建表格模型	
    		defaultTableModel3 = new DefaultTableModel(tableValues, columnNames);	
    		//设置JTable的表格模型	
    		table3.setModel(defaultTableModel3);
    	}
    	
    	public static JPanel getweb() throws Exception
    	{
    		JPanel pan4 = new JPanel();
    		pan4.setBackground(Color.DARK_GRAY);
    		//单行文本框	
    		JTextField aTextField;
    		JTextField bTextField;
    		JTextField cTextField;
    		//创建JScrollPane(滚动面板)
    		final JScrollPane scrollPane = new JScrollPane();
    		pan4.add(scrollPane,BorderLayout.CENTER);
    		update();
    	
    		//#########################将JTable添加到JScrollPane中######################
    		scrollPane.setViewportView(table3);//将组件放入滚动面板
    		final JPanel panel = new JPanel();	
    		panel.setBackground(Color.lightGray);
    		pan4.add(panel,BorderLayout.SOUTH);
    		
    		//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   文本框      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    		//第一个文本框
    		panel.add(new JLabel("学生学号: "));	
    		aTextField = new JTextField("sno",10);
    		panel.add(aTextField);	
    		//第二个文本框
    		panel.add(new JLabel("课程号:"));
    		bTextField = new JTextField("cno", 10);	
    		panel.add(bTextField);
    		//第三个文本框
    		panel.add(new JLabel("分数: "));	
    		cTextField = new JTextField("grade", 10);	
    		panel.add(cTextField);	
    		
    		//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  按钮         @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    		JButton insertButton = new JButton("添加");	
    		JButton deleteButton = new JButton("删除");	
    		JButton updateButton = new JButton("修改");	
    		panel.add(insertButton);	
    		panel.add(deleteButton);	
    		panel.add(updateButton);
    		
    		
    		//设置表格的选择模式---为单选模式
    		table3.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    		
    		//@@@@@@@@@@@@@@@@@@@@@@点击JScrollPane滚动面板,取消选中的行@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    		scrollPane.addMouseListener(new MouseAdapter()
    		{	
    			public void mouseClicked(MouseEvent e) 
    			{	
    				//取消掉选中行,但是选中行的索引值还是在的,没有取消掉	
    				table3.clearSelection();	
    				//显示选中行的索引值。	
    				System.out.println("点击空白处:"+selectedRow);	
    				//设置JTextField的默认值	
    				aTextField.setText("sno");	
    				bTextField.setText("cno");	
    				cTextField.setText("grade");
    			}
    		});
    		
    		//@@@@@@@@@@@@@@@@@ 将选中的JTable行的的信息传递给--aTestField、bTextField、cTextField@@@@@@@@@@@@@@@@@@@@@@
    		
    		table3.addMouseListener(new MouseAdapter()
    		{
    			public void mouseClicked(MouseEvent e) 
    			{
    				//获取到JTable中选定行的---索引值
    				selectedRow = table3.getSelectedRow();
    				//获取到指定单元格的值
    				Object oa = defaultTableModel3.getValueAt(selectedRow, 0);
    				Object ob = defaultTableModel3.getValueAt(selectedRow, 1);
    				Object oc = defaultTableModel3.getValueAt(selectedRow, 2);
    				
    				//将获取去到的DefaultTableModel中指定单元格的值,传递给JTextField
    				aTextField.setText(oa.toString());
    				bTextField.setText(ob.toString());
    				cTextField.setText(oc.toString());	
    			}
    		});
    		
    		//@@@@@@@@@@@@@@@@@@@@@@@@@添加@@@@@@@@@@@@@@@@@@@@@@@@@
    		insertButton.addActionListener(new ActionListener() 
    		{
    			public void actionPerformed(ActionEvent e) 
    			{
    				System.out.println("添加");
    				//设置要添加到DefaultTableModel中的---行数据内容
    //				String[] rowValues = {
    //						aTextField.getText(),
    //						bTextField.getText(),
    //						cTextField.getText()
    //						};
    				
    //					System.out.println(Main.u);
    					try 
    					{
    						if(Add.isRepeat3(aTextField.getText(),bTextField.getText()))
    						{
    							JOptionPane.showMessageDialog(null, "已经输入过[学号:"+aTextField.getText()+"],[课程号:"+bTextField.getText()+"]的成绩!!");
    						}
    						else
    						{	
    							//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ add_mysql  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    							Add.grade_mg(aTextField.getText(), bTextField.getText(), Integer.parseInt( cTextField.getText()));
    							update();
    						}
    					}
    					catch (Exception e1) 
    					{
    						e1.printStackTrace();
    					}
    
    				//设置JTextField的默认值
    				aTextField.setText("sno");
    				bTextField.setText("cno");
    				cTextField.setText("grade");
    			}
    		});
    		//##########################删除####################################
    		deleteButton.addActionListener(new ActionListener() 
    		{
    			public void actionPerformed(ActionEvent e)
    			{	
    				//获取到JTable中选定行的---索引值	
    				selectedRow = table3.getSelectedRow();	
    				System.out.println("删除");	
    				
    				//选中行
    				if(selectedRow!=-1) 
    				{
    					try 
    					{
    						//$$$$$$$$$$$$$$$$$$$$$$  delete_mysql  $$$$$$$$$$$$$$$$$$$$$$$$$$$$
    						Delete.grade_mg(aTextField.getText(), bTextField.getText(),Integer.parseInt( cTextField.getText()));
    						update();
    					}
    					catch (Exception e2)
    					{
    						e2.printStackTrace();
    					}		
    				}
    				else 
    				{
    					JOptionPane.showMessageDialog(null, "没有选中删除的单元格!!");	
    				}
    			}
    		});
    		
    		
    		//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@修改@@@@@@@@@@@@@@@@@@@@@@@
    		updateButton.addActionListener(new ActionListener()
    		{
    			public void actionPerformed(ActionEvent e) 
    			{
    				//获取到JTable中选定行的---索引值
    				selectedRow = table3.getSelectedRow();
    				
    				System.out.println("修改");
    				System.out.println("修改行数:"+selectedRow);
    				
    				//JTable中行的索引值是从0,1,2.3...开始的,
    				//只有选中行时,才能修改内容
    				if(selectedRow!=-1)
    				{
    					//获取记录唯一ID
    					int id = (int) table3.getValueAt(selectedRow, 3);
    					System.out.println("记录唯一ID:"+id);	
    					try 
    					{
    							//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ update_mysql  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    							Update.grade_mg(aTextField.getText(), bTextField.getText(), Integer.parseInt(cTextField.getText()),id);
    							update();
    					}
    					catch (Exception e1) 
    					{
    						e1.printStackTrace();
    					}
    					
    				}
    				else 
    				{
    					System.out.println("没有选中修改的单元格!!");
    					JOptionPane.showMessageDialog(null, "没有选中修改的单元格!!");	
    				}
    			}
    		});
    		
    		return pan4;
    	}
    }
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235

    2.3.4具体JDBC

    package Mysql.teacher_inquire;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.Vector;
    
    public class Grade_mg_sql
    {
    	public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
    	public static final String DBURL = "jdbc:mysql://localhost:3306/student";
    	public static final String DBUSER = "root";
    	public static final String DBPASS = "dyh20011022";
    	
    	//成绩管理【标题】
    	public static Vector<String> gettitle() throws Exception
    	{
    		//title
    		Vector<String> title = new Vector<String>();
    		title.add("学生学号");
    		title.add("课程号");
    		title.add("课程分数");	
    		title.add("记录ID");	
    		return title;
    	}
    	//成绩管理【内容】
    	public static  Vector< Vector<Object> > getcontent() throws Exception
    	{
    
    		Class.forName(DBDRIVER);
    		String sql = "select sno,cno,grade,id from grade_mg";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		ResultSet rs = pstmt.executeQuery();
    		Vector< Vector<Object> > content = new Vector<Vector<Object>>();
    		while(rs.next())
    		{
    			String sno = rs.getString(1);
    			String cno = rs.getString(2);
    			int grade = rs.getInt(3);
    			int id = rs.getInt(4);
    			Vector<Object> d = new Vector<Object>();
    			d.add(sno);
    			d.add(cno);
    			d.add(grade);
    			d.add(id);
    			content.add(d);
    		}
    		
    		rs.close();
    		pstmt.close();
    		conn.close();
    		
    		return content;
    	}
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58

    2.4具体添加,删除,修改

    2.4.1四个页面的添加

    package Mysql.baseOperate;
    
    import java.sql.Connection;
    
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    
    
    public class Add
    {
    	public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
    	public static final String DBURL = "jdbc:mysql://localhost:3306/student";
    	public static final String DBUSER = "root";
    	public static final String DBPASS = "dyh20011022";
    	
    	
    	//@@@@@@@@@@@@@@@@@@@@@@@@@@@@      class_mg           @@@@@@@@@@@@@@@@@@@@@@@@@@@@
    	public static void class_mg(String teacher_id ,String class_num,String class_name) throws Exception
    	{
    		Class.forName(DBDRIVER);
    		String sql = "insert into class_mg(teacher_id,class_num,class_name) values(?,?,?)";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		pstmt.setString(1, teacher_id);
    		pstmt.setString(2, class_num);
    		pstmt.setString(3, class_name);
    		pstmt.executeUpdate();
    		pstmt.close();
    		conn.close();
    	}
    	//是否teavher_id , class_num 重复
    	public static boolean isRepeat(String class_num) throws Exception
    	{
    		Class.forName(DBDRIVER);
    		String sql = "select class_num from class_mg where class_num = ?";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		pstmt.setString(1, class_num);
    		ResultSet rs = pstmt.executeQuery();
    		if(rs.next())//主键teacher_id和class_num 重复
    		{
    			rs.close();
    			pstmt.close();
    			conn.close();
    			return true;
    		}
    		else //没重复
    		{
    			rs.close();
    			pstmt.close();
    			conn.close();
    			return false;
    		}
    	}
    	
    	
    	
    	//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   course_mg   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    	public static void course_mg(String cno,String cname,int cpno,int ccredit)throws Exception
    	{
    		Class.forName(DBDRIVER);
    		String sql = "insert into course_mg(cno,cname,cpno,ccredit) values(?,?,?,?)";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		pstmt.setString(1, cno);
    		pstmt.setString(2, cname);
    		pstmt.setInt(3, cpno);
    		pstmt.setInt(4,ccredit);
    		pstmt.executeUpdate();
    		pstmt.close();
    		conn.close();	
    	}
    	//是否重复cno
    	public static boolean isRepeat2(String cno) throws Exception
    	{
    		Class.forName(DBDRIVER);
    		String sql = "select cno from course_mg where cno = ?";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		pstmt.setString(1, cno);
    		ResultSet rs = pstmt.executeQuery();
    		if(rs.next())//主键teacher_id和class_num 重复
    		{
    			rs.close();
    			pstmt.close();
    			conn.close();
    			return true;
    		}
    		else //没重复
    		{
    			rs.close();
    			pstmt.close();
    			conn.close();
    			return false;
    		}
    	}
    	//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ grade_mg  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    	public static void grade_mg(String sno,String cno,int grade)throws Exception
    	{
    		Class.forName(DBDRIVER);
    		String sql = "insert into grade_mg(sno,cno,grade) values(?,?,?)";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		pstmt.setString(1, sno);
    		pstmt.setString(2, cno);
    		pstmt.setInt(3, grade);
    		pstmt.executeUpdate();
    		pstmt.close();
    		conn.close();
    	}
    	//是否重复sno,cno
    	public static boolean isRepeat3(String sno,String cno) throws Exception
    	{
    		Class.forName(DBDRIVER);
    		String sql = "select sno,cno from grade_mg where sno = ? and cno = ?";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		pstmt.setString(1, sno);
    		pstmt.setString(2, cno);
    		ResultSet rs = pstmt.executeQuery();
    		if(rs.next())//sno和cno 重复
    		{
    			rs.close();
    			pstmt.close();
    			conn.close();
    			return true;
    		}
    		else //没重复
    		{
    			rs.close();
    			pstmt.close();
    			conn.close();
    			return false;
    		}
    	}
    	
    	//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ student_mg @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    	public static void student_mg(String sno ,String sname,String ssex,int sage,String sdept) throws Exception
    	{
    		Class.forName(DBDRIVER);
    		String sql = "insert into student_mg(sno,sname,ssex,sage,sdept) values(?,?,?,?,?)";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		pstmt.setString(1, sno);
    		pstmt.setString(2, sname);
    		pstmt.setString(3, ssex);
    		pstmt.setInt(4, sage);
    		pstmt.setString(5, sdept);
    		pstmt.executeUpdate();
    		pstmt.close();
    		conn.close();
    	}
    	//是否sno重复
    	public static boolean isRepeat4(String sno) throws Exception
    	{
    		Class.forName(DBDRIVER);
    		String sql = "select sno from student_mg where sno = ?";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		pstmt.setString(1, sno);
    		ResultSet rs = pstmt.executeQuery();
    		if(rs.next())//主键sno重复
    		{
    			rs.close();
    			pstmt.close();
    			conn.close();
    			return true;
    		}
    		else //没重复
    		{
    			rs.close();
    			pstmt.close();
    			conn.close();
    			return false;
    		}
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179

    2.4.1四个页面的删除

    package Mysql.baseOperate;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    
    public class Delete 
    {
    	public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
    	public static final String DBURL = "jdbc:mysql://localhost:3306/student";
    	public static final String DBUSER = "root";
    	public static final String DBPASS = "dyh20011022";
    	
    	//@@@@@@@@@@@@@@@@@@@@@@@@@@@@      class_mg           @@@@@@@@@@@@@@@@@@@@@@@@@@@@
    	public static void class_mg(String teacher_id ,String class_num,String class_name) throws Exception
    	{
    		Class.forName(DBDRIVER);
    		String sql = "delete from class_mg where teacher_id = ? and class_num = ? and class_name = ?";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		pstmt.setString(1, teacher_id);
    		pstmt.setString(2, class_num);
    		pstmt.setString(3, class_name);
    		pstmt.executeUpdate();
    		pstmt.close();
    		conn.close();
    	}
    	
    	//@@@@@@@@@@@@@@@@@@@@@@@@@@@@      course_mg           @@@@@@@@@@@@@@@@@@@@@@@@@@@@
    	public static void course_mg(String cno) throws Exception
    	{
    		Class.forName(DBDRIVER);
    		String sql = "delete from course_mg where cno=?";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		pstmt.setString(1, cno);
    		pstmt.executeUpdate();
    		pstmt.close();
    		conn.close();
    	}
    	
    	//@@@@@@@@@@@@@@@@@@@@@@@@@@@@      grade_mg           @@@@@@@@@@@@@@@@@@@@@@@@@@@@
    	public static void grade_mg(String sno,String cno ,int grade) throws Exception
    	{
    		Class.forName(DBDRIVER);
    		String sql = "delete from grade_mg where sno = ? and cno = ? and grade = ?";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		pstmt.setString(1, sno);
    		pstmt.setString(2, cno);
    		pstmt.setInt(3, grade);
    		pstmt.executeUpdate();
    		pstmt.close();
    		conn.close();
    	}
    	
    	
    	//@@@@@@@@@@@@@@@@@@@@@@@@@@@@      student_mg           @@@@@@@@@@@@@@@@@@@@@@@@@@@@
    	public static void student_mg(String sno,String sname ,String ssex,int sage,String sdept) throws Exception
    	{
    		Class.forName(DBDRIVER);
    		String sql = "delete from student_mg where sno = ? and sname = ? and ssex = ? and sage = ? and sdept = ?";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		pstmt.setString(1, sno);
    		pstmt.setString(2, sname);
    		pstmt.setString(3, ssex);
    		pstmt.setInt(4, sage);
    		pstmt.setString(5, sdept);
    		pstmt.executeUpdate();
    		pstmt.close();
    		conn.close();
    	}
    	
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76

    2.4.1四个页面的修改

    package Mysql.baseOperate;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    
    public class Update 
    {
    	public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
    	public static final String DBURL = "jdbc:mysql://localhost:3306/student";
    	public static final String DBUSER = "root";
    	public static final String DBPASS = "dyh20011022";
    	
    	
    	//@@@@@@@@@@@@@@@@@@@@@@@@@@@@      class_mg           @@@@@@@@@@@@@@@@@@@@@@@@@@@@
    	public static void class_mg(String teacher_id ,String class_num,String class_name,int id) throws Exception
    	{
    		Class.forName(DBDRIVER);
    		String sql = "update class_mg set teacher_id = ?,class_num = ?,class_name = ?  where id = ?";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		pstmt.setString(1, teacher_id);
    		pstmt.setString(2, class_num);
    		pstmt.setString(3, class_name);
    		pstmt.setInt(4, id);
    		pstmt.executeUpdate();
    		pstmt.close();
    		conn.close();
    	}
    	
    	
    	
    	//@@@@@@@@@@@@@@@@@@@@@@@@@@@@      course_mg           @@@@@@@@@@@@@@@@@@@@@@@@@@@@
    	public static void course_mg(String cno ,String cname,int cpno,int ccredit) throws Exception
    	{
    		Class.forName(DBDRIVER);
    		String sql = "update course_mg set cno = ?,cname = ?,cpno = ?,ccredit = ?  where cno = ?";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		pstmt.setString(1, cno);
    		pstmt.setString(2, cname);
    		pstmt.setInt(3, cpno);
    		pstmt.setInt(4, ccredit);
    		pstmt.setString(5,cno);
    		pstmt.executeUpdate();
    		pstmt.close();
    		conn.close();
    	}
    	//@@@@@@@@@@@@@@@@@@@@@@@@@@@@      grade_mg           @@@@@@@@@@@@@@@@@@@@@@@@@@@@
    	public static void grade_mg(String sno ,String cno,int grade,int id) throws Exception
    	{
    		Class.forName(DBDRIVER);
    		String sql = "update grade_mg set sno= ?,cno = ?,grade = ?  where id = ?";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		pstmt.setString(1, sno);
    		pstmt.setString(2, cno);
    		pstmt.setInt(3, grade);
    		pstmt.setInt(4, id);
    		pstmt.executeUpdate();
    		pstmt.close();
    		conn.close();
    	}
    	
    	//@@@@@@@@@@@@@@@@@@@@@@@@@@@@      student_mg           @@@@@@@@@@@@@@@@@@@@@@@@@@@@
    	public static void student_mg(String sno,String sname ,String ssex,int sage,String sdept) throws Exception
    	{
    		Class.forName(DBDRIVER);
    		String sql = "update student_mg set sno= ?,sname = ?,ssex = ? ,sage = ?,sdept = ?  where sno = ?";
    		Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    		PreparedStatement pstmt = conn.prepareStatement(sql);
    		pstmt.setString(1, sno);
    		pstmt.setString(2, sname);
    		pstmt.setString(3, ssex);
    		pstmt.setInt(4, sage);
    		pstmt.setString(5, sdept);
    		pstmt.setString(6, sno);
    		pstmt.executeUpdate();
    		pstmt.close();
    		conn.close();
    	}
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83

    3.数据库表

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    c++中互斥量mutex的使用,实现线程同步
    zabbix-proxy代理服务器配置
    数仓建设(二)
    朗强:紧跟时代步伐!HDMI分布式矩阵可以通过手机来控制!
    Linux命令200例:dnsconf用于配置和管理域名解析服务
    Ubuntu搭建NFS服务
    readhat8搭建SFTP双机高可用并配置Rsync数据实时同步
    Linux驱动开发笔记(四):设备驱动介绍、熟悉杂项设备驱动和ubuntu开发杂项设备Demo
    拥抱国产信创化,思迈特与云和恩墨完成产品兼容认证
    力扣 字母异位词分组 哈表 集合
  • 原文地址:https://blog.csdn.net/qq_52384627/article/details/125562702