Java Dersleri 17 – JDBC API (Veritabanı Bağlantısı)
Yazar : Orhan Balci 27 Mayıs 2010 tarihinde Fikir Bildir (0)Yorumlara Bak
(İlk oy veren sen ol)
Bu makalede Java’nın veritabanı kabiliyetlerinden bahsedeceğim. Java’nın tüm veritabanlarına ulaşmak için kullandığı ortak bir API vardır. JDBC (Java Database Connectivity ) API uygulamamızı arka taraftaki veritabanı sisteminden soyutlamamıza olanak tanır. Bunu yapabilmek için elimizde bağlanmak isetdiğimiz veritabının JDBC sürücüsü olmalıdır. Örneğin HSQLDB bağlantısı yapmak istiyorsak bu veritabanı yönetim sistemine ait JDBC sürücüsünü içeren JAR dosyasını projemize eklemeliyiz. Daha sonra bu JAR dosyası içinde bulunan driver sınıfını proje içindeyken JVM’e yüklenmesini sağlamalıyız.
view sourceprint?
1.
Class.forName("org.hsqldb.jdbcDriver");
Yukarıdaki kod satırı HSQLDB sürücü sınıfını JVM’e yükler. Bu sürücüyü kullanarak veritabanına bağlantı elde etmek için ise :
view sourceprint?
1.
hsqldbConnection = DriverManager.getConnection("jdbc:hsqldb:file:"+ databaseName, userName, password);
Buradaki ilk parametre bağlanmak istediğiniz veritabanı tipine göre değişecektir. Buradaki hsqldbConnection nesnesi java.sql.Connection arayüzünü gerçekler. Bu arayüzde veritabanı işlemleri yaparken kullanacağımız metodlar bulunur. Bağlantıyı sağladıktan sonra yapmak isteyeceğimiz ilk şey muhtemel bir SQL sorgusu çalıştırmak olacaktır. Bunun için Connection arayüzünün prepareStatement() metodlarını kullanabiliriz.
view sourceprint?
1.
public ResultSet runSelectQuery(String sqlSorgu) throws SQLException
2.
{
3.
Statement s = hsqldbConnection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
4.
return s.executeQuery(sqlSorgu);
5.
}
Yukarıdaki metod bir sql sorgusu (SELECT) çalıştırarak sonucunu ResultSet nesnesi olarak dışarıya vermektedir. Burada Connection nesnemizden create statement() metoduyla bir Statement nesnesi oluşturduk. Bu nesneyi kullanarak da elimizdeki sql sorgusunu çalıştırdık. SELECT sorgusu bize sonuç döndüğü içn executeQuery() metodunu kullandık. Eğer sonuç dönmeyen UPDATE, DELETE tarzı sql sorgusu çalıştırmak isteseydik executeUpdate() metoduna başvurmalıydık. Burada kullanımı görelim :
view sourceprint?
1.
public int runInsertUpdateQuery(String query) throws SQLException
2.
{
3.
Statement s = hsqldbConnection.createStatement();
4.
return s.executeUpdate(query);
5.
}
Temel olarak yukarıda anlattığım yöntemle veritabanında istediğiniz sorguyu çalıştırabilirsiniz. Bunun dışında veritabanındaki Stored Procedure’leri çalıştırmak isterseniz Connection arayüzünün prepareCall() metodu kullanılmalıdır. Bu metoda vereceğiniz parametre {? = call prosedürismi(?,?)} şeklinde veya {call prosedürismi(?,?)} şeklinde olabilir. Burada öenmli olan nokta çıktı veren prosedürlerde çağırım yapılmadan önce çıktı tiplerinin tanıtılmasıdır. Bir örnekle kullanımı görelim :
view sourceprint?
1.
public void callProcedure(String procedure) throws SQLException
2.
{
3.
CallableStatement s =hsqldbConnection.prepareCall("{ ? = yasi_ver(?) }");
4.
s.registerOutParameter(1, Types.INTEGER);
5.
s.setString(2, "orhan");
6.
s.execute();
7.
int yas = s.getInt(1);
8.
}
Bu örneğimizde veritabanında olduğunu farz ettiğimiz yasi_ver prosedürünü çalıştırdık. Bu prosedür parametre olarak String tipinde bir isim alıyor ver geriye o kişinin int tipinde yaşını dönüyor. Prosedürü çalıştırmadan önce registerOutParameter() metoduyla geri alacağımız değeri bildiriyoruz.
Bunu del.icio.us 'da paylaşın
Bunu Digg'leyin!
Beğendiniz mi? StumbleUpon'da paylaşın
Bunu MySpace'de paylaşın
Bunu Facebook'da paylaşın
Bunu Tweet'leyin!
Bu yazının yorumlarına abone olun!
Bunu Linkedin'de paylaşın
Bunu Friendfeed'de paylaşın
Bunu Slashdot'da saklayın
Blog this on Blogger
İlgili Yazılar:
Java Dersleri 6 – Arayüzler ve Gerçeklenmesi (Interface and Implementation) Nesne odaklı programlamada arayüzler sınıfların dış dünyaya açılan kapılarıdır. Bir...
Java Dersleri 4 – Erişim Denetleyicileri (Access Modifiers) Bu dersimizde Java’nın metodlar ve sınıflar üzerinde erişim kurallarını düzenleyen...
Java Dersleri 5 – Kalıtım (Inheritance) Bu derste Java’nın nesne yönelimli programlamanın temeli olan kalıtım(Inheritance) kavramını...
Java Dersleri 15 – Koleksiyon API (Collection API) Map Map arayüzü anahtar-değer ikililerini bir arada tutmak için tasarlanmıştır. Matemetikteki...
Java Dersleri 12 – String İşlemleri Bu dersimizde Java’nın ve diğer dillerin en temel elemanlarından olan...