Netbeans’de String Olarak Girilen Tarihi SQL Date Tipinde Veri Tabanına Ekleme

Ayır

TARIH_VERITABANI isimli,içerisinde Date tipinde TARIH alanı olan bir tablomuz olsun.

Görsel

Basit bir kullanıcı arayüzünde bulunan bir text alanına string veri tipinde girilen bir tarihi, TARIH_VERITABANI isimli tablonun TARIH isimli alanına Date tipinde ekleyelim.

Kullanıcı arayuzu:

Görsel

Öncelikle Netbeans’de Oracle sürücüsü yüklü olmalı. Buradan yardım alabilirsiniz:https://sumeyyegorgulu.wordpress.com/2013/09/03/netbeans-oracle-baglantisi/ Daha sonra kullandığımız projenin kütüphanesine Oracle jarı eklenmelidir.

Şimdi Ekle butonuna çift tıklayarak, Ekle butonunun olay metodunu açıyoruz. Veri tabanında işlem yapacağımız için öncelikle veri tabanı bağlantısını kurmamız lazım.

private void ekleActionPerformed(java.awt.event.ActionEvent evt) {
String Driver = “oracle.jdbc.OracleDriver”;
String DBURL = “jdbc:oracle:thin:@localhost:1521:XE”;
String DB = “ORNEK”;
String User = “Ornek”;
String Password = “1”;
Connection conn = null;
try {
Class.forName(Driver).newInstance();//Driver yüklendi
if (conn == null) {
conn = DriverManager.getConnection(DBURL, User, Password);
}
} catch (Exception ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(null, “Baglanilamadi”);
}
try {
Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet res = st.executeQuery(“select tarih from tarih_veritabani”);
res.moveToInsertRow(); //Yeni satır eklendiğinde imlecin yerini değiştirir, satırlar arasında dolaşmayı sağlar bir nevi
DateFormat format = new SimpleDateFormat(“dd/MM/yyyy”);  // Tarih formatı belirlendi
java.util.Date tarihJava = format.parse(textTarih.getText()); //parse metoduyla string olarak girilen tarih, Date tipine cevirildi ve tarihJava değişkenine atandı.
java.sql.Date tarihSql = new java.sql.Date(tarihJava.getTime()); // Javada bulunan Date tipindeki tarihJava değişkeni Sql Date tipine çevirildi, tarihSql değişkenine atandı.
res.updateDate(“TARIH”, tarihSql); // Son olarak da elde edilen tarih veritabanında güncellendi.
res.insertRow(); //Satır eklendi.
res.moveToCurrentRow();
System.out.println(“Row inserted ok.”);
JOptionPane.showMessageDialog(rootPane, “Basarıyla eklendi”);
} catch (Exception e) {
e.printStackTrace();
}
}

DateFormat tarih/saat biçimlendirme alt sınıfları için tarih ve ya saati biçimlendiren ve ayrıştıran bir soyut sınıftır.  SimpleDateFormat alt sınıfı ise  biçimlendirme (idate -> text), ayruştırma (text -> date), ve normalizasyona izin verir.

tarihBasari           1995

Reklamlar

Dinamik Tabloya Veritabanından Veri Çekme

Veritabanımızda HASTA_BILGILERI isimli tablomuz olsun. Şimdi bu tablodaki verileri  netbeansde oluşturduğumuz dinamik tabloya çekeceğiz. Tablonun boyutu veritabanındaki HASTA_BILGILERI isimli tablonun satır ve sutun sayısına göre değişeceği için tablomuzu kod ile oluşturacağız. Öncelikle basit bir arayüz tasarlayalım. Siz istediğiniz şekilde tasarımı yapabilirsiniz.

Arayuz

 

Burada arama butonuna tıkladığımız anda, küçük bir ekran açılarak veritabanımızda tutulan HASTA_BILGILERI tablomuz gelicek, biz de bu tablodan seçmek istediğimiz veriyi seçip, arayüzde bulunan labellara yazdıracağız.
Öncelikle açılacak küçük ekranı kodlayalalım.

