用java實現數據庫的增刪改查

wdl 8年前發布 | 3K 次閱讀 Java

練習學的,比較適合新手,數據庫可以自己建一個,然后改一下代碼就行了。
</div>

 

Home.java ~ 6KB         

package xues;


import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;

import javax.swing.*;
import javax.swing.table.JTableHeader;

public class Home extends JFrame implements ActionListener{
      JScrollPane scpDemo;
       JFrame  Add;
     JTableHeader jth;
     JTable tabDemo;
     JTextField text,AddName,AddNumber,AddSex,AddAge,AddPost,AddWage,AddJop;
     JLabel name,number,age,sex,wage,post,jop;
     JButton anShow,anSet,anSelsct,anClear,anAdd,Addyes,Addno;
     String SQLname,SQLsex,SQLpost,SQLjop;
     String a[]={SQLname,SQLsex,SQLpost,SQLjop};
     int SQLnumber,SQLage,SQLwage;
     int b[]={SQLnumber,SQLage,SQLwage};


    public Home(){  
        super("學生管理系統");
        this.setSize(400,500);
        this.setLayout(null);
        this.setLocation(400,100);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
        this.setResizable(false);//釘死
        this.text=new JTextField();
        this.text.setBounds(10, 20,200, 25);
        this.anSelsct=new JButton("查詢");
        this.anSelsct.setBounds(230,20,70,25);
        this.anShow=new JButton("刷新");
        this.anShow.setBounds(310,20,70,25);
        this.anAdd=new JButton("添加");
        this.anAdd.setBounds(20,435,70,25);
        this.anSet=new JButton("修改");
        this.anSet.setBounds(100,435,70,25);
        this.anClear=new JButton("刪除");
        this.anClear.setBounds(180,435,70,25);
        this.scpDemo = new JScrollPane();
        this.scpDemo.setBounds(10,50,365,380);
        AddName=new JTextField();
        AddNumber=new JTextField();
        AddAge=new JTextField();
        AddSex=new JTextField();
        AddPost=new JTextField();
        AddWage=new JTextField();
        AddJop=new JTextField();

        name=new JLabel("姓名");
        number=new JLabel("學號");
        age=new JLabel("年齡");
        sex=new JLabel("性別");
        post=new JLabel("職位");
        wage=new JLabel("工資");
        jop=new JLabel("地點");


        Addyes=new JButton("確定");
        Addno=new JButton("取消");



        //添加窗口的創建
          Add=new  JFrame();                    
        Add.setTitle("添加");
        Add.setSize(350,400);
        Add.setLocation(100, 260);
        Add.setLayout(new GridLayout(8,2));
        Add.add(number);Add.add(AddNumber);
        Add.add(name);Add.add(AddName);
        Add.add(sex);Add.add(AddSex);
        Add.add(age);Add.add(AddAge);
        Add.add(post);Add.add(AddPost);
        Add.add(wage);Add.add(AddWage);
        Add.add(jop);Add.add(AddJop);
        Add.add(Addyes); Add.add(Addno);



        Addyes.addActionListener(this);
        Addno.addActionListener(this);
        anAdd.addActionListener(this);
        anShow.addActionListener(this);
        anSet.addActionListener(this);
        anSelsct.addActionListener(this);
        anClear.addActionListener(this);






        this.scpDemo.getViewport().add(tabDemo); 

         add(this.scpDemo);
         add(this.text);
         add(this.anSelsct);
         add(this.anShow);     
         add(this.anAdd);
         add(this.anSet);
         add(this.anClear);




         this.remove(this);//刷新
         this.repaint();

         try{
            // 獲得連接
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
         Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=people","sa","123456");
         // 建立查詢條件



        String sql="select * from nature";



         PreparedStatement pstm = conn.prepareStatement(sql);
         // 執行查詢
         ResultSet rs = pstm.executeQuery();
         // 計算有多少條記錄
         int count = 0;
         while(rs.next()){
         count++;
         }
         rs = pstm.executeQuery();
         // 將查詢獲得的記錄數據,轉換成適合生成JTable的數據形式
         Object[][] info = new Object[count][7];
         count = 0;
         while(rs.next()){

         info[count][0] = Integer.valueOf( rs.getInt("number"));
         info[count][1] = rs.getString("name");
         info[count][2] = rs.getString("sex");
         info[count][3] = Integer.valueOf( rs.getInt("age") );
         info[count][4] = rs.getString("post");
         info[count][5] = Integer.valueOf( rs.getInt("wage"));
         info[count][6] = rs.getString("jop");

         count++;


         }
         // 定義表頭
         String[] title = {"學號","姓名","性別","年齡","職位","工資","地點"};
         // 創建JTable
         this.tabDemo = new JTable(info,title);
         // 顯示表頭
         this.jth = this.tabDemo.getTableHeader();
         // 將JTable加入到帶滾動條的面板中
         this.scpDemo.getViewport().add(tabDemo); 
         }catch(ClassNotFoundException cnfe){
         JOptionPane.showMessageDialog(null,"數據源錯誤","錯誤",JOptionPane.ERROR_MESSAGE);
         }catch(SQLException sqle){
         JOptionPane.showMessageDialog(null,"數據操作錯誤","錯誤",JOptionPane.ERROR_MESSAGE);
         }

    }
      chaxun re=new chaxun();
    @Override
    public void actionPerformed(ActionEvent e) {


        if(e.getSource()==(anAdd)){
            Add a=new Add(this,"添加學生信息",true);
            re=new chaxun();
            tabDemo.setModel(re);


        }


        else if(e.getSource()==(anSelsct)){

            String name=this.text.getText().trim();
            String sql="select * from nature where name='"+name+"'";
            chaxun aa=new chaxun(sql);

            tabDemo.setModel(aa);

        }
        else if(e.getSource()==anShow){

            tabDemo.setModel(re);
        }
        else if(e.getSource()==(anClear)){
            int i=this.tabDemo.getSelectedRow();
            clear aa=new clear(i);
            re=new chaxun();
            tabDemo.setModel(re);

        }
        else if(e.getSource()==anSet){

            int j=this.tabDemo.getSelectedRow();

            revise a=new revise(this,"修改學生信息",true,re,j);

            re=new chaxun();
            tabDemo.setModel(re);
        }

    }


    }





main.java ~ 600B         

package xues;

import javax.swing.UIManager;

import com.l2fprod.gui.plaf.skin.Skin;
import com.l2fprod.gui.plaf.skin.SkinLookAndFeel;

public class main  {
    public static void main(String args[]){
         try {
                Skin skin = SkinLookAndFeel.loadThemePack("F://ÐÂ&frac12;¨ÎÄ&frac14;þ&frac14;Ð (2)/Î÷?1;Ï/Ƥ·ô");

                SkinLookAndFeel.setSkin(skin);
                UIManager.setLookAndFeel("com.l2fprod.gui.plaf.skin.SkinLookAndFeel");
            }
            catch (Exception ex)  {
                System.out.println("Ìæ»»Æ¤·ô´íÎó");
            }



     Home aa=new Home();


     //System.out.println("1");
    }
}

Add.java ~ 4KB         

package xues;

import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;

import javax.swing.*;

class Add extends JDialog implements ActionListener{
     JTextField AddName,AddNumber,AddSex,AddAge,AddPost,AddWage,AddJop;
     JLabel name,number,age,sex,wage,post,jop;

     JButton Addyes,Addno;
     Connection con=null;
     Statement sql=null;
       ResultSet rs=null;
       String SQLname,SQLsex,SQLpost,SQLjop;
       int SQLnumber,SQLage,SQLwage;
      Add(Frame fck,String ckm,Boolean msck){

          super(fck, ckm,msck);                     



          AddName=new JTextField();
            AddNumber=new JTextField();
            AddAge=new JTextField();
            AddSex=new JTextField();
            AddPost=new JTextField();
            AddWage=new JTextField();
            AddJop=new JTextField();

            name=new JLabel("姓名");
            number=new JLabel("學號");
            age=new JLabel("年齡");
            sex=new JLabel("性別");
            post=new JLabel("職位");
            wage=new JLabel("工資");
            jop=new JLabel("地點");


            Addyes=new JButton("確定");
            Addno=new JButton("取消");
            this.add(number);this.add(AddNumber);
            this.add(name);this.add(AddName);
            this.add(sex);this.add(AddSex);
            this.add(age);this.add(AddAge);
            this.add(post);this.add(AddPost);
            this.add(wage);this.add(AddWage);
            this.add(jop);this.add(AddJop);
            this.add(Addyes); this.add(Addno);

            this.Addyes.addActionListener(this);
            this.Addno.addActionListener(this);
            this.setSize(350,400);
            this.setLocation(100, 260);
            this.setLayout(new GridLayout(8,2));
              this.setVisible(true);
            this.setResizable(false);
      }
    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        if(e.getSource()==Addyes){
             try{
                    // 獲得連接
                    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                  con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=people","sa","123456");
                 // 建立查詢條件


                 String recode = " insert into nature values(?,?,?,?,?,?,?)"; 
                 PreparedStatement input=con.prepareStatement(recode);
                    SQLnumber=Integer.parseInt(AddNumber.getText());

                    SQLage= Integer.parseInt(AddAge.getText());

                    SQLwage= Integer.parseInt(AddWage.getText());

                 input.setInt(1, SQLnumber); 
                 input.setString(2, AddName.getText()); 
                 input.setString(3,AddSex.getText()); 
                 input.setInt(4,SQLage); 
                 input.setString(5,AddPost.getText()); 
                 input.setInt(6,SQLwage); 
                 input.setString(7,AddJop.getText()); 
                 input.executeUpdate();
                 JOptionPane.showMessageDialog(null, "添加成功");
                 this.dispose();

                 }
                  catch(NumberFormatException nu){
                     JOptionPane.showMessageDialog(null,"你還沒有輸入哦","錯誤",JOptionPane.ERROR_MESSAGE);
                 }

                  catch(ClassNotFoundException cnfe){
                       JOptionPane.showMessageDialog(null,"數據源錯誤","錯誤",JOptionPane.ERROR_MESSAGE);
                 }
                  catch(SQLException sqle){
                     JOptionPane.showMessageDialog(null,"數據操作錯誤","錯誤",JOptionPane.ERROR_MESSAGE);
                 }
              finally
                {
                    try {
                        if(rs!=null)
                        {
                            rs.close();
                        }
                        if(sql!=null)
                        {
                            sql.close();
                        }
                        if(con!=null)
                        {
                            con.close();
                        }

                    } catch (Exception e1){}
                }
                 }


        if(e.getSource()==Addno){
            this.dispose();
        } 
        }
    }



chaxun.java ~ 3KB         

package xues;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;

import javax.swing.JOptionPane;
import javax.swing.table.AbstractTableModel;

 class chaxun extends AbstractTableModel {
      Vector ziduan,jilu;
      Connection con=null;
      PreparedStatement sql=null;
       ResultSet rs=null;
    @Override
    public int getColumnCount() {
        // TODO Auto-generated method stub
        return this.ziduan.size();
    }

    @Override
    public int getRowCount() {
        // TODO Auto-generated method stub
        return this.jilu.size();
    }

    @Override
    public Object getValueAt(int hang, int lie) {
        // TODO Auto-generated method stub
        return ((Vector) this.jilu.get(hang)).get(lie);
    }
    public chaxun(){
        String nul="select * from nature";
        this.sqlly(nul);

    }
    public chaxun(String input){
        this.sqlly(input);
    }
    public String getColumnName(int e){
        return (String)this.ziduan.get(e);
    }
    public void sqlly(String ss){
        ziduan=new Vector();

          ziduan.add("學號");
          ziduan.add("姓名");
          ziduan.add("性別");
          ziduan.add("年齡");
          ziduan.add("職位");
          ziduan.add("工資");
          ziduan.add("地點");
          jilu=new Vector();
          try{
              Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                  con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=people","sa","123456");
                 // 建立查詢條件   
               //   sql = "select * from nature"; 
                 //sql=con.prepareStatement( " insert into nature values(?,?,?,?,?,?,?)"); 
                sql=con.prepareStatement(ss);
              //  sql.executeUpdate();
                  rs=sql.executeQuery();
                  while(rs.next()){
                  Vector hang=new Vector(); 
                 hang.add(rs.getInt(1));
                 hang.add(rs.getString(2));
                 hang.add(rs.getString(3));
                 hang.add(rs.getInt(4));
                 hang.add(rs.getString(5));
                 hang.add(rs.getInt(6));
                 hang.add(rs.getString(7));

                 jilu.add(hang);


                  }   


          }

          catch(NumberFormatException nu){
                 JOptionPane.showMessageDialog(null,"你還沒有輸入哦","錯誤",JOptionPane.ERROR_MESSAGE);
             } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
                 JOptionPane.showMessageDialog(null,"數據源錯誤","錯誤",JOptionPane.ERROR_MESSAGE);
        } catch (SQLException e) {
                // TODO Auto-generated catch block
            JOptionPane.showMessageDialog(null,"數據操作錯誤","錯誤",JOptionPane.ERROR_MESSAGE);
            }
          finally
            {
                try {
                    if(rs!=null)
                    {
                        rs.close();
                    }
                    if(sql!=null)
                    {
                        sql.close();
                    }
                    if(con!=null)
                    {
                        con.close();
                    }

                } catch (Exception e){}
            }

    }

}

clear.java ~ 2KB         

package xues;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.swing.JOptionPane;

 class clear {

       chaxun xx;

       public clear(int i){
           xx=new chaxun();


           if(i==-1){
               JOptionPane.showMessageDialog(null,"請選中要刪除的行");
               return;
           }



               Connection con=null;
                 PreparedStatement sql=null;
                   ResultSet rs=null;
                   Statement sm=null;

               String sr=(String) xx.getValueAt(i,1);
               try{

                      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                      con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=people","sa","123456");
                     // 建立查詢條件   


                      String  cl = "delete  from nature where name=?"; 


                    sql=con.prepareStatement(cl);
                   // int ii=Integer.valueOf(sr).intValue();
                    sql.setString(1,sr);
                    sql.executeUpdate();











               }
               catch(Exception e){
                   e.printStackTrace();

               }

                finally
                {
                    try {
                        if(rs!=null)
                        {
                            rs.close();
                        }
                        if(sql!=null)
                        {
                            sql.close();
                        }
                        if(con!=null)
                        {
                            con.close();
                        }

                    } catch (Exception e3){}        
                } 



           }

       }

revise.java ~ 5KB         

package xues;

import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class revise extends JDialog implements ActionListener {
      private JTextField setName,setNumber,setSex,setAge,setPost,setWage,setJop;
      private JLabel name,number,age,sex,wage,post,jop;

      private JButton Addyes,Addno;
      private Connection con=null;
      private Statement sql=null;
      private ResultSet rs=null;
      private String SQLname,SQLsex,SQLpost,SQLjop;
      private int SQLnumber,SQLage,SQLwage;
          //chaxun xx;

    revise(Frame fck,String ckm,Boolean msck,chaxun xx,int j){

              super(fck, ckm,msck); 

              if(j==-1){
                  JOptionPane.showMessageDialog(null,"請選中要修改的行");
                 return;

              }




                //xx=new chaxun();                    
                setNumber=new JTextField(5);
                setNumber.setText((String)xx.getValueAt(j,0).toString());            
                setNumber.setEditable(false);//設置為不能修改,防止出錯
                setName=new JTextField(5);
                setName.setText((String)xx.getValueAt(j,1));
                setAge=new JTextField(5);
                setAge.setText((String)xx.getValueAt(j,3).toString());
                setSex=new JTextField(5);
                setSex.setText((String)xx.getValueAt(j,2));
                setPost=new JTextField(5);
                setPost.setText((String)xx.getValueAt(j,4));
                setWage=new JTextField(5);
                setWage.setText((String)xx.getValueAt(j,5).toString());
                setJop=new JTextField(5);
                setJop.setText((String)xx.getValueAt(j,6));

                name=new JLabel("姓名");
                number=new JLabel("學號");
                age=new JLabel("年齡");
                sex=new JLabel("性別");
                post=new JLabel("職位");
                wage=new JLabel("工資");
                jop=new JLabel("地點");

                Addyes=new JButton("確定");
                Addno=new JButton("取消");
                this.add(number);this.add(setNumber);
                this.add(name);this.add(setName);
                this.add(sex);this.add(setSex);
                this.add(age);this.add(setAge);
                this.add(post);this.add(setPost);
                this.add(wage);this.add(setWage);
                this.add(jop);this.add(setJop);
                this.add(Addyes); this.add(Addno);

                this.Addyes.addActionListener(this);
                this.Addno.addActionListener(this);
                this.setSize(350,400);
                this.setLocation(100, 260);
                this.setLayout(new GridLayout(8,2));
                  this.setVisible(true);
                this.setResizable(false);
          }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        if(e.getSource()==Addyes){


             try{
                    // 獲得連接
                    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                  con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=people","sa","123456");
                 // 建立查詢條件


                 String recode = " update nature set name=?,sex=?,age=?,post=?,wage=?,jop=? where number=?"; 
                 PreparedStatement input=con.prepareStatement(recode);
                   SQLnumber=Integer.parseInt(setNumber.getText());

                    SQLage= Integer.parseInt(setAge.getText());

                    SQLwage= Integer.parseInt(setWage.getText());

               //  input.setInt(1, SQLnumber); 
                 input.setString(1, setName.getText()); 
                 input.setString(2,setSex.getText()); 
                 input.setInt(3,SQLage); 
                 input.setString(4,setPost.getText()); 
                 input.setInt(5,SQLwage); 
                 input.setString(6,setJop.getText()); 
                 input.setInt(7, SQLnumber); //修改的條件
                 input.executeUpdate();
                 JOptionPane.showMessageDialog(null, "修改成功");
                 this.dispose();

                 }
                  catch(NumberFormatException nu){
                     JOptionPane.showMessageDialog(null,"你還沒有輸入哦","錯誤",JOptionPane.ERROR_MESSAGE);
                 }

                  catch(ClassNotFoundException cnfe){
                       JOptionPane.showMessageDialog(null,"數據源錯誤","錯誤",JOptionPane.ERROR_MESSAGE);
                 }
                  catch(SQLException sqle){
                      sqle.printStackTrace();
                     JOptionPane.showMessageDialog(null,"數據操作錯誤","錯誤",JOptionPane.ERROR_MESSAGE);
                 }
              finally
                {
                    try {
                        if(rs!=null)
                        {
                            rs.close();
                        }
                        if(sql!=null)
                        {
                            sql.close();
                        }
                        if(con!=null)
                        {
                            con.close();
                        }

                    } catch (Exception e1){}
                }
                 }


        if(e.getSource()==Addno){
            this.dispose();
        } 
        }



    }


 本文由用戶 wdl 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!