一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java+Mysql學生管理系統源碼

Java+Mysql學生管理系統源碼

2020-05-21 11:48HelloRoot JAVA教程

這篇文章主要為大家詳細介紹了Java+Mysql學生管理系統源碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

最近正在學java和數據庫,想起以前寫的學生管理系統,都是從網上下載,敷衍了事。閑來無事,也就自己寫了一個,不過功能實現的不是很多。

開發語言:java; 開發環境:Mysql, java; 開發工具:eclipse
開發此案例,首先得在電腦上有java開發環境和Mysql, java開發環境與Mysql的搭建,就不再敘述了,如果需要,請聯系我最下面的聯系方式:[email protected]

此次系統比較簡易:數據庫中只有一個表:stu;功能:能夠對學生增加、刪除、修改。

開發步驟:

1.在數據庫中建表:

?
1
2
3
4
5
6
7
8
create table stu(
stuId String,
stuName String,
stuSex String,
stuAge int,
stuJG String,
stuDept Sring
);

2.java 代碼主要由四個類組成:
Test3包含主函數;StuModel用來刷新、呈現數據庫;StuAddDiag用來實現增添讀者功能;StuUpDiag是修改學生信息。具體代碼如下:
 Test3.java:

?
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
import javax.swing.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
 
public class Test3 extends JFrame implements ActionListener {
 //定義一些控件
 JPanel jp1,jp2;
 JLabel jl1,jl2;
 JButton jb1,jb2,jb3,jb4;
 JTable jt;
 JScrollPane jsp;
 JTextField jtf;
 StuModel sm;
 //定義連接數據庫的變量
 Statement stat = null;
 PreparedStatement ps;
 Connection ct = null;
 ResultSet rs = null;
 
 public static void main(String[] args){
 Test3 test3 = new Test3();
 }
 //構造函數
 public Test3(){
 jp1 = new JPanel();
 jtf = new JTextField(10);
 jb1 = new JButton("查詢");
 jb1.addActionListener(this);
 jl1 = new JLabel("請輸入名字:");
 
 jp1.add(jl1);
 jp1.add(jtf);
 jp1.add(jb1);
 
 jb2 = new JButton("添加");
 jb2.addActionListener(this);
 jb3 = new JButton("修改");
 jb3.addActionListener(this);
 jb4 = new JButton("刪除");
 jb4.addActionListener(this);
 
 jp2 = new JPanel();
 jp2.add(jb2);
 jp2.add(jb3);
 jp2.add(jb4);
 
 //創建模型對象
 sm = new StuModel();
 
 
 //初始化
 jt = new JTable(sm);
 
 jsp = new JScrollPane(jt);
 
 //將jsp放入到jframe中
 this.add(jsp);
 this.add(jp1,"North");
 this.add(jp2,"South");
 this.setSize(600, 400);
 //this.setLocation(300, 200);
 this.setDefaultCloseOperation(EXIT_ON_CLOSE);
 this.setVisible(true);
 
 }
 public void actionPerformed(ActionEvent arg0) {
 //判斷是哪個按鈕被點擊
 if(arg0.getSource() == jb1){
 System.out.println("用戶希望被查詢...");
 //因為把對表的數據封裝到StuModel中,可以比較簡單的完成查詢
 String name = this.jtf.getText().trim();
 //寫一個sql語句
 String sql = "select * from stu where stuName = '"+name+"' ";
 //構建一個數據模型類,并更新
 sm = new StuModel(sql);
 //更新jtable
 jt.setModel(sm);
 
 }
 
 //一、彈出添加界面
 else if(arg0.getSource() == jb2){
 System.out.println("添加...");
 StuAddDiag sa = new StuAddDiag(this,"添加學生",true);
 
 //重新再獲得新的數據模型,
 sm = new StuModel();
 jt.setModel(sm);
 }else if(arg0.getSource() == jb4){
 //二、刪除記錄
 //1.得到學生的ID
 int rowNum = this.jt.getSelectedRow();//getSelectedRow會返回給用戶點中的行
 //如果該用戶一行都沒有選,就返回-1
 if(rowNum == -1){
 //提示
 JOptionPane.showMessageDialog(this, "請選中一行");
 return ;
 }
 //得到學術ID
 String stuId = (String)sm.getValueAt(rowNum, 0);
 System.out.println("Id: "+stuId);
 
 //連接數據庫,完成刪除任務
 try{
 //1.加載驅動
 Class.forName("com.mysql.jdbc.Driver");
 //2.連接數據庫
 String url = "jdbc:mysql://localhost:3306/spdb1";
 String user = "root";
 String passwd = "lfdy";
 
 ct = DriverManager.getConnection(url, user, passwd);
 System.out.println("連接成功");
 ps = ct.prepareStatement("delete from stu where stuId = ?");
 ps.setString(1,stuId);
 ps.executeUpdate();
 
 }catch(Exception e){
 e.printStackTrace();
 }finally{
 try{
 if(rs!= null){
 rs.close();
 rs = null;
 
 }
 if(ps!= null){
 ps.close();
 ps = null;
 }
 if(ct != null){
 ct.close();
 ct = null;
 }
 } catch(Exception e){
 e.printStackTrace();
 }
 }
 sm = new StuModel();
 //更新jtable
 jt.setModel(sm);
 }else if(arg0.getSource() == jb3){
 System.out.println("11111");
 //三、用戶希望修改
 int rowNum = this.jt.getSelectedRow();
 if(rowNum == -1){
 //提示
 JOptionPane.showMessageDialog(this, "請選擇一行");
 return ;
 }
 //顯示對話框
 System.out.println( "12435");
 StuUpDiag su = new StuUpDiag(this, "修改學術", true, sm, rowNum);
 sm = new StuModel();
 jt.setModel(sm);
 }
 }
}