class HASTALIK_BILG_TABLO extends JFrame {
Statement st = null;
public ResultSet r;
public JTable table;
String Data = null;
public HASTALIK_BILG_TABLO() throws SQLException {
if (Baglanti.conn == null) {
Baglanti.dbBaglan();
Statement st = null;
st = Baglanti.conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);//databasede sorgu yapabilmek için ifade oluşturuyor
// ilk parametre gezinme diğeri güncelleme için.
r = st.executeQuery(“SELECT * FROM ORNEK.HASTA_BILGILERI”);
} else {
r = st.executeQuery(“SELECT * FROM ORNEK.HASTA_BILGILERI”);
}
this.setSize(200, 200);
Toolkit tk = this.getToolkit();
Dimension dim = tk.getScreenSize();
int x = (dim.width – 200) / 4;
int y = (dim.height – 200) / 4;
this.setLocation(550, 85);
DefaultTableModel model = createModel(r);
table = createTable(model);
table.setCellSelectionEnabled(true);
ListSelectionModel cellSelectionModel = table.getSelectionModel();
cellSelectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
cellSelectionModel.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
int[] satir = table.getSelectedRows();
int[] sutun = table.getSelectedColumns();
for (int i = 0; i < satir.length; i++) {
for (int j = 0; j < sutun.length; j++) {
Data = (String) table.getValueAt(satir[i], sutun[j]);
}
}
}
});
JScrollPane jsp = new JScrollPane(table);
this.add(jsp);
}
public DefaultTableModel createModel(ResultSet rest) throws SQLException {
DefaultTableModel dtm = new DefaultTableModel();
ResultSetMetaData rsmd = rest.getMetaData();
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
dtm.addColumn(rsmd.getColumnName(i));
}
Vector rows;
while (rest.next()) {
rows = new Vector();
for (int j = 1; j <= rsmd.getColumnCount(); j++) {
rows.addElement(rest.getString(j));
}
dtm.addRow(rows);
}
return dtm;
}
public JTable createTable(DefaultTableModel dm) {
JTable table = new JTable(dm);
return table;
}
}

Artık veritabanımızda tutulan HASTA_BILGILERI isimli tablomuzu netbeans ile dinamik bir şekilde çekebiliyoruz. Şimdi ise arama butonuna tıkladığımız zaman oluşturduğumuz bu Frame’i ekrana çağıralım. Öncelikle Design kısmından arama butonuna  çift tıklıyoruz. Ve butonu tetikleyecek olan eylem(action) metodu açılıyor.  Bu metotda öncelikle HASTALIK_BILG_TABLO sınıfına ait olan bir nesneyi oluşturmamız ve çağırmamız gerekiyor.

final HASTALIK_BILG_TABLO hbt = new HASTALIK_BILG_TABLO();
hbt.setVisible(true);

Artık butona tıkladığımızda , ekrana veri tabanımızdaki tablo geliyor.

tablo

 

Şimdi ise geriye yalnızca, bu tablodan seçilen veriyi label’e yazdırma işlemi kaldı.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

try {
final HASTALIK_BILG_TABLO hbt = new HASTALIK_BILG_TABLO();
hbt.table.setCellSelectionEnabled(true);
ListSelectionModel cellSelectionModel = hbt.table.getSelectionModel();
cellSelectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
hbt.setVisible(true);
cellSelectionModel.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
try {
int[] selectedRow = hbt.table.getSelectedRows();
int[] selectedColumns = hbt.table.getSelectedColumns();
for (int i = 0; i < selectedRow.length; i++) {
for (int j = 0; j < selectedColumns.length; j++) {
hbt.Data = (String) hbt.table.getValueAt(selectedRow[i], selectedColumns[j]);
}
}
jLabel2.setText(hbt.Data);
int kod = Integer.parseInt(hbt.Data);
hbt.st = Baglanti.conn.createStatement();
hbt.r = hbt.st.executeQuery(“SELECT HASTALIK_BILGILERI FROM ORNEK.HASTA_BILGILERI where HASTA_KODU='” + kod + “‘”);
while (hbt.r.next()) {
jLabel3.setText(hbt.r.getString(“HASTALIK_BILGILERI”));
}
} catch (SQLException ex) {
Logger.getLogger(HASTALIK_BILGILERI.class.getName()).log(Level.SEVERE, null, ex);
}
}
});

} catch (SQLException ex) {
Logger.getLogger(HASTALIK_BILGILERI.class.getName()).log(Level.SEVERE, null, ex);
}
}

tablo2

Netbeans Oracle Veritabanı Bağlantısı

