Java学生信息管理系统设计(数据库版)

转载  2017-11-14   作者:SHENGLI_509   我要评论

这篇文章主要为大家详细介绍了数据库版的Java学生信息管理系统设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了数据库版的Java学生信息管理系统,供大家参考,具体内容如下

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(); 
   } 
    
  } 
 
} 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

最新评论