StuModel.java: 

?
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
/*
 * 這是我的一個stu表的模型
 * 可以把對學生表的操作全都封裝到這個類
 */
package com.test2;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Vector;
import javax.swing.table.*;
 
public class StuModel extends AbstractTableModel{
 
 //rowData存放行數據,columnNames存放列名
 Vector rowData,columnNames;
 
 //定義連接數據庫的變量
 Statement stat = null;
 Connection ct = null;
 ResultSet rs = null;
 
 //初始化
 public void init(String sql){
 if(sql.equals("")){
 sql = "select * from stu";
 }
 //中間
 //設置列名
 columnNames = new Vector();
 columnNames.add("學號");
 columnNames.add("名字");
 columnNames.add("性別");
 columnNames.add("年齡");
 columnNames.add("籍貫");
 columnNames.add("門派");
 
 //rowData存放多行
 rowData = new Vector();
 
 try{
 //1.加載驅動
 Class.forName("com.mysql.jdbc.Driver");
 System.out.println("加載成功");
 //2.連接數據庫
 //定義幾個常量
 String url = "jdbc:mysql://localhost:3306/spdb1";
 String user = "root";
 String passwd = "lfdy";
 
 ct = DriverManager.getConnection(url,user,passwd);
 stat = ct.createStatement();//創建stat對象
 rs = stat.executeQuery(sql);//查詢結果
 
 while(rs.next()){
 Vector hang = new Vector();
 hang.add(rs.getString(1));
 hang.add(rs.getString(2));
 hang.add(rs.getString(3));
 hang.add(rs.getInt(4));
 hang.add(rs.getString(5));
 hang.add(rs.getString(6));
 //加入到rowData中
 rowData.add(hang);
 
 }
 
 }catch(Exception e){
 e.printStackTrace();
 }finally{
 try{
 if(rs!=null){
 rs.close();
 rs = null;
 }
 if(stat != null){
 stat.close();
 stat = null;
 }
 if(ct != null){
 ct.close();
 ct = null;
 }
 }catch(Exception e){
 e.printStackTrace();
 }
 }
 }
 
 //增加學生函數
 public void addStu(String sql){
 //根據用戶輸入的sql語句,完成添加任務
 
 
 
 }
 
 //第二個構造函數,通過傳遞的sql語句來獲得數據模型
 public StuModel(String sql){
 this.init(sql);
 }
 
 //構造函數,用于初始化我的數據模型(表)
 public StuModel(){
 this.init("");
 }
 
 //得到共有多少行
 public int getRowCount() {
 // TODO Auto-generated method stub
 return this.rowData.size();
 }
 
 //得到共有多少列
 public int getColumnCount() {
 // TODO Auto-generated method stub
 return this.columnNames.size();
 }
 
 //得到某行某列的數據
 public Object getValueAt(int row, int column) {
 // TODO Auto-generated method stub
 return ((Vector)(this.rowData.get(row))).get(column);
 }
 
 //得到屬性名字
 public String getColumnName(int column) {
 // TODO Auto-generated method stub
 return (String)this.columnNames.get(column);
 }
}

StuAddDiag.java: 

?
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
package com.test2;
 
import javax.swing.JDialog;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.*;
 
public class StuAddDiag extends JDialog implements ActionListener {
 //定義我需要的swing組件
 JLabel jl1,jl2,jl3,jl4,jl5,jl6;
 JTextField jf1,jf2,jf3,jf4,jf5,jf6;
 JPanel jp1,jp2,jp3;
 JButton jb1,jb2;
 //owner代筆父窗口,title是窗口的名字,modal指定是模式窗口()或者非模式窗口
 public StuAddDiag(Frame owner,String title, boolean modal){
 //調用父類方法
 super(owner,title,modal);
 
 jl1 = new JLabel("學號");
 jl2 = new JLabel("名字");
 jl3 = new JLabel("性別");
 jl4 = new JLabel("年齡");
 jl5 = new JLabel("籍貫");
 jl6 = new JLabel("門派");
 
 jf1 = new JTextField(10);
 jf2 = new JTextField(10);
 jf3 = new JTextField(10);
 jf4 = new JTextField(10);
 jf5 = new JTextField(10);
 jf6 = new JTextField(10);
 
 jb1 = new JButton("添加");
 jb1.addActionListener(this);
 jb2 = new JButton("取消");
 
 jp1 = new JPanel();
 jp2 = new JPanel();
 jp3 = new JPanel();
 
 //設置布局
 jp1.setLayout(new GridLayout(6,1));
 jp2.setLayout(new GridLayout(6,1));
 
 jp3.add(jb1);
 jp3.add(jb2);
 
 jp1.add(jl1);
 jp1.add(jl2);
 jp1.add(jl3);
 jp1.add(jl4);
 jp1.add(jl5);
 jp1.add(jl6);
 
 jp2.add(jf1);
 jp2.add(jf2);
 jp2.add(jf3);
 jp2.add(jf4);
 jp2.add(jf5);
 jp2.add(jf6);
 
 this.add(jp1, BorderLayout.WEST);
 this.add(jp2, BorderLayout.CENTER);
 this.add(jp3, BorderLayout.SOUTH);
 
 this.setSize(300,200);
 this.setVisible(true);
 }
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 if(e.getSource() == jb1){
 Connection ct = null;
 PreparedStatement pstmt = null;
 ResultSet rs = null;
 
 try{
 //1.加載驅動
 Class.forName("com.mysql.jdbc.Driver");
 System.out.println("加載成功");
 //2.連接數據庫
 //定義幾個常量
 String url = "jdbc:mysql://localhost:3306/spdb1";
 String user = "root";
 String passwd = "lfdy";
 ct = DriverManager.getConnection(url,user,passwd);
 
 //與編譯語句對象
 
 String strsql = "insert into stu values(?,?,?,?,?,?)";
 pstmt = ct.prepareStatement(strsql);
 
 //給對象賦值
 pstmt.setString(1,jf1.getText());
 pstmt.setString(2,jf2.getText());
 pstmt.setString(3,jf3.getText());
 pstmt.setString(4,jf4.getText());
 pstmt.setString(5,jf5.getText());
 pstmt.setString(6,jf6.getText());
 
 pstmt.executeUpdate();
 
 this.dispose();//關閉學生對話框
 
 }catch(Exception arg1){
 arg1.printStackTrace();
 }finally{
 try{
 if(rs!=null){
 rs.close();
 rs = null;
 }
 if(pstmt != null){
 pstmt.close();
 pstmt = null;
 }
 if(ct != null){
 ct.close();
 ct = null;
 }
 }catch(Exception arg2){
 arg2.printStackTrace();
 }
 }
 
 }
 
 }
 
 
}

StuUpDiag.java: 

 

?
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
package com.test2;
/*
 * 修改學生
 */
import javax.swing.JDialog;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.*;
 
public class StuUpDiag extends JDialog implements ActionListener {
 //定義我需要的swing組件
 JLabel jl1,jl2,jl3,jl4,jl5,jl6;
 JTextField jf1,jf2,jf3,jf4,jf5,jf6;
 JPanel jp1,jp2,jp3;
 JButton jb1,jb2;
 //owner代筆父窗口,title是窗口的名字,modal指定是模式窗口()或者非模式窗口
 public StuUpDiag(Frame owner,String title, boolean modal,StuModel sm,int rowNum){
 //調用父類方法
 super(owner,title,modal);
 
 jl1 = new JLabel("學號");
 
 jl2 = new JLabel("名字");
 
 jl3 = new JLabel("性別");
 jl4 = new JLabel("年齡");
 jl5 = new JLabel("籍貫");
 
 
 
 jl6 = new JLabel("門派");
 
 
 jf1 = new JTextField(10);jf1.setText((sm.getValueAt(rowNum, 0)).toString());
 jf2 = new JTextField(10);jf2.setText((String)sm.getValueAt(rowNum, 1));
 jf3 = new JTextField(10);jf3.setText(sm.getValueAt(rowNum, 2).toString());
 jf4 = new JTextField(10);jf4.setText((sm.getValueAt(rowNum, 3)).toString());
 jf5 = new JTextField(10);jf5.setText((String)sm.getValueAt(rowNum, 4));
 jf6 = new JTextField(10);jf6.setText((String)sm.getValueAt(rowNum, 5));
 
 jb1 = new JButton("修改");
 jb1.addActionListener(this);
 jb2 = new JButton("取消");
 
 jp1 = new JPanel();
 jp2 = new JPanel();
 jp3 = new JPanel();
 
 //設置布局
 jp1.setLayout(new GridLayout(6,1));
 jp2.setLayout(new GridLayout(6,1));
 
 jp3.add(jb1);
 jp3.add(jb2);
 
 jp1.add(jl1);
 jp1.add(jl2);
 jp1.add(jl3);
 jp1.add(jl4);
 jp1.add(jl5);
 jp1.add(jl6);
 
 jp2.add(jf1);
 jp2.add(jf2);
 jp2.add(jf3);
 jp2.add(jf4);
 jp2.add(jf5);
 jp2.add(jf6);
 
 this.add(jp1, BorderLayout.WEST);
 this.add(jp2, BorderLayout.CENTER);
 this.add(jp3, BorderLayout.SOUTH);
 
 this.setSize(300,200);
 this.setVisible(true);
 }
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 if(e.getSource() == jb1){
 Connection ct = null;
 PreparedStatement pstmt = null;
 ResultSet rs = null;
 
 try{
 //1.加載驅動
 Class.forName("com.mysql.jdbc.Driver");
 System.out.println("加載成功");
 //2.連接數據庫
 //定義幾個常量
 String url = "jdbc:mysql://localhost:3306/spdb1";
 String user = "root";
 String passwd = "lfdy";
 ct = DriverManager.getConnection(url,user,passwd);
 
 //與編譯語句對象
 
 String strsql = "insert into stu values(?,?,?,?,?,?)";
 pstmt = ct.prepareStatement(strsql);
 
 //給對象賦值
 pstmt.setString(1,jf1.getText());
 pstmt.setString(2,jf2.getText());
 pstmt.setString(3,jf3.getText());
 pstmt.setString(4,jf4.getText());
 pstmt.setString(5,jf5.getText());
 pstmt.setString(6,jf6.getText());
 
 pstmt.executeUpdate();
 
 this.dispose();//關閉學生對話框
 
 }catch(Exception arg1){
 arg1.printStackTrace();
 }finally{
 try{
 if(rs!=null){
 rs.close();
 rs = null;
 }
 if(pstmt != null){
 pstmt.close();
 pstmt = null;
 }
 if(ct != null){
 ct.close();
 ct = null;
 }
 }catch(Exception arg2){
 arg2.printStackTrace();
 }
 }
 
 }
 
 }
 
 
}

開發與測試結果:

1.系統主界面:

Java+Mysql學生管理系統源碼

2.按名字查詢:

Java+Mysql學生管理系統源碼

3.選中一行,刪除:

Java+Mysql學生管理系統源碼

4.選中一行修改:

Java+Mysql學生管理系統源碼

5.點擊添加按鈕,進行添加:

Java+Mysql學生管理系統源碼

后續此系統將繼續完善,有疑問和技術交流的,可聯系本人:[email protected]

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲天堂影院 | 无码日韩精品一区二区免费 | 摄像头东北对白清晰 | 国产麻豆剧果冻传媒影视4934 | 午夜综合网 | 欧洲vodafonewi精品 | 色综合久久天天综合 | 热久久99精品这里有精品 | 国产白虎 | 91麻豆精品国产自产在线观看 | 2022最新国产在线 | 亚洲国产成人久久99精品 | 日韩色在线观看 | 美女污视频 | 亚洲精品久久久久69影院 | 国产一区国产二区国产三区 | 日韩精品成人在线 | 日本亚洲欧洲高清有码在线播放 | 日韩精品欧美高清区 | 猛男深夜狂cao小男生 | 国产欧美va欧美va香蕉在线观 | 亚洲网站在线 | 97操 | 激情婷婷综合久久久久 | 成人在线视频在线观看 | 精品一区二区三区在线播放 | 精品国产区 | 久久久久激情免费观看 | 国产在亚洲线视频观看 | 超91精品手机国产在线 | 激情小说欧美图片 | 日产精品一二三四区国产 | 男人在女人下面狂躁 | 69av导航| 先锋资源av | japanese在线看 | 91精品综合久久久久m3u8 | 国产大秀视频 | 精品国产一区二区在线观看 | 国产一区二区三区在线 | 99久久国语露脸精品国产 |