Java Database Programlama          Aralık 3, 2012Ø İlkin Ulaş BALKANAY       	  C1	            1	  
İçerik	  1. JDBC	  Teknolojisi	  2. Database	  Programlama	     Temelleri	  3. İleri	  Seviye	  Teknikler	     Java	  for	...
JDBC	  Teknolojisi	  Java	  DataBase	  Connec@vity	  Mimarisi	      Java	  for	  Telco	                	  C1	     3	  
JDBC	  Teknolojisi	  Driver	  Tipleri	                             CLIENT	       Type	  1	                           ODBC	...
JDBC	  Teknolojisi	  7	  Temel	  Adım	  1.  Driver’ı	  yükle	  2.  BağlanT	  adresini	  belirle	  3.  BağlanT	  kur	  4.  ...
JDBC	  Teknolojisi	  7	  Temel	  Adım	  :	  (1)	  Driver’ın	  yüklenmesi	  	  Class.forName(driverName);	  	  •  “com.mysq...
JDBC	  Teknolojisi	  7	  Temel	  Adım	  :	  (2)	  BağlanT	  adresinin	  belirlenmesi	  Mysql	  jdbc:myqsl://<HOST>:<PORT>/...
JDBC	  Teknolojisi	    7	  Temel	  Adım	  :	  (3)	  BağlanT	  kur	  	  String	  url	  =	  "jdbc:mysql://localhost/testdb";...
JDBC	  Teknolojisi	  7	  Temel	  Adım	  :	  (4)	  Statement	  oluştur	  •  Statement	                   !connection.create...
JDBC	  Teknolojisi	  7	  Temel	  Adım	  :	  (5)	  Sorguyu	  çalışTr	  String query = "SELECT * FROM TEST_TABLE     !     !...
JDBC	  Teknolojisi	  7	  Temel	  Adım	  :	  (6)	  Sonuçları	  işle	     PreparedStatement ps =        !connection.prepareS...
JDBC	  Teknolojisi	   7	  Temel	  Adım	  :	  (7)	  BağlanTyı	  kapat	         resultSet.close();!       preparedStatement....
İleri	  Seviye	  Teknikler	  •  Spring	  JDBC	  •  Transac@ons	  •  Performans	  op@mizasyonları	      •  Connec@on	  pool...
İleri	  Seviye	  Teknikler	      Spring	  JDBC	  İşlem	                                                                Spr...
İleri	  Seviye	  Teknikler	  TransacQons	  try {!    connection.setAutoCommit(false);!!    execute “INSERT INTO TEST_TABLE...
İleri	  Seviye	  Teknikler	  Performans	  OpQmizasyonları	  :	  Connec@on	  Pools	  •  DB	  Connec@on	  açmak	  ve	  kapat...
İleri	  Seviye	  Teknikler	  Performans	  OpQmizasyonları	  :	  Batch	  İşlemler	   Tanım	  :	  Benzer	  sorguların	  grup...
İleri	  Seviye	  Teknikler	  Performans	  OpQmizasyonları	  resultSet.setFetchSize(100)                                   ...
İleri	  Seviye	  Teknikler	  Performans	  OpQmizasyonları	  preparedStatement.setQueryTimeout(5)                          ...
İleri	  Seviye	  Teknikler	  Unit	  Tests	  :	  In	  Memory	  Databases	       Java	  for	  Telco	                    	  C...
Son	  olarak....	  JPA	  :	  Java	  Persistency	  API	  ORM	  :	  Object	  Rela@onal	  Mapping	  	  	  	  Önce	  JDBC	  ve...
Próxima SlideShare
Cargando en…5
×

JDBC

391 visualizaciones

Publicado el

Vodafone'un ITU'de duzenledigi "java For Telco" egitimlerinden "JDBC : Database Programlama" egitimi slaytlari.

Publicado en: Tecnología
0 comentarios
2 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
391
En SlideShare
0
De insertados
0
Número de insertados
7
Acciones
Compartido
0
Descargas
23
Comentarios
0
Recomendaciones
2
Insertados 0
No insertados

No hay notas en la diapositiva.

JDBC

  1. 1. Java Database Programlama Aralık 3, 2012Ø İlkin Ulaş BALKANAY  C1   1  
  2. 2. İçerik  1. JDBC  Teknolojisi  2. Database  Programlama   Temelleri  3. İleri  Seviye  Teknikler   Java  for  Telco    C1   2  
  3. 3. JDBC  Teknolojisi  Java  DataBase  Connec@vity  Mimarisi   Java  for  Telco    C1   3  
  4. 4. JDBC  Teknolojisi  Driver  Tipleri   CLIENT   Type  1   ODBC   ODBC  Bridge   Driver   Type  2   Na@ve  API   Na@ve  API   Database   Type  3   Middleware   JDBC-­‐Network   Server   Type  4   100%  Java   Java  for  Telco    C1   4  
  5. 5. JDBC  Teknolojisi  7  Temel  Adım  1.  Driver’ı  yükle  2.  BağlanT  adresini  belirle  3.  BağlanT  kur  4.  Statement  oluştur  5.  Sorguyu  çalışTr  6.  Sonuçları  işle  7.  BağlanTyı  kapat   Java  for  Telco    C1   5  
  6. 6. JDBC  Teknolojisi  7  Temel  Adım  :  (1)  Driver’ın  yüklenmesi    Class.forName(driverName);    •  “com.mysql.jdbc.Driver”  •  “oracle.jdbc.driver.OracleDriver“  •  “org.postgresql.Driver”  Jdbc  4.0  ile  birlikte  (J2SE  6.0)    “Class.forName“  çağırmaya  gerek  kalmıyor.     Java  for  Telco    C1   6  
  7. 7. JDBC  Teknolojisi  7  Temel  Adım  :  (2)  BağlanT  adresinin  belirlenmesi  Mysql  jdbc:myqsl://<HOST>:<PORT>/<DATABASE_NAME>!jdbc:mysql://localhost/testdb!!!Oracle  jdbc:oracle:thin@<HOST>:<PORT>:<DATABASE_NAME>!jdbc:oracle:thin:@172.28.106.178:1522:testdb!!jdbc:oracle:oci:@<DATABASE_NAME> è Type 2 driver! Java  for  Telco    C1   7  
  8. 8. JDBC  Teknolojisi   7  Temel  Adım  :  (3)  BağlanT  kur    String  url  =  "jdbc:mysql://localhost/testdb";  String  username  =  ”ilkin";  String  password  =  ”12345";    Connec@on  connec@on  =      DriverManager.getConnec-on(      url,  username,  password);! Java  for  Telco    C1   8  
  9. 9. JDBC  Teknolojisi  7  Temel  Adım  :  (4)  Statement  oluştur  •  Statement   !connection.createStatement();!  •  PreparedStatement   connection.prepareStatement(sql);!  •  CallableStatement   connection.prepareCall(sql)! Java  for  Telco    C1   9  
  10. 10. JDBC  Teknolojisi  7  Temel  Adım  :  (5)  Sorguyu  çalışTr  String query = "SELECT * FROM TEST_TABLE ! ! !WHERE ID=?";!!PreparedStatement ps = !connection.prepareStatement(query);!ps.setInt(1, 5505);!!ResultSet rs = ps.executeQuery();!!//int rowCount = ps.executeUpdate()! Java  for  Telco    C1   10  
  11. 11. JDBC  Teknolojisi  7  Temel  Adım  :  (6)  Sonuçları  işle   PreparedStatement ps = !connection.prepareStatement(query);! ! ResultSet rs = ps.executeQuery();! ! while (rs.next()) {! !… rs.getString(1) …! !… rs.getInt(2) …! !… rs.getTimestamp(3) …! }! Java  for  Telco    C1   11  
  12. 12. JDBC  Teknolojisi   7  Temel  Adım  :  (7)  BağlanTyı  kapat   resultSet.close();! preparedStatement.close();! connection.close();! !•  Senkron  çalışır  •  Database  ve  JDBC  kaynakları  temizlenir.          (Socket  kapaTlır)  •  Daha  önceden  kapaTlmış  bir  connec@on’ın  “close”   metodunun  çağırılması  birşey  yapmaz.  (no-­‐op)   Java  for  Telco    C1   12  
  13. 13. İleri  Seviye  Teknikler  •  Spring  JDBC  •  Transac@ons  •  Performans  op@mizasyonları   •  Connec@on  pools   •  Batch  işlemler   •  Fetch  Size   •  Query  Timeout  •  Unit  Tests  (  In  Memory  Databases  )   Java  for  Telco    C1   13  
  14. 14. İleri  Seviye  Teknikler   Spring  JDBC  İşlem   Spring   Sen  BağlanT  parametrelerinin  belirlenmesi   X  BağlanTnın  kurulması   X  SQL  cümlelerinin  belirlenmesi   X  SQL  parametrelerinin/@plerinin  belirlenmesi   X  SQL  cümlesinin  hazırlanması  ve  işle@lmesi   X  Sonuçları  gezmek  için    döngü  hazırlanması   X  Her  iterasyon  için  sonucun  işlenmesi   X  Excep@on’ların  işlenmesi   X  Transac@on’ların  yöne@lmesi   X  Connec@on,  Statement  ve  ResultSet’in  kapaTlmasi   X   Java  for  Telco    C1   14  
  15. 15. İleri  Seviye  Teknikler  TransacQons  try {! connection.setAutoCommit(false);!! execute “INSERT INTO TEST_TABLE VALUES(……)”! execute “INSERT INTO TEST_TABLE VALUES(……)”! execute “INSERT INTO TEST_TABLE VALUES(……)”!! connection.commit();!!} catch( Exception e) {!! connection.rollback();!!} finally {!! connection.close(); !}! Java  for  Telco    C1   15  
  16. 16. İleri  Seviye  Teknikler  Performans  OpQmizasyonları  :  Connec@on  Pools  •  DB  Connec@on  açmak  ve  kapatmat  maliyetli  •  Connec@on  pool  içinde  hazır,  kullanılmayı  bekleyen   connec@on’lar  bulunur.  •  Ortak  parametreler:   •  Max  Connec@ons   •  Min  Connec@ons   •  Test  query   •  Uygun  Connec@on  bekleme  süresi  •  Bir  çok    open-­‐source  connec@on  pool  var.   •  DBCP  (hqp://commons.apache.org/dbcp/)   •  BoneCP  (hqp://jolbox.com/)   •  C3P0  (hqp://sourceforge.net/projects/c3p0)     Java  for  Telco    C1   16  
  17. 17. İleri  Seviye  Teknikler  Performans  OpQmizasyonları  :  Batch  İşlemler   Tanım  :  Benzer  sorguların  gruplanması  ve  tek   seferde  DB’ye  gönderilmesi     Avantajları:   •  Uygulama  ve  Database  arasındaki  network   trafiğini  azalTr   •  Database  commit  (IOPS)  sayısını  azalTr.   Java  for  Telco    C1   17  
  18. 18. İleri  Seviye  Teknikler  Performans  OpQmizasyonları  resultSet.setFetchSize(100) *! “select  *  from  test_table”   Applica@on   Database   saTrlar   saTrlar   saTrlar   saTrlar   *    Fetch  Size’ın  Varsayılan  değeri  10’dur.   Java  for  Telco    C1   18  
  19. 19. İleri  Seviye  Teknikler  Performans  OpQmizasyonları  preparedStatement.setQueryTimeout(5) *! “select  *  from  test_table”   Database’ den  cevap   Applica@on   5  saniye   Database   içinde   gelmez  ise   SQLExcep@on   *    Query  Timeout  birimi  saniyedir.  Varsayılan  değeri  sonsuzdur.   Java  for  Telco    C1   19  
  20. 20. İleri  Seviye  Teknikler  Unit  Tests  :  In  Memory  Databases   Java  for  Telco    C1   20  
  21. 21. Son  olarak....  JPA  :  Java  Persistency  API  ORM  :  Object  Rela@onal  Mapping        Önce  JDBC  ve  SQL’i  iyi  öğrenmek  gerekiyor.   Java  for  Telco    C1   21  

×