Bir önceki yazımda netbeans’e oracle sürücüsünün nasıl yüklendiğini anlatmıştım. Veri tabanına bağlanabilmemiz için öncelikle bu işlemi gerçekleştirmemiz gerekmektedir. Buradan ulaşabilirsiniz: https://sumeyyegorgulu.wordpress.com/2013/09/03/netbeans-oracle-baglantisi/

Öncelikle oluşturduğumuz projemizde Libraries klasörüne oracle sürücü jarını eklememiz gerekmekte. Libraries klasörüne sağ tıklayarak Add Jar/Folder’ı seçerek önceden yüklediğimiz oracle sürücüsünü projemize ekliyoruz. Ben oracle veri tabanını kullandığım için bu sürücüyü ekliyorum, hangi veri tabanını kullanıyorsanız; o veri tabanına ait sürücüyü ekleyerek işleminize devam edebilirsiniz.

Pojemizde Baglanti isimli yeni bir sınıf oluşturuyoruz. Veri tabanı bağlantisini sağlamak için bu sınıfa şu kodları yazıyoruz:

public class Baglanti {
private static String Driver=”oracle.jdbc.OracleDriver”;
private static String DBURL=”jdbc:oracle:thin:@localhost:1521:XE”;
private static String DB=”ORNEK”;
private static String User=”Ornek”;
private static String Password=”1″;
public static Connection conn;  // Bağlanti tipinde conn değişkeni
public static void dbBaglan() {
try {
Class.forName(Driver).newInstance();//Driver yüklendi
if(conn==null){
conn= DriverManager.getConnection(DBURL, User, Password);
JOptionPane.showMessageDialog(null, “Baglandi”);
}
} catch (Exception ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(null, “Baglanilamadi”);
}
}
public static Connection getConnection(){
if(conn==null){
dbBaglan();
}
return conn;
}
public static void kapat(){
if(conn!=null){
try{
conn.close();
JOptionPane.showMessageDialog(null, “Kapatildi”);
}catch(SQLException ex){
ex.printStackTrace();
}
}
}}

DB değişkeni kullandığımız veritabanı ismini, User değişkeni ise kullandığımız kullanıcının ismini, Password değişkeni ise bu kullanıcıya ait olan parola içeriğini tutmakta. Driver ve DBURL değişkenlerinin içeriğini ise şu şekilde elde ediyoruz:

DriverName

Netbeans’de Services kısmına gelip Databases kısmını açıyoruz. Database Connection kısmınını(sol taraf)  seçip sağ tıklayarak Properties’i açıyoruz. DBURL değişkeninin içeriği Database URL’ ye ; Driver değişkeninin içeriği ise Driver özelliğine karşılık geliyor.

Artık veri tabanına bağlanabiliriz.  Bağlantıyı yapmak istediğimiz sınıfta Baglanti sınıfına ait bir nesne oluşturup, bu nesne ile dbBaglan metodunu çağırmamız yeterli.

Baglanti baglanti=new Baglanti();
baglanti.dbBaglan();
baglanti.kapat();

Netbeans Oracle Sürücü Yükleme

Bilgisayarımızda Oracle veritabanının kurulu olduğunu varsayıyorum. Oracle veri tabanında tuttuğumuz tabloları Netbeans ile kullanabilmemiz için öncelikle Netbeans’e Oracle sürücüsünün yüklenmesi lazım. Buradan sürücüyü indirebilirsiniz: http://ww.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html
Daha sonra Netbeans’de Services bölümünde Databases kısmını seçtikten sonra New Connection diyoruz.Görsel

Görüldüğü gibi Driver File(s) bölümünde hiçbir sürücü yok. Add butonu ile indirdiğimiz sürücüyü ekliyoruz ve yukarıda bulunan Driver seçeneciğinde Oracle Thin ve ya Oracle OCI sürücüsünü seçiyoruz.

 Görsel

Burada ise Oracle’ı hangi portta çalıştırıyorsak Port kısmına bu bilgiyi yazıyoruz. (Kendisi zaten otomatik olarak gelmekte ama kontrol etmekte fayda var.) User Name kısmına Oracle’da ki User ismini, Password kısmına ise bu User’a karşılık gelen parolamızı yazıyoruz. Test Connection diyerek bağlantıyı test ediyoruz. Herhangi bir hata almazsak  Finish diyerek  sürücü yükleme işlemimizi halletmiş oluyoruz.

İyi çalışmalar, kolay gelsin…