package Student_system;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.*;
/*class Stu implements java.io.Serializable{
String number,name,specialty,grade,borth,sex;
public Stu(){};
public void setNumber(String number){ this.number=number;}
public String getNumber(){ return number;}
public void setName(String name){ this.name=name;}
public String getName(){ return name;}
public void setSex(String sex){ this.sex=sex;}
public String getSex(){ return sex;}
public void setSpecialty(String specialty){ this.specialty=specialty;}
public String getSpecialty(){ return specialty;}
public void setGrade(String grade){ this.grade=grade;}
public String getGrade(){ return grade;}
public void setBorth(String borth){ this.borth=borth;}
public String getBorth(){ return borth;}
}*/
public class StudentSystem extends JFrame{
public static void main(String[] args){
JFrame frame = new JFrame();
frame.setTitle("信息管理系統");
frame.setSize(500, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container container = frame.getContentPane();
container.setLayout(new FlowLayout());
JLabel lb=new JLabel("錄入請先輸入記錄,查詢、刪除請先輸入學號,修改是對查詢" +
"內容改後的保存!");
final JTextField 學號;
final JTextField 姓名;
final JTextField 專業;
final JTextField 年級;
final JTextField 出生;
final JRadioButton 男;
final JRadioButton 女;
ButtonGroup group=null;
JButton 錄入,查詢,刪除,修改,顯示;
JPanel p1,p2,p3,p4,p5,p6,pv,ph;
學號=new JTextField(10);
姓名=new JTextField(10);
專業=new JTextField(10);
年級=new JTextField(10);
出生=new JTextField(10);
group=new ButtonGroup();
男=new JRadioButton("男");
女=new JRadioButton("女");
group.add(男);
group.add(女);
錄入=new JButton("錄入");
查詢=new JButton("查詢");
刪除=new JButton("刪除");
修改=new JButton("修改");
顯示=new JButton("顯示");
修改.setEnabled(false);
//添加輸入框及文本框
p1=new JPanel();
p1.add(new JLabel("學號:",JLabel.CENTER));
p1.add(學號);
p2=new JPanel();
p2.add(new JLabel("姓名:",JLabel.CENTER));
p2.add(姓名);
p3=new JPanel();
p3.add(new JLabel("性別:",JLabel.CENTER));
p3.add(男);
p3.add(女);
p4=new JPanel();
p4.add(new JLabel("專業:",JLabel.CENTER));
p4.add(專業);
p5=new JPanel();
p5.add(new JLabel("年級:",JLabel.CENTER));
p5.add(年級);
p6=new JPanel();
p6.add(new JLabel("出生:",JLabel.CENTER));
p6.add(出生);
pv=new JPanel();
pv.setLayout(new GridLayout(6,1));
pv.add(p1);
pv.add(p2);
pv.add(p3);
pv.add(p4);
pv.add(p5);
pv.add(p6);
ph=new JPanel();
ph.add(錄入);
ph.add(查詢);
ph.add(修改);
ph.add(刪除);
ph.add(顯示);
frame.add(lb);
frame.add(ph);
frame.add(p1);
frame.add(p2);
frame.add(p3);
frame.add(p4);
frame.add(p5);
frame.add(p6);
frame.add(pv);
frame.add(ph);
class MyListener implements ActionListener {
public void actionPerformed (ActionEvent e) {
//判斷選中是男是女
/*if(e.getSource().equals(男)){
if(男.isSelected()) {
System.out.println("男被選中了");
} else {
System.out.println("男被取消選中了");
}
}
if(e.getSource().equals(女)){
if(女.isSelected()) {
System.out.println("女被選中了");
} else {
System.out.println("女被取消選中了");
}
}*/
//錄入 的功能
if(e.getActionCommand() == "錄入") {
String text1 = 學號.getText().trim();
String text2 = 姓名.getText();
String text3 = 專業.getText();
String text4 = 年級.getText();
String text5 = 出生.getText();
String text6 = null;
String text7 = "- - - - -我是分割線 - - - - -";
if(男.isSelected()) {
text6 = "男";
}
if(女.isSelected()) {
text6 = "女";
}
//用texts包含此次所有錄入信息
String texts = "\n\n學號:" + text1 + "\n\n" + "姓名:" + text2 + "\n\n" + "專業:" + text3 + "\n\n" + "年級:" + text4 + "\n\n" + "出生:" + text5 + "\n\n" + "性別:" + text6 + "\n\n" ;
//顯示框
int m = JOptionPane.showConfirmDialog(null, "是否錄入該條記錄:" + texts , "錄入" , JOptionPane.YES_NO_OPTION);//n = 1/0;
if(m==0) {
insert_Student(text1,text2,text3,text4,text5);
} else {
JOptionPane.showMessageDialog(null, "已取消該次錄入!!");
}
}
//顯示 的功能
if(e.getActionCommand() == "顯示") {
int n = JOptionPane.showConfirmDialog(null, "是否顯示所有記錄" , "顯示" , JOptionPane.YES_NO_OPTION);//n = 1/0;
if(n ==0 ) {
try {
File file = new File("D:/file.txt");
InputStreamReader reader = new InputStreamReader(
new FileInputStream(file));//創建一個輸入流對象
BufferedReader bufferReader = new BufferedReader(reader);
String line = "";
String lines = null;
line = bufferReader.readLine();
while(line != null) {
System.out.println(line);
if(lines != null) {
lines = lines + "\n" + line + "\n";
} else {
lines = line + "\n" ;
}
line = bufferReader.readLine();
}
//JOptionPane.showMessageDialog(null, lines , "顯示",JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e1) {
e1.printStackTrace();
}
} else {
JOptionPane.showMessageDialog(null, "已取消該次查詢");
}
}
//查詢 的功能
if(e.getActionCommand() == "查詢") {
File file = new File("D:/file.txt");
BufferedReader reader = null;
String text7 = "- - - - -我是分割線 - - - - -";
try {
//InputStreamReader reader = new InputStreamReader(
// new FileInputStream(file));//創建一個輸入流對象
reader = new BufferedReader(new FileReader(file));
//暫時僅允許查詢學號
String text1 = 學號.getText();
int n = JOptionPane.showConfirmDialog(null, "查詢的學號爲:" + text1 , "查詢" , JOptionPane.YES_NO_OPTION);//n = 1/0;
if(n == 0){
String line = null;
String lines = null;
while((line = reader.readLine())!= null) {
if(line.equals(text1)) {
System.out.println(line);
while(!(line.equals(text7))){
line = reader.readLine();
if(lines == null) {
lines = line + "\n";
} else {
lines = lines + line + "\n";
}
System.out.println(line);
}
} else {
continue;
}
}
JOptionPane.showMessageDialog(null, lines , "查詢",JOptionPane.INFORMATION_MESSAGE);
reader.close();
} else {
JOptionPane.showMessageDialog(null, "已取消查詢功能");
}
} catch (Exception e1) {
e1.printStackTrace();
} finally {
if(reader != null) {
try {
reader.close();
}catch (IOException e1){
}
}
}
}
//刪除 的功能
if(e.getActionCommand() == "刪除") {
String text1 = 學號.getText().trim();
delete_Student(text1);
}
}
}
//------------註冊監聽-------------
MyListener listener = new MyListener();
MyListener listen = new MyListener();
顯示.addActionListener(listener);
錄入.addActionListener(listener);
查詢.addActionListener(listener);
刪除.addActionListener(listener);
男.addActionListener(listen);
女.addActionListener(listen);
frame.setVisible(true);
}
/*
* ---------------------- 功能函數 ---------------------
*/
//獲取所有的數據
//
public static void getAllMessage(){
try {
//添加JDBC驅動
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost/test";
String user = "root";
String password = "root";
Connection connect = DriverManager.getConnection(url,user,password);
Statement stmt = connect.createStatement();
System.out.println("success to connect ");
//讀取所有的數據
String sql1 = "select * from StudentSystem";
ResultSet rs = stmt.executeQuery(sql1);
System.out.println("學號\t姓名\t專業\t年級\t出生");
String lines = null;
while(rs.next()) {
System.out.print(rs.getString(1)+ "\t");
System.out.print(rs.getString(2)+ "\t");
System.out.print(rs.getString(3)+ "\t");
System.out.print(rs.getString(4)+ "\t");
System.out.print(rs.getString(5)+ "\t");
System.out.println();
if(lines != null){
lines = lines + "學號__姓名__專業__年級__出生\n" + rs.getString(1)+ " "+ rs.getString(2)+ " "+ rs.getString(3)
+ " "+ rs.getString(4)+ " "+ rs.getString(5)+ " " + "\n\n";
} else {
lines ="數據庫中所有數據:\n\n" + "學號__姓名__專業__年級__出生\n" + rs.getString(1)+ ""+ rs.getString(2)+ " "+ rs.getString(3)
+ " "+ rs.getString(4)+ " "+ rs.getString(5)+ " " + "\n";
}
}
JOptionPane.showMessageDialog(null, lines , "顯示",JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 插入功能
*/
public static void insert_Student(String str1,String str2,String str3,String str4,String str5){
try {
//添加JDBC驅動
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost/test";
String user = "root";
String password = "root";
//連接數據庫
Connection connect = DriverManager.getConnection(url,user,password);
Statement stmt = connect.createStatement();
System.out.println("success to connect ");
/**
*
*/
String lines = null;
String sql = "select * from StudentSystem";//要執行的SQL
String sql2 = "delete from StudentSystem where id =?";
String sql3 = "insert into StudentSystem(id,name,study,grade,birthplace)VALUES(?,?,?,?,?)";//SQL命令
PreparedStatement pst = (PreparedStatement)connect.prepareStatement(sql3);
pst = connect.prepareStatement(sql3);
pst.setNString(1,str1);//1,2,3,爲對應上面的參數,切記!!!!!這裏”12“傳給了第一個問號代表的 ID
pst.setString(2,str2);
pst.setString(3,str3);
pst.setString(4,str4);
pst.setString(5,str5);
pst.executeUpdate();
JOptionPane.showMessageDialog(null, "該次錄入成功!!");
ResultSet rs = stmt.executeQuery(sql);
System.out.println("學號\t姓名\t專業\t年級\t出生");
while(rs.next()) {
System.out.print(rs.getString(1)+ "\t");
System.out.print(rs.getString(2)+ "\t");
System.out.print(rs.getString(3)+ "\t");
System.out.print(rs.getString(4)+ "\t");
System.out.print(rs.getString(5)+ "\t");
System.out.println();
if(lines != null){
lines = lines + "學號__姓名__專業__年級__出生\n" + rs.getString(1)+ " "+ rs.getString(2)+ " "+ rs.getString(3)
+ " "+ rs.getString(4)+ " "+ rs.getString(5)+ " " + "\n\n";
} else {
lines ="數據庫中所有數據:\n\n" + "學號__姓名__專業__年級__出生\n" + rs.getString(1)+ ""+ rs.getString(2)+ " "+ rs.getString(3)
+ " "+ rs.getString(4)+ " "+ rs.getString(5)+ " " + "\n";
}
}
JOptionPane.showMessageDialog(null, lines , "顯示",JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* ------------刪除功能------------
*/
public static void delete_Student(String str){
try {
//添加JDBC驅動
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost/test";
String user = "root";
String password = "root";
//連接數據庫
Connection connect = DriverManager.getConnection(url,user,password);
Statement stmt = connect.createStatement();
System.out.println("success to connect ");
//**
String lines = null;
String sql = "select * from StudentSystem";//要執行的SQL
String sql2 = "delete from StudentSystem where id =?";
PreparedStatement pst = (PreparedStatement)connect.prepareStatement(sql2);
pst = connect.prepareStatement(sql2);
pst.setString(1,str);
pst.executeUpdate();
JOptionPane.showMessageDialog(null, "已刪除該條記錄", "刪除" ,JOptionPane.INFORMATION_MESSAGE);
ResultSet rs = stmt.executeQuery(sql);
System.out.println("學號\t姓名\t專業\t年級\t出生");
while(rs.next()) {
System.out.print(rs.getString(1)+ "\t");
System.out.print(rs.getString(2)+ "\t");
System.out.print(rs.getString(3)+ "\t");
System.out.print(rs.getString(4)+ "\t");
System.out.print(rs.getString(5)+ "\t");
System.out.println();
if(lines != null){
lines = lines + "學號__姓名__專業__年級__出生\n" + rs.getString(1)+ " "+ rs.getString(2)+ " "+ rs.getString(3)
+ " "+ rs.getString(4)+ " "+ rs.getString(5)+ " " + "\n\n";
} else {
lines ="數據庫中所有數據:\n\n" + "學號__姓名__專業__年級__出生\n" + rs.getString(1)+ ""+ rs.getString(2)+ " "+ rs.getString(3)
+ " "+ rs.getString(4)+ " "+ rs.getString(5)+ " " + "\n";
}
}
JOptionPane.showMessageDialog(null, lines , "顯示",JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e) {
e.printStackTrace();
}
}
}
JAVA學生信息管理系統(數據庫版)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.