import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.sql.*; public class StudentManagement extends JFrame implements ActionListener{ JTabbedPane dbTabPane; JPanel JP1=new JPanel();//输入面板 JPanel JP2=new JPanel();//浏览面板 JPanel JP3=new JPanel();//查询面板 JPanel JP4=new JPanel();//删除面板 JButton JB1,JB2,JB3,JB4; JTextField JTF1,JTF2,JTF3,JTF4,JTF5,JTF6,JTF7; JTextArea JTA1,JTA2,JTA3; Choice c1; Connection conn; Statement stmt; public StudentManagement(){ super("学生基本信息管理"); setGUIComponent(); } public void setGUIComponent(){ Container c=getContentPane(); c.setLayout(new BorderLayout()); dbTabPane=new JTabbedPane(); //定义录入面板 JP1.setLayout(new BorderLayout()); Panel p1=new Panel(); p1.setLayout(new GridLayout(3,4,10,10)); JP1.setBackground(Color.green); JLabel JLb1=new JLabel("学号"); JLabel JLb2=new JLabel("姓名"); JLabel JLb3=new JLabel("年龄"); JLabel JLb4=new JLabel("性别"); JLabel JLb5=new JLabel("班级"); JLabel JLb6=new JLabel("籍贯"); JTF1=new JTextField(10); JTF2=new JTextField(10); JTF3=new JTextField(10); JTF4=new JTextField(10); JTF5=new JTextField(10); c1=new Choice();c1.add("男");c1.add("女"); JB1=new JButton("确定"); p1.add(JLb1);p1.add(JTF1); p1.add(JLb2);p1.add(JTF2); p1.add(JLb3);p1.add(JTF3); p1.add(JLb4);p1.add(c1); p1.add(JLb5);p1.add(JTF4); p1.add(JLb6);p1.add(JTF5); JP1.add(p1,BorderLayout.NORTH); JP1.add(JB1,BorderLayout.SOUTH); JB1.addActionListener(this); dbTabPane.add("输入记录",JP1); //定义浏览所有信息面板 JP2.setLayout(new BorderLayout()); JP2.setBackground(Color.green); JTA1=new JTextArea(6,35); JB2=new JButton("浏览所有学生的信息"); JP2.add(new JScrollPane(JTA1),BorderLayout.CENTER); JP2.add(JB2,BorderLayout.SOUTH); JB2.addActionListener(this); dbTabPane.add("浏览记录",JP2); //定义查询面板 JP3.setLayout(new FlowLayout()); JLabel JLB7=new JLabel("输入学号:"); JTF6=new JTextField(10); JB3=new JButton("查询"); JTA2=new JTextArea(4,35); JP3.add(JLB7); JP3.add(JTF6); JP3.add(JB3); JP3.add(new JScrollPane(JTA2)); JB3.addActionListener(this); dbTabPane.add("查询记录",JP3); //定义删除面板 JP4.setLayout(new FlowLayout()); JLabel JB8=new JLabel("输入学号:"); JTF7=new JTextField(10); JB4=new JButton("删除"); JTA3=new JTextArea(4,35); JB4.addActionListener(this); JP4.add(JB8); JP4.add(JTF7); JP4.add(JB4); JP4.add(new JScrollPane(JTA3)); dbTabPane.add("删除记录",JP4); c.add(BorderLayout.NORTH,dbTabPane); } public void connection(){//连接数据库 try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url="jdbc:odbc:mysql"; String user="sa"; String password=""; conn=DriverManager.getConnection(url,user,password); stmt=conn.createStatement(); }catch(ClassNotFoundException e1){ System.err.println("驱动程序装载失败!"); }catch(SQLException e2){ e2.getSQLState(); e2.getMessage(); } } public void close(){//关闭执行语句和数据库 try{ if(stmt!=null)stmt.close(); if(conn!=null)conn.close(); }catch(SQLException e2){ System.err.println("不能正常关闭"); } } public void inputRecords(){//录入学生信息 String sno=JTF1.getText(); String sname=JTF2.getText(); String sage=JTF3.getText(); String ssex=c1.getSelectedItem();//JTF4.getText(); String sclass=JTF4.getText(); String snative=JTF5.getText(); try{ connection(); String InsSQL; InsSQL="insert into student(学号,姓名,年龄,性别,班级,籍贯) values(?,?,?,?,?,?)"; PreparedStatement pstmt=conn.prepareStatement(InsSQL); pstmt.setString(1,sno); pstmt.setString(2,sname); pstmt.setString(3,sage); pstmt.setString(4,ssex); pstmt.setString(5,sclass); pstmt.setString(6,snative); int result=pstmt.executeUpdate(); if(result==0){ conn.rollback(); return; } }catch(SQLException e1){ System.err.println(e1.getSQLState()); } finally{ close(); } } public void viewRecords(){//浏览该班所有学生的记录 try{ String viewString=""; connection(); ResultSet rs=stmt.executeQuery("SELECT*From student");// ResultSetMetaData rsMeta=rs.getMetaData(); int nums=rsMeta.getColumnCount(); for(int i=1;i<=nums;i++){ viewString+=rsMeta.getColumnName(i)+"\t"; } viewString+="\n"; while(rs.next()){ for(int i=1;i<=nums;i++){ viewString+=rs.getString(i)+"\t"; } viewString+="\n"; JTA1.setText(viewString); } }catch(SQLException e1){ System.err.println("浏览学生记录失败"); System.err.println(e1.getSQLState()+e1.getMessage()); } finally{ close(); } } public void viewSelectRecord(){//查询指定学号的学生记录 try{ connection(); String selectString=""; String str=JTF6.getText(); String selectSQL="select * from student where 学号=?"; PreparedStatement pstmt=conn.prepareStatement(selectSQL); pstmt.setString(1,str); ResultSet rs=pstmt.executeQuery(); ResultSetMetaData rsMeta=rs.getMetaData(); int nums=rsMeta.getColumnCount(); for(int i=1;i<=nums;i++){ selectString+=rsMeta.getColumnName(i)+"\t"; } selectString+="\n"; while(rs.next()){ for(int i=1;i<=nums;i++){ selectString+=rs.getString(i)+"\t"; } selectString+="\n"; JTA2.setText(selectString); } }catch(SQLException e1){ System.err.println("操作失败"); System.err.println(e1.getSQLState()+e1.getMessage()); } finally{ close(); } } public void deleteRecord(){//删除学号为no学生的记录 try{ connection(); String deleteSQL="delete from student where 学号=?"; PreparedStatement pstmt=conn.prepareStatement(deleteSQL); pstmt.setString(1,JTF7.getText()); pstmt.executeUpdate(); JTA3.setText("学号为"+JTF7.getText()+"的学生信息删除成功!"); }catch(SQLException e1){ System.err.println("操作失败"); System.err.println(e1.getSQLState()+e1.getMessage()); } finally{ close(); } } public void actionPerformed(ActionEvent e){ if(e.getSource()==JB1){ inputRecords(); } else if(e.getSource()==JB2){ viewRecords(); } else if(e.getSource()==JB3){ viewSelectRecord(); } else if(e.getSource()==JB4){ deleteRecord(); } } public static void main(String[]args){ StudentManagement sm=new StudentManagement(); sm.setSize(600,220); sm.setVisible(true); sm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
|
|