jdbc (java和sql的連接)

一個從數據庫讀取數據到界面的例子,簡單餓學生信息管理系統,過兩天我改下,使它可以錄入數據(等)

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

import java.sql.*;
import com.microsoft.jdbc.sqlserver.SQLServerDriver;

public class stuInfoRecoder extends JFrame implements ActionListener
{
 private String name[];
 private int sext[];
 private int age[];
 private int btncount;
 private  String se;
 
 String sex[]={"男","女"};
 
 JLabel lblname=new JLabel("姓名:");
 JTextField txt1=new JTextField(5);
 
 JLabel lblsex=new JLabel("性別:");
 JComboBox txt2=new JComboBox(sex);
 
 JLabel lblage=new JLabel("年齡:");
 JTextField txt3=new JTextField(5);
 
 JButton btn=new JButton("計算");
 JTextArea txt4=new JTextArea(8,18);
 
 JLabel lbl=new JLabel();
 
 JPanel pane1=new JPanel();
 JPanel pane2=new JPanel();
 JPanel pane3=new JPanel();
 
 stuInfoRecoder ()
 {
  btn.addActionListener(this);
  btncount=0;
  
  this.setTitle("學生信息系統");
  Container c=getContentPane();
  pane1.add(lblname);
  pane1.add(txt1);
  pane1.add(lblsex);
  pane1.add(txt2);
  pane1.add(lblage);
  pane1.add(txt3);
  pane1.add(btn);
  
  pane2.add(txt4);
  
  pane3.add(lbl);
  
  c.add(pane1,BorderLayout.NORTH);
  c.add(pane2,BorderLayout.CENTER);
  c.add(pane3,BorderLayout.SOUTH);
  
 }

public void getConnection()
{
 String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
 String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=info";
 int arry=0;
 
  try
  {
   Class.forName(driver);
   Connection cn = DriverManager.getConnection(url,"sa", "miss");
   
   Statement stmt = cn.createStatement();
   ResultSet rs = stmt.executeQuery("SELECT count(*) AS arraylen FROM sturnfo");
   if(rs.next())
   {
    arry=rs.getInt("arraylen");
   }
   
   if(arry!=0)
   {
     name=new String[arry];
     sext=new int[arry];
     age=new int[arry];
     int i=0;
    
     rs = stmt.executeQuery("SELECT * FROM sturnfo");
     while(rs.next())
     {
      name[i]=rs.getString("username");
      sext[i]= rs.getInt("sex");
          age[i]= rs.getInt("age");
          i++;
     }
    }
    else
    {
      name=new String[0];
     sext=new int[0];
     age=new int[0];
    }  
      rs.close();
   stmt.close();
   cn.close();
  }
  catch(Exception exce)
  {
   System.out.println(exce.toString());
  }
}


public static void main(String args[])
 {
  stuInfoRecoder bo=new stuInfoRecoder ();
  bo.setSize(400,250);
  bo.getConnection();
  bo.setVisible(true);
 }


public void actionPerformed(ActionEvent e)
 {
   if(e.getSource()==btn)
   {
    if(name.length==0)
    {
     return;
    }
  if(btncount<name.length)
  {
   txt1.setText(name[btncount]); //填寫用戶名;
   
   if(sext[btncount]==1)    //填寫性別;
   {
    txt2.setSelectedIndex(0);
    se="男";
   }
   else
   {
    txt2.setSelectedIndex(1);
    se="女";
   }
   
   txt3.setText(Integer.toString(age[btncount]));
   
   display();
   
   btncount++;
  }
   }  
 }
public void display()
 {
  if(txt1.getText().length()<0)
  {
   lbl.setText("姓名不能爲空");
  }
  txt4.setText("姓名:"+txt1.getText()+"性別:"+se+"  年齡:"+txt3.getText());
 }
}
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章