1. 程式人生 > >基於java+mysql學生管理系統的實現

基於java+mysql學生管理系統的實現

前言:因為也不完全是自己做的   我只是在前人的基礎上修改了部分程式碼   添加了資料庫  實現了介面而已   希望對諸位能有所幫助   最後想說一句 ,借鑑就行 但別完全照搬,CSDN賬號只是不定期上而已 

好了 不廢話,原始碼和部分實現效果附上:

package First;


import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


import com.mysql.jdbc.Driver;


import First.Window;


public class Add extends JFrame {
private static final long serialVersionUID = -1928970409928880648L;

JLabel jlnumber = new JLabel("學號:");
JLabel jlname = new JLabel("姓名:");
JLabel jlsex = new JLabel("性別:");
JLabel jlbirthday = new JLabel("出生日期:");
JLabel jldepartment = new JLabel("學院:");

JTextField jtnumber = new JTextField("",20);
JTextField jtname = new JTextField("",20);
JTextField jtsex = new JTextField("",20);
JTextField jtbirthday = new JTextField("",20);
JTextField jtdepartment = new JTextField("",20);

JButton buttonadd = new JButton("新增");
JButton buttonreturn = new JButton("返回");


public Add() {
JPanel jpnumber = new JPanel();
JPanel jpname = new JPanel();
JPanel jpsex = new JPanel();
JPanel jpbirthday = new JPanel();
JPanel jpdepartment = new JPanel();
JPanel jpforbutton = new JPanel(new GridLayout(1,1));

jpnumber.add(jlnumber);
jpnumber.add(jtnumber);

jpname.add(jlname);
jpname.add(jtname);

jpsex.add(jlsex);
jpsex.add(jtsex);

jpbirthday.add(jlbirthday);
jpbirthday.add(jtbirthday);

jpdepartment.add(jldepartment);
jpdepartment.add(jtdepartment);

jpforbutton.add(buttonadd);
jpforbutton.add(buttonreturn);

buttonadd.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){

//Add
Connection conn = null; 
Statement stat = null;
PreparedStatement ps=null;
String sql = "INSERT INTO student(number,name,sex,birthday,department) "
+ "values(?,?,?,?,?)";
try{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("JBDC 載入成功!");
}catch(Exception a){
System.out.println("JBDC 啊哦!");
a.printStackTrace();
}
try{
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/lala","root","405420");
ps=conn.prepareStatement(sql);

ps.setString(1,jtnumber.getText());
ps.setString(2,jtname.getText());
ps.setString(3,jtsex.getText());
ps.setString(4,jtbirthday.getText());
ps.setString(5,jtdepartment.getText());


ps.executeUpdate();

//System.out.println("MySQL 連線成功!");
//stat = conn.createStatement();
//stat.executeUpdate(sql);
//System.out.println("插入資料成功!");

}catch (SQLException b){
b.printStackTrace();
}finally{
try{
conn.close();
System.out.println("MySQL 關閉成功");
}catch (SQLException c){
System.out.println("MySQL 關閉失敗 ");
c.printStackTrace();
}

}


}}

);

buttonreturn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Window window = new Window();
}
});


this.setTitle("新增學生資訊");
this.setLayout(new GridLayout(9,1));
this.add(jpnumber);
this.add(jpname);
this.add(jpsex);
this.add(jpbirthday);
this.add(jpdepartment);
this.add(jpforbutton);
this.setLocation(400,300);
this.setSize(350,300);
this.setVisible(true);

}


}

package First;


import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


import First.Window;


public class Ask extends JFrame {
private static final long serialVersionUID = -1928970409928880648L;

JLabel jlnumber = new JLabel("學號:");
JLabel jlname = new JLabel("姓名:");
JLabel jlsex = new JLabel("性別:");
JLabel jlbirthday = new JLabel("出生日期:");
JLabel jldepartment = new JLabel("學院:");

JTextField jtnumber = new JTextField("",20);
JLabel jname = new JLabel();
JLabel jsex = new JLabel();
JLabel jbirthday = new JLabel();
JLabel jdepartment = new JLabel();

JButton buttonask = new JButton("查詢");
JButton buttonreturn = new JButton("返回");


public Ask() {
JPanel jpnumber = new JPanel();
JPanel jpname = new JPanel();
JPanel jpsex = new JPanel();
JPanel jpbirthday = new JPanel();
JPanel jpdepartment = new JPanel();
JPanel jpforbutton = new JPanel(new GridLayout(1,1));

jpnumber.add(jlnumber);
jpnumber.add(jtnumber);

jpname.add(jlname);
jpname.add(jname);

jpsex.add(jlsex);
jpsex.add(jsex);

jpbirthday.add(jlbirthday);
jpbirthday.add(jbirthday);

jpdepartment.add(jldepartment);
jpdepartment.add(jdepartment);

jpforbutton.add(buttonask);
jpforbutton.add(buttonreturn);

buttonask.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Connection conn = null;
ResultSet res = null;
Statement stat = null;

String sql = "SELECT number,name,sex,birthday,department FROM student;";
try{
Class.forName("com.mysql.jdbc.Driver");

}catch(Exception d){
System.out.println("jdbc fall");
d.printStackTrace();
}
try{
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/lala","root","405420");
stat=conn.createStatement();
res=stat.executeQuery(sql);
while (res.next())
{
if (res.getString(1).equals(jtnumber.getText()))
{
jname.setText(res.getString(2));
jsex.setText(res.getString(3));
jbirthday.setText(res.getString(4));
jdepartment.setText(res.getString(5));


break;
}
}
}catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();


}
finally{
try{
conn.close();
}catch(SQLException ar){
ar.printStackTrace();
}

}}}

);

