logo

Bahar JdbcŞablon Eğitimi

  1. Bahar JDBC Şablonu
  2. Bahar JDBC Şablonu ihtiyacını anlama
  3. Bahar JDBC Şablonunun Avantajı
  4. JDBC Şablon sınıfları
  5. JdbcTemplate sınıfı örneği

Bahar Jdbc Şablonu veritabanına bağlanmak ve SQL sorgularını yürütmek için güçlü bir mekanizmadır. Dahili olarak JDBC api'yi kullanır, ancak JDBC API'nin birçok sorununu ortadan kaldırır.

tarihformat.format

JDBC API'nin Sorunları

JDBC API'nin sorunları aşağıdaki gibidir:

  • Sorguyu yürütmeden önce ve sonra bağlantı oluşturma, ifade, sonuç kümesini kapatma, bağlantı vb. gibi birçok kod yazmamız gerekiyor.
  • Veritabanı mantığı üzerinde istisna işleme kodu yapmamız gerekiyor.
  • İşlemi halletmemiz gerekiyor.
  • Tüm bu kodların bir veritabanı mantığından diğerine tekrarlanması zaman alıcı bir iştir.

Baharın Avantajı JdbcTemplate

Spring JdbcTemplate, JDBC API'nin yukarıda belirtilen tüm sorunlarını ortadan kaldırır. Sorguları doğrudan yazmanız için yöntemler sağlar, böylece çok fazla iş ve zaman tasarrufu sağlar.


Bahar Jdbc Yaklaşımları

Spring çerçevesi, JDBC veritabanı erişimi için aşağıdaki yaklaşımları sağlar:

  • Jdbc Şablonu
  • AdlandırılmışParametreJdbcTemplate
  • SimpleJdbcTemplate
  • SimpleJdbcInsert ve SimpleJdbcCall

JdbcTemplate sınıfı

Spring JDBC destek sınıflarının merkezi sınıfıdır. Bağlantı nesnesinin oluşturulması, kapatılması vb. kaynakların oluşturulması ve serbest bırakılmasıyla ilgilenir. Dolayısıyla bağlantıyı kapatmayı unutmanız durumunda herhangi bir sorunla karşılaşmazsınız.

İstisnaları ele alır ve tanımlı istisna sınıflarının yardımıyla bilgilendirici istisna mesajlarını sağlar. org.springframework.dao paket.

Veritabanına veri ekleme, güncelleme, silme, alma gibi tüm veritabanı işlemlerini JdbcTemplate sınıfı yardımıyla gerçekleştirebiliyoruz.

Spring JdbcTemplate sınıfının metodlarını görelim.

Python'da
HAYIR.YöntemTanım
1)public int update(Dize sorgusu)Kayıt eklemek, güncellemek ve silmek için kullanılır.
2)public int update(String query,Object... args)Verilen bağımsız değişkenleri kullanarak, PrettyStatement'ı kullanarak kayıtları eklemek, güncellemek ve silmek için kullanılır.
3)genel geçersiz yürütme (Dize sorgusu)DDL sorgusunu yürütmek için kullanılır.
4)public T çalıştır(String sql, PrettyStatementCallback eylemi)Sorguyu, PrettyStatement geri çağırmayı kullanarak yürütür.
5)genel T sorgusu (String sql, ResultSetExtractor rse)ResultSetExtractor'ı kullanarak kayıtları getirmek için kullanılır.
6)genel Liste sorgusu (String sql, RowMapper rse)RowMapper'ı kullanarak kayıtları getirmek için kullanılır.

Bahar JdbcTemplate Örneği

Oracle10g veritabanı içerisinde aşağıdaki tabloyu oluşturduğunuzu varsayıyoruz.

 create table employee( id number(10), name varchar2(100), salary number(10) ); 
Çalışan.java

Bu sınıf yapıcılar, ayarlayıcı ve alıcılar ile 3 özellik içerir.

 package com.javatpoint; public class Employee { private int id; private String name; private float salary; //no-arg and parameterized constructors //getters and setters } 
ÇalışanDao.java

Bir jdbcTemplate özelliği ve saveEmployee(), updateEmployee ve deleteEmployee() yöntemlerini içerir.

 package com.javatpoint; import org.springframework.jdbc.core.JdbcTemplate; public class EmployeeDao { private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public int saveEmployee(Employee e){ String query='insert into employee values( ''+e.getId()+'',''+e.getName()+'',''+e.getSalary()+'')'; return jdbcTemplate.update(query); } public int updateEmployee(Employee e){ String query='update employee set name=''+e.getName()+'',salary=''+e.getSalary()+'' where id=''+e.getId()+'' '; return jdbcTemplate.update(query); } public int deleteEmployee(Employee e){ String query='delete from employee where id=''+e.getId()+'' '; return jdbcTemplate.update(query); } } 
applicationContext.xml

DriverManagerDataSource sürücü sınıfı adı, bağlantı URL'si, kullanıcı adı ve şifre gibi veritabanına ilişkin bilgileri barındırmak için kullanılır.

adında bir mülk var veri kaynağı DriverManagerDataSource türünün JdbcTemplate sınıfında. Bu yüzden datasource özelliği için JdbcTemplate sınıfında DriverManagerDataSource nesnesinin referansını sağlamamız gerekiyor.

Burada EmployeeDao sınıfında JdbcTemplate nesnesini kullanıyoruz yani setter metodu ile aktarıyoruz ama siz yapıcı da kullanabilirsiniz.

 
Test.java

Bu sınıf, bean'i applicationContext.xml dosyasından alır ve saveEmployee() yöntemini çağırır. Kodun yorumunu kaldırarak da updateEmployee() ve deleteEmployee() yöntemini çağırabilirsiniz.

 package com.javatpoint; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) { ApplicationContext ctx=new ClassPathXmlApplicationContext('applicationContext.xml'); EmployeeDao dao=(EmployeeDao)ctx.getBean('edao'); int status=dao.saveEmployee(new Employee(102,'Amit',35000)); System.out.println(status); /*int status=dao.updateEmployee(new Employee(102,'Sonoo',15000)); System.out.println(status); */ /*Employee e=new Employee(); e.setId(102); int status=dao.deleteEmployee(e); System.out.println(status);*/ } } 
bu örneği indirin (MyEclipse IDE kullanılarak geliştirilmiştir)
bu örneği indirin (Eclipse IDE kullanılarak geliştirildi)