top of page

Java'da Oracle Baglantilari Ve Uygulamalari...

  • Writer: Sevdanur GENC
    Sevdanur GENC
  • Sep 8, 2011
  • 4 min read

Bu makalemde java ile oracle arasinda ki iletisimi saglayabilmesi icin gerekli olan connection komutlarindan bahsedicem. Ve bunlari birer uygulama uzerinde anlaticam. Konu Basliklarim soyle ; - Tablolar da Sorgulama - Parametresiz Kayit Ekleme - Parametreli Kayit Ekleme - Kayit Guncelleme - Stored Procedure ile Kayit Ekleme / Guncelleme Arayuz olarak java icin NetBeans ve oracle icinde 10g  Express Edition kullaniyorum. Oncelikle java icin gerekli jar uzantili olan dosyayi programimiza aktarmamiz gerekiyor. Kutuphanemizin ismi classes12.jar seklindedir. Bunu oracle in web sitesinde bulundan download kismindan kullandiginiz jdk surumunuze ve oracle uygulumaniza gore seceneklerden belirleyerek bilgisayarina indirebilirsiniz.

              Indirmis oldugunuz Kutuphanenizi netbeans'de olusturmus oldugunu yeni projede Libraries klasorune sag click ile Add Jar/folder lokasyonunu takip ederek classes12.jar' ini ekleyebilirsiniz. Daha Sonrasinda Oracle'da uygulama yapabilmeniz icin table'larinizi olusturunuz...

                Elemanlar table'imi olusturduktan hemen sonra icerisine verilerimi giriyorum. Artik netbeans'da kodlarimizi yazmaya basliyoruz... Oncelikle baglantimiz icin gerekli olan host, port, kullanici ismi ve pasaport gibi onemli bilgileri java ya tanitiyoruz. import java.sql.*; public class Main {   public static void main(String[] args) {  Connection connection = null; try { String drivername = "oracle.jdbc.driver.OracleDriver"; Class.forName(drivername); String servername = "127.0.0.1"; String portnumber = "1521"; String sid = "XE"; String url = "jdbc:oracle:thin:@"+servername+":"+portnumber+":"+sid; String username = "SYSTEM";  //kendi sisteminizdeki kullanici adi ve sifreleri girmeyi unutmayiniz. String password = "hr"; connection = DriverManager.getConnection(url,username,password); } catch (Exception e) { e.printStackTrace(); //hatayi ekrana yazdiriyoruz... } } } Programin ekran ciktisi ;

    Bu sekilde programimizi derledigimiz zaman eger bir hata yoksa simdiye kadar oracle'a baglantimizi dogru bir sekilde gerceklestirecektir. Eger ki hata varsa bunla ilgili hata metinlerini catcch blogundan yakalayip ekrana yazdiracaktir.

Tablolarimizda Sorgulama ;

public class Main {   public static void main(String[] args) { Connection connection = null; try { String drivername = "oracle.jdbc.driver.OracleDriver"; Class.forName(drivername); String servername = "127.0.0.1"; String portnumber = "1521"; String sid = "XE"; String url = "jdbc:oracle:thin:@"+servername+":"+portnumber+":"+sid; String username = "SYSTEM"; String password = "hr"; connection = DriverManager.getConnection(url,username,password); Statement stmt = connection.createStatement(); ResultSet rs = stmt.executeQuery("select * from elemanlar"); while (rs.next()) { String sorgu = rs.getString("AD")+ " " + rs.getString("SOYAD") + " " + rs.getString("Departman"); System.out.println(sorgu); } } catch (Exception e) { e.printStackTrace(); //hatayi ekrana yazdiriyoruz... } } } Kodlari ile birlikte, elemanlar isimli tablomuzdan ad,soyad ve departma alanlarini ekrana yazdirmis oluyoruz...

Sql cumlemizde parametre kullanmadan nasil yazdigimiza bir bakalim... import java.sql.*; public class Main {   public static void main(String[] args) {  Connection connection = null; try { String drivername = "oracle.jdbc.driver.OracleDriver"; Class.forName(drivername); String servername = "127.0.0.1"; String portnumber = "1521"; String sid = "XE"; String url = "jdbc:oracle:thin:@"+servername+":"+portnumber+":"+sid; String username = "SYSTEM";  //kendi sisteminizdeki kullanici adi ve sifreleri girmeyi unutmayiniz. String password = "hr"; connection = DriverManager.getConnection(url,username,password); Statement insStmt = connection.createStatement(); String sql = "insert into elemanlar(PERSONEL_ID,AD,SOYAD,GOREV,DEPARTMAN) values(3,'liman','akcay','sistem','bilgi islem')"; int rowcount = insStmt.executeUpdate(sql); if(rowcount!=0) { System.out.println("kayit yapildi"); } else { System.out.println("kayit yapilamadi"); } } catch (Exception e) { e.printStackTrace(); //hatayi ekrana yazdiriyoruz... } } } Ekran ciktimiz soyledir ;

                Goruldugu gibi insert into sql cumlecigi ile alanlara tek tek bilgileri girmis olduk...

Parametreli Kayit Ekleme ;

Bu uygulamamizda da tabloyo basit bir for dongusu kullanarak satirlarimiza birseyler yazdilarim... import java.sql.*; public class Main {   public static void main(String[] args) {  Connection connection = null; try { String drivername = "oracle.jdbc.driver.OracleDriver"; Class.forName(drivername); String servername = "127.0.0.1"; String portnumber = "1521"; String sid = "XE"; String url = "jdbc:oracle:thin:@"+servername+":"+portnumber+":"+sid; String username = "SYSTEM";  //kendi sisteminizdeki kullanici adi ve sifreleri girmeyi unutmayiniz. String password = "hr"; connection = DriverManager.getConnection(url,username,password); String sql = "insert into elemanlar(PERSONEL_ID,AD,SOYAD,GOREV,DEPARTMAN) values(?,?,?,?,?)"; PreparedStatement pstmt = connection.prepareStatement(sql); for (int i = 0; i < 3; i++) { pstmt.setInt(1, i); pstmt.setString(2, i + ".ci elemanin adi : " ); pstmt.setString(3, i + ".ci elamanin soyadi : "); pstmt.setString(4, i + ".ci elemanin gorevi : " ); pstmt.setString(5, i + ".ci elemanin departmani : ") ; pstmt.executeUpdate(); } } catch (Exception e) { e.printStackTrace(); //hatayi ekrana yazdiriyoruz... } } } Ekran Ciktilari ;

public class Main {   public static void main(String[] args) { Connection connection = null; try { String drivername = "oracle.jdbc.driver.OracleDriver"; Class.forName(drivername); String servername = "127.0.0.1"; String portnumber = "1521"; String sid = "XE"; String url = "jdbc:oracle:thin:@"+servername+":"+portnumber+":"+sid; String username = "SYSTEM"; String password = "hr"; connection = DriverManager.getConnection(url,username,password); Statement stmt = connection.createStatement(); String sql = "update elemanlar set AD = 'nano' where PERSONEL_ID=72"; int updatecount = stmt.executeUpdate(sql); if (updatecount!=0) { System.out.println("kayit guncellendi"); } else { System.out.println("kayit guncellenemedi"); } } catch (Exception e) { e.printStackTrace(); //hatayi ekrana yazdiracak... } } } Personel ID'si 72 olan kaydin ismini update komutu ile guncellemis olduk. Ekran ciktilari asagidaki gibidir ;

Bu uygulamamizda oracle'da olusturdugumuz stored procedure'ler ile kayit ekleme ve guncelleme gibi komutlari java'da nasil yazacagimizi gorucez fakat oncelikle oracle'da stored procedure'lerimizi olusturmamiz lazim...

                        Oracle'in sql command'in da Yazdigimiz bu kodlari oncelikle run ile compile edip sonrasinda da save ile kaydettigimizde java'dan yazacagimiz kodlarla kaydedilmis olan ins_elemanlar stored procedure'une ulasabilicez. public class Main {   public static void main(String[] args) { Connection connection = null; try { String drivername = "oracle.jdbc.driver.OracleDriver"; Class.forName(drivername); String servername = "127.0.0.1"; String portnumber = "1521"; String sid = "XE"; String url = "jdbc:oracle:thin:@"+servername+":"+portnumber+":"+sid; String username = "SYSTEM"; String password = "hr"; connection = DriverManager.getConnection(url,username,password); CallableStatement cs = connection.prepareCall("{call ins_elemanlar(?,?,?,?,?)}"); cs.setInt(1, 77); cs.setString(2, "sevdanur nano"); cs.setString(3, "genc"); cs.setString(4, "donanim"); cs.setString(5, "bilgi islem"); cs.execute(); } catch (Exception e) { e.printStackTrace(); //hatayi ekrana yazdiracak... } } } Ekran ciktilarimiz ;

Stored Procedure ile Kayit Guncelleme ;

                          Burada dikkat etmemiz gerek onemli nokta ise hem input hemde output islemler de calisabilmemiz icin kullaniciya status degiskeni ile bilgi gonderebilmektir. Eger ki kaydiniz guncellendiyse 1 degerini gonderecektir. Java'da ki komutlarimizi yazacak olursak ; public class Main {   public static void main(String[] args) { Connection connection = null; try { String drivername = "oracle.jdbc.driver.OracleDriver"; Class.forName(drivername); String servername = "127.0.0.1"; String portnumber = "1521"; String sid = "XE"; String url = "jdbc:oracle:thin:@"+servername+":"+portnumber+":"+sid; String username = "SYSTEM"; String password = "hr"; connection = DriverManager.getConnection(url,username,password); CallableStatement cs = connection.prepareCall("{call upd_elemanlar(?,?,?,?,?,?)}"); cs.setInt(1, 3); cs.setString(2, "liman"); cs.setString(3, "akcay"); cs.setString(4, "web tasarimi"); cs.setString(5, "bilgi islem"); cs.registerOutParameter(6, Types.INTEGER); cs.execute(); int gelendeger = cs.getInt(6); System.out.println("Sp'den gelen deger " + gelendeger + " , kaydimiz guncellenmistir!..."); } catch (Exception e) { e.printStackTrace(); //hatayi ekrana yazdiracak... } } } Ekran ciktilarimiz ;

                Makalemi sona erdirirken genel bir ozet yapacak olursak; Java ve oracle arasindaki connection kodlarinin yani sira sql cumlelerini ve stored procedurlerini de nasil kullanacagimiza dair birer uygulama yapmis olduk...

Recent Posts

See All
Ado.Net Entity Framework Ogreniyorum Serisi 00

Ado.Net Entity Framework (EF) verileri ile etkilesim uygulamalari gelistirmek icin kullanilan Ado.Net nesne iliskisel modelleme yazilimi olarak iliskisel veritabani semalarini ve nesneler arasinda ki

 
 
 
LINQ Ogreniyorum Serisi 05

Linq To Sql’de tablolarimizdaki verileri silebilmemiz icin; DataContext icerisinde ki DeleteOnSubmit ve DeleteAllOnSubmit metodlari kullanilmaktadir. Beraberinde SubmitChanges metodu da kodlari eklen

 
 
 
LINQ Ogreniyorum Serisi 04

Linq To Sql’de tablolarimiza verileri guncelleyebilmemiz icin; DataContext icerisinde ki SubmitChanges metodu kullanilmaktadir. Bu komutlari kullanarak DataContext sinifinin yapisina da ihtiyac duyu

 
 
 

Comments


©2035 by Sevdanur Genc. Powered and secured by Wix

bottom of page