16 Şubat 2014 Pazar

JDBC ile Veritabanına Kayıt ve Kaydedilen Bilgileri JList ile Listeleme

Merhaba bu örnekte JDBC ile NetBeans'te hazırladığım gui form ile veri tabanına bilgi kaydedip,kaydettiğimiz verileri JList aracılığı ile listeleyen bir örnek yapacağım.

Örnek uygulama 2 tab altında olacak ve ilk tab içerisinde formlar ile veri alıp veritabanına kaydedip diğer tab altında da JList yardımı ile listeleme yapağım.


Ekran Görüntüsü :



JDBC sürücüsünün yolu,veritabanının adresi,adı,kullanıcı adı ve şifresini string sınıf değişkeni olarak tanımladık.
Daha sonra veritabanına bağlantı yapacak baglantiAc(); ve baglantiKapat(); metotları yazdık. baglantiAc(); metotunda Class.forName("driver"); ile JDBC sürücüsünü yükledik.Connection nesnesi ile getConnection(); metoduna sınıf değişkeni olarak tanımlanan veritabanının adresi,adı,kullanıcı adı ve şifresini parametre olarak gönderip veritabanı ile bağlantı kurduk.Sonra kaydet butonuna tıkladığında işleme koyulacak kodları ActionPerformed event blokları arasına yazıyoruz.Kodlar aşağıdaki gibidir.



public class form_islemleri extends javax.swing.JFrame {


    String driver = "com.mysql.jdbc.Driver";
    String vtUrl  = "jdbc:mysql://localhost:3306/";
    String vtName = "personel";
    String vt_id  = "root";
    String vtPass = "root";
    ResultSet  rs    = null;
    Connection conn  = null;
        
   public form_islemleri() {
        this.conn = null;
        initComponents();
    }

    public void baglantiAc() throws Exception{
      try {
            
            Class.forName(driver);
            conn = DriverManager.getConnection(vtUrl+vtName,vt_id,vtPass);
            
            JOptionPane.showMessageDialog(null, "Vt bağlantı başarılı" );
            
        } catch (Exception ex) {
            System.err.println(ex);
            JOptionPane.showMessageDialog(null, "Vt bağlantı başarısız" );
        }
    }
    public void baglantiKapat(){
    try {
            conn.close();
        } catch (SQLException ex) {
            System.err.println(ex);
        }
    }
    
  private void btnKaydetActionPerformed(java.awt.event.ActionEvent evt){
      try {
            baglantiAc();
        } catch (Exception e) {
            System.err.println(e);
        }
        String tcNo     = txtTcNo.getText();
        String ad       = txtAd.getText();
        String soyad    = txtSoyad.getText();
        int     yas     = Integer.valueOf(txtYas.getText());
        String maas     = txtMaas.getText();
        String sehir    = txtSehir.getText();
        String cinsiyet = (String) txtCinsiyet.getSelectedItem();
        
        
        try {
            
            String sqlQuery = "INSERT INTO  calisan (tcNo,ad,soyad,yas,maas,sehir,cinsiyet) VALUES (?,?,?,?,?,?,?) ";
            
            PreparedStatement  pst = conn.prepareStatement(sqlQuery);
            pst.setString(1, tcNo);
            pst.setString(2, ad);
            pst.setString(3, soyad);
            pst.setInt(4, yas);
            pst.setString(5, maas);
            pst.setString(6, sehir);
            pst.setString(7, cinsiyet);
            
            pst.executeUpdate();
            
            JOptionPane.showMessageDialog(null, "Kayıt Başarılı");
            
            baglantiKapat();
        } catch (SQLException e) {
            System.err.println(e);
            JOptionPane.showMessageDialog(null, "Kayıt Başarısız");
        } 
   }
    }
Veritabanına kayıt yaptığımız kodlar bu kadar.Şimdi btnBilgiGetir butonunun ActionEvent'ine listeleme yapacağımız tab kodlarını yazalım.



private void btnBilgiGetirActionPerformed(java.awt.event.ActionEvent evt){
          try {
            baglantiAc();//Yukarıda veritabanı bağlantısı için tanımlanan metotu çağırdık.
        } catch (Exception e) {
            System.err.println(e);
        }
            String txtTcNo = txtTcNoBilgiGetir.getText();
            
            try {
                Statement st    = conn.createStatement();
                String sqlSorgu = "SELECT * FROM calisan WHERE tcNo ='"+txtTcNo+"' ";
                ResultSet  rs   = st.executeQuery(sqlSorgu);
                
                int kolSayisi   = rs.getMetaData().getColumnCount();//veritabanı sutun sayısını aldık.
                DefaultTableModel tablomuz = new DefaultTableModel();//tablo oluşturduk.
                for(int i=1 ; i<=kolSayisi;i++){
                    tablomuz.addColumn(rs.getMetaData().getColumnName(i));//tablo sutunu eklemek için yazılan bölüm.
                }
                    while(rs.next()){
                        Object [] satır = new Object[kolSayisi];
                        for(int i=1;i<=kolSayisi;i++){
                            satır[i-1] = rs.getObject(i);
                        }
                        tablomuz.addRow(satır);
                    }
                    bilgiTable.setModel(tablomuz);
                
                baglantiKapat();
        }   catch (Exception e) {
                System.err.println("Hata " + e);
        }
}

3 yorum:

  1. Bu yorum yazar tarafından silindi.

    YanıtlaSil
  2. butonKaydet kodlarını çalıştıramadım. Her şey aynı fakat hata alıyorum sebebi ne olabilir acaba?

    YanıtlaSil
  3. hocam kodlar için sağolasın

    YanıtlaSil