Kayıtlar

Spring Ders15 - Database ( Veritabanı ) - ResultSetExtractor

Resim
   ResultSetExtractor arayüzünin (interface) query metodu ile veritabanından bilgiler çekilebilir. query metodunun signatürü (imzası) aşağıdaki gibidir. public T query(String sorgu, ResultSetExtractor<T> rse);  Bununla ilgili bir örnek yapalım. Main.java package test; import java.util.List; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext( "applicationContext.xml" ); BilgiIslem bilgici = (BilgiIslem) context. getBean ( "bilgiislem" ); List <Personel> list = bilgici. getPersoneller (); System. out . println ( "ID\tAD\tMAAS\n" ); for (Personel p:list){ System. out . println (p. getId ()+ "\t" +p. getAd ()+ "\t" +p. getMaas ()); } } } Personel.java pac

Spring Ders14 - Database ( Veritabanı ) - PreparedStatement

Resim
   PreparedStatement ( Hazırlanmış Bildiri) ile JdbcTemplate şablonu üzerinde parametrelendirmiş sorguyu execute() metodu ile çalıştırabiliriz. Aşağıda bu metodun signatürü (imzası) verilmiştir. public T execute(String sorgu, PreparedStatementCallback<T>); Veritabanına veri kaydetme işlemi yapan bir program yapalım. Main.java package test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext( "applicationContext.xml" ); BilgiIslem bilgici = (BilgiIslem) context. getBean ( "bilgiislem" ); Personel p1 = new Personel( 1 , "enes" , 9999 ); bilgici. kaydet (p1); } } Personel.java package test; public class Personel { private int id; private int maas; private String ad; public Perso

Spring Ders13 - Database ( Veritabanı ) - JdbcTemplate

Resim
   Spring frameworkü veri tabanında işlemler yapmayı kolaylaştıran bir frameworktür. Gereksiz ve uzun kodlardan kurtulmanızı sağlar.    Spring JDBC Şablonları • Fine-grained seviyesindeki şablonlar – JdbcTemplate – NamedParameterJdbcTemplate • Coarse-grained seviyesinde şablonlar – SimpleJdbcTemplate – SimpleJdbcInsert – SimpleJdbcCall • SQL nesneleri – SqlUpdate – MappingSqlQuery Veritabanı işlemleri yapabilmek için standart .jar dosyalarına ek olarak sahip olunması gereken .jar dosyaları spring-jdbc.jar spring-tx.jar Programlama Aşamaları  applicationContext.xml dosyasında veritabanına erişim bilgilerini içeren DriverManageDataSource beani oluşturulur. <bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />    <property name="url" value="jdbc:oracle:thin:@lo

Spring Ders12 - Referencing Beans

Resim
   Bir bean diğer beane referans olarak verilebileceğini daha önceki derslerde göstermiştik. Bu derste referanslama işleminin tüm farklı şekillerini göstereceğiz. Bir beani diğer beane Inner bean referanslama yaklaşımıyla, Genel bean referanslama yaklaşımıyla, Local bean referanslama yaklaşımıyla, Bean identifier (tanımlayıcı) referanslama yaklaşımıyla local ve genel olarak yapılabilir. Inner Bean Referanslama Yaklaşımı Bir beane isimsiz bir bean setter metodu veya constructor metodu yardımıyla referans olarak verilebilir. <bean id="..." class="...">     <property name="...">             <bean  class="..."></bean>     </property> </bean> <bean id="..." class="...">     <constructor-arg>              <bean  class="..."></bean>     </constructor-arg> </bean> Genel Bean Referanslama Yaklaşımı

Spring Ders11 - Dependency Injection Alternatifleri | Annotation-Driven Autowiring

Resim
   Annotation-Driven Autowiring (Anotasyon Tabanlı Autowiring), autowiring yapısının başka bir modelidir. Bu yapıda bağımlılığın olacağı .xml dosyasında değil de direkt olarak java sınıflarında belirtilir. Ayrıca xml dosyasında isim uzaylarına context uzayı ve aşağıdaki ifade eklenmelidir. <context:annotation-config/>   Annotation-Driven Autowiring (Anotasyon Tabanlı Autowiring) ,. Değişkenlere, Metotlara, Constructor metotlara uygulanabilir. Tüm bunlar için sadece, @AutoWired anahtar kelimesi eklenmesi yeterlidir. Örnek olarak, Bir nesneye uygulanması public class B{    ...     @AutoWired     private A a;     ... } Bir metoda uygulanması public class B{    ...     private A a;      @AutoWired     public void setA(){         this.a=a;     }     ... } Bir constructora uygulanması public class B{    ...     private A a;        

Spring Ders10 - Dependency Injection Alternatifleri | Autowiring

Resim
   Autowiring implicit (örtülü) olarak nesne bağımlılığı enjekte etmeyi sağlar. Avantajı daha az kod gerektirir. Dezavantajı kontrol programcıda değildir. Autowiringin kullanabileceğimiz 5 modu vardır. no byName byType constructor autodetect no  <bean id="..." class="..."></bean>  <bean id="..." class="...." autowire="no" ></bean>    Autowiringin default modudur. Autowiring yapılmayacağı anlamını taşır. byName public class A{     ... } public class B{       A a;    public void setA(A a){       this.a=a;    }      public A getA(){       return a;    } }  <bean id="a" class="test.A"></bean>  <bean id="b" class="test.B"  autowire="byName" ></bean> Bu durumda B sınıfı içerisinde A sınıfından üretilen 'a' nesnesiyle aynı adlı bir bean .xml dosyasında varsa bu bean o nesn

Spring Ders09 - Dependency Injection Alternatifleri | Lookup Method

Resim
   Dependency Injection (Bağımlılık enjektesi) na alternatif olarak bir kaç yöntem bulunur. Bu yöntemler Lookup Method AutoWiring Annotation-driven AutoWiring Lookup Method    Method Injection olarak da anılır. Singleton bean prototype bean üzerinde bağımlığa sahipse, lookup metot kullanılmadığında getBean ile bean kaç kez çağrılırsa çağrılsın singleton bean üzerinden hep aynı prototype bean örneğine erişilir. Lookup metot kullanıldığında ise yeni bir bean örneğine erişilmiş olur. <bean id="a" class="test.A" scope="singleton">        <lookup-method name="getB" bean="b"/> </bean> <bean id="b" class="test.B" scope="prototype"/> public class A{     ...     public abstract B getB();     ... } public class B{    ...    public B getB(){       return this;    }    ... } Aşağıda örnek bir program verilmiştir. Main.java packag