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