buttonreturn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Window window = new Window();
}
});


this.setTitle("查詢學生資訊");
this.setLayout(new GridLayout(9,1));
this.add(jpnumber);
this.add(jpname);
this.add(jpsex);
this.add(jpbirthday);
this.add(jpdepartment);
this.add(jpforbutton);
this.setLocation(400,300);
this.setSize(350,300);
this.setVisible(true);


}


}



package First;


import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


import First.Window;


public class Change extends JFrame {
private static final long serialVersionUID = -1928970409928880648L;


JLabel jlnumber = new JLabel("學號:");
JLabel jlname = new JLabel("姓名:");
JLabel jlsex = new JLabel("性別:");
JLabel jlbirthday = new JLabel("出生日期:");
JLabel jldepartment = new JLabel("學院:");


JTextField jtnumber = new JTextField("", 20);
JTextField jtname = new JTextField("", 20);
JTextField jtsex = new JTextField("", 20);
JTextField jtbirthday = new JTextField("", 20);
JTextField jtdepartment = new JTextField("", 20);


JButton buttonchange = new JButton("修改");
JButton buttonreturn = new JButton("返回");


public Change() {
JPanel jpnumber = new JPanel();
JPanel jpname = new JPanel();
JPanel jpsex = new JPanel();
JPanel jpbirthday = new JPanel();
JPanel jpdepartment = new JPanel();
JPanel jpforbutton = new JPanel(new GridLayout(1, 1));


jpnumber.add(jlnumber);
jpnumber.add(jtnumber);


jpname.add(jlname);
jpname.add(jtname);


jpsex.add(jlsex);
jpsex.add(jtsex);


jpbirthday.add(jlbirthday);
jpbirthday.add(jtbirthday);


jpdepartment.add(jldepartment);
jpdepartment.add(jtdepartment);


jpforbutton.add(buttonchange);
jpforbutton.add(buttonreturn);


buttonchange.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String number = jtnumber.getText();
String name = jtname.getText();
String sex = jtsex.getText();
String birthday = jtbirthday.getText();
String department = jtdepartment.getText();


Connection conn = null;
ResultSet res = null;
Statement stat = null;


String sql = "SELECT number,name,sex,birthday,department FROM student;";
try {
Class.forName("com.mysql.jdbc.Driver");


} catch (Exception d) {
System.out.println("jdbc fall");
d.printStackTrace();
}
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/lala", "root", "405420");
stat = conn.createStatement();
res = stat.executeQuery(sql);
while (res.next()) {
// change
if (res.getString(1).equals(jtnumber.getText())) {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception d) {
System.out.println("jdbc fail");
d.printStackTrace();
}


String sql2 = "UPDATE student SET name='" + name + "'  WHERE number='" + jtnumber.getText()
+ "'";
String sql3 = "UPDATE student SET sex='" + sex + "'  WHERE number='" + jtnumber.getText()
+ "'";
String sql4 = "UPDATE student SET birthday='" + birthday + "'  WHERE number='"
+ jtnumber.getText() + "'";
String sql5 = "UPDATE student SET department='" + department + "'  WHERE number='"
+ jtnumber.getText() + "'";
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/lala", "root","405420");
stat = conn.createStatement();
stat.executeUpdate(sql2);
stat.executeUpdate(sql3);
stat.executeUpdate(sql4);
stat.executeUpdate(sql5);
} catch (SQLException g) {
// TODO Auto-generated catch block
g.printStackTrace();
}
try {
stat.close();
conn.close();
} catch (SQLException ar) {
ar.printStackTrace();
}


break;
}


// change end
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();


} finally {
try {
conn.close();
} catch (SQLException ar) {
ar.printStackTrace();
}


}


}


});


buttonreturn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Window window = new Window();
}
});


this.setTitle("修改學生資訊");
this.setLayout(new GridLayout(9, 1));
this.add(jpnumber);
this.add(jpname);
this.add(jpsex);
this.add(jpbirthday);
this.add(jpdepartment);
this.add(jpforbutton);
this.setLocation(400, 300);
this.setSize(350, 300);
this.setVisible(true);


}


}
package First;


import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


import First.Window;


public class Delete extends JFrame {
private static final long serialVersionUID = -1928970409928880648L;


JLabel jlnumber = new JLabel("學號:");


JTextField jtnumber = new JTextField("", 20);


JButton buttondelete = new JButton("刪除");
JButton buttonreturn = new JButton("返回");


public Delete() {
JPanel jpnumber = new JPanel();
JPanel jpforbutton = new JPanel(new GridLayout(1, 1));


jpnumber.add(jlnumber);
jpnumber.add(jtnumber);


jpforbutton.add(buttondelete);
jpforbutton.add(buttonreturn);


buttondelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String number = jtnumber.getText();


Connection conn = null;
ResultSet res = null;
Statement stat = null;
String sql = "DELETE FROM student WHERE number='" + number + "'";


try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception a) {
a.printStackTrace();
}
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/lala", "root", "405420");
stat = conn.createStatement();
stat.executeUpdate(sql);
} catch (SQLException h) {
h.printStackTrace();


} finally {
try {
conn.close();
System.out.println("close success!");
} catch (SQLException j) {
System.out.println("close go die!");
j.printStackTrace();
}


}


}


});


buttonreturn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Window window = new Window();
}
});


this.setTitle("刪除學生資訊");
this.setLayout(new GridLayout(9, 1));
this.add(jpnumber);
this.add(jpforbutton);
this.setLocation(400, 300);
this.setSize(350, 300);
this.setVisible(true);


}


}
package First;


import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;


import First.Window;


public class Look extends JFrame {
private static final long serialVersionUID = -1928970409928880648L;


Connection conn = null;
PreparedStatement ps = null;
ResultSet res = null;


// JButton buttonlook = new JButton("瀏覽");
// JButton buttonreturn = new JButton("返回");


JTable jtable;
JScrollPane jscrollpane = new JScrollPane();


Vector columnNames = null;
Vector rowData = null;


public Look() {
JPanel jpforbutton = new JPanel(new GridLayout(1, 1));


columnNames = new Vector();
columnNames.add("學號");
columnNames.add("姓名");
columnNames.add("性別"); 
columnNames.add("出生日期"); 
columnNames.add("學院"); 
rowData = new Vector();


// jpforbutton.add(buttonlook);
// jpforbutton.add(buttonreturn);


try {

Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/lala", "root", "405420");
ps = conn.prepareStatement("SELECT number,name,sex,birthday,department FROM student");
res = ps.executeQuery();
while (res.next()) {
Vector hang = new Vector();
hang.add(res.getString(1));
hang.add(res.getString(2));
hang.add(res.getString(3));
hang.add(res.getString(4));
hang.add(res.getString(5));
rowData.add(hang);


}
System.out.println("load  ok!");
} catch (Exception q) {
q.printStackTrace();
System.out.println("go die");
} finally {
try {
res.close();
ps.close();
conn.close();
System.out.println("close ok");
} catch (SQLException o) {
o.printStackTrace();
System.out.println("go die 2");
}
}


jtable = new JTable(rowData, columnNames);
jscrollpane = new JScrollPane(jtable);


this.add(jscrollpane);
this.setTitle("瀏覽學生資訊");
this.setLayout(new GridLayout(2, 5));
this.add(jpforbutton);
this.setLocation(300, 300);
this.setSize(500, 300);
this.setVisible(true);
this.setResizable(false);


}


}
package First;


import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class Window {
public static void main(String[] args) {
JFrame jframe = new JFrame("學生管理系統"); // window
Dimension d = new Dimension(400, 300);
Point p = new Point(250, 350);


jframe.setSize(d);
jframe.setLocation(p);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


JButton button1 = new JButton("新增");
JButton button2 = new JButton("修改");
JButton button3 = new JButton("查詢");
JButton button4 = new JButton("刪除");
JButton button5 = new JButton("瀏覽");



FlowLayout flow = new FlowLayout(FlowLayout.LEFT, 10, 10);
JPanel panel = new JPanel(flow);



panel.setVisible(true);
button1.setVisible(true);

button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Add add = new Add();


}
});


button2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Change change = new Change();
}
});


button3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Ask ask = new Ask();
}
});


button4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Delete delete = new Delete();
}
});


button5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Look look = new Look();
}
});
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
panel.add(button5);


jframe.add(panel);

jframe.setVisible(true);

}


}