2. Bölüm Java Persistence API sine Giriş. 2. Bölüm Java Persistence API sine Giriş... 1

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "2. Bölüm Java Persistence API sine Giriş. 2. Bölüm Java Persistence API sine Giriş... 1"

Transkript

1 2. Bölüm Java Persistence API sine Giriş 1 2. Bölüm Java Persistence API sine Giriş 2. Bölüm Java Persistence API sine Giriş Giriş Entity ya da Kalıcı Nesne Entitynin Özellikleri Kalıcılık Birimi (Persistence Unit) ve Ayarları Şema Oluşturma JPA ve Varsayılanlar Kalıcılık Birimi API si JPA nın Temel Nesneleri ve Kavramları Persistence Sınıfı EntityManagerFactory Sınıfı EntityManager ve Kalıcı Nesne Hayat Döngüsü Nesneyi Kaydetme Transactions Kimlik Bilgisi ile Nesne Getirme Veri Tabanından Nesne Sorgulama Entity Güncelleme Veri Tabanından Entity Silme Bölüm Özeti... 45

2 2. Bölüm Java Persistence API sine Giriş Giriş Bu bölümde JPA nın temellerinden bahsedeceğiz. Önce entity/kalıcı nesne kavramını ele alacağız. Sonra JPA nın temel ayarlarının nasıl yapılabileceğini hem XML hem de programatik yöntemleri kullanarak öğreneceğiz. Sonrasında JPA API sinin EntityManager gibi en sık kullanılan nesnelerini, kavramlarını ve aralarındaki ilişkileri ele alacağız. Kalıcı nesnenin hayat döngüsü ve bu döngünün EntityManager ile nasıl yönetileceği, bu bölümün en fazla yer tutan kısımlarından olacak. Hedefimiz bu bölümün sonunda temel seviyede JPA ile program yazabilir hale gelmektir Entity ya da Kalıcı Nesne JPA nın terimleri içerisinde hem en önemlisi hem de mantıksal olarak ön önce geleni entity yani kalıcı nesne dir. (Gerek bu kitaba başlarken gerek uzun yıllar boyunca ilgili konularda eğitim verirken aklımda hep entity kavramını dilimizde en iyi nasıl ifade ederiz sorusu vardı. Derdim çeviri değildir, iyi ifade etmek, denilmek isteneni kendi dilimizde karşılamaktır. Çeviri yapmaya kalkarsak, sözlüğe bakıp varlık gibi, söylendiğinde hiç bir şey ifade etmeyen, akla ilgili hiç bir şey getirmeyen bir karşılık bulabiliriz. Maalesef bu tip çeviriler çok yaygın. Ama amacımız, söylendiğinde, ilk defa duyan okuyucuların zihninde bile anlamlı bir şeyler uyandırmaksa sanırım kalıcı nesne güzel bir ifadedir. Zaten entity kavramını İngilizce olarak açıkladığımızda persistent object ifadesini kullanırız. Bu kitapta, karışıklıklara yol açmamak için sıklıkla entity kelimesini, bazen de kalıcı nesne ifadesini entity yerine geçecek şekilde kullanacağız.) (Bir başka dikkat çekmek istediğimiz husus da nesne ve sınıf kavramlarını çoğu zaman birbiri yerine kullandığımız gerçeğidir. Bu anlamda entity ile bazen kalıcı nesnenin kendisini bazen de nesneleri kalıcı olan sınıfı kastederiz. Bazen ikinci anlam için kalıcı sınıf da

3 2. Bölüm Java Persistence API sine Giriş 3 kullanılabilir. Bazen sadece nesne dediğimizde de aslında kalıcı nesneyi kastediyoruz demektir. Siz bağlama göre hangisini kastettiğimizi anlayacaksınız.) Entity yani kalıcı nesne, JPA nın, durumunu veri tabanında kalıcı (persistent) hale getirdiği nesneye denir. Bir nesnenin durumunun veri tabanında kalıcı hale getirilmesi, nesnenin durumunu oluşturan nesne değişkenlerinin (instance variables) ya da kısaca alanlarının (fields) veri tabanındaki tabloların sütunlarına yazılması demektir. Bu noktada nesnenin, veri tabanındaki sütunlara yazılan alanlarına, kalıcı alan (persistent field) da denir. Tahmin edeceğiniz gibi, bir nesnenin tüm alanları kalıcı olmak zorunda değildir. Nesne, kalıcı olan ve olmayan alanlara sahip olabilir. Bir entitynin hangi alanlarının nasıl kalıcı olacağını ya da olmayacağını ileride detaylıca ele alacağız ama şu anda varsayılan durumda bir entitynin tüm alanlarının kalıcı olduğunu söyleyerek yetinelim. JPA ile veri tabanında saklanan entitynin durumu, daha sonra isteğe bağlı olarak, veri tabanından uygulamaya getirilebilir ve sonrasında uygulamada entitynin durumunda yapılan güncellemeler veri tabanına yansıtılır. Bir önceki bölümde de bahsettiğimiz gibi bu işlemler, kalıcı nesnelerle ilgili 4 temel nesne- veri tabanı işlemidir ve kısaca YOGS (yaratma, okuma, güncelleme ve silme (CRUD, create, read, update, delete) olarak adlandırılır. JPA nın, entity ile ilgili YOGS işlemleri yapmasına, entitynin hayat döngüsünü (life cycle) yönetmesi denir. JPA da entityler, POJO durlar (POJO, Plain Old Java Objects in kısaltmasıdır ve kanımızca dilimizdeki en güzel karşılığı, şu bizim dedelerimizin kullandığı nesneler olabilir). Yani entitylerin herhangi bir sınıftan miras devralmaları gerekmediği gibi, herhangi bir ara yüzü de gerçekleştirmeleri gerekmez. Dolayısıyla entityler hafif (light- weight) nesnelerdir yani Java dili dışında herhangi bir yapıya bağımlılıkları yoktur. Bu durum JPA nın bir kolaylığıdır çünkü Java dünyasında JPA dan önce çıkan pek çok NİE yapısı örneğin Kurumsal Java Beanleri nin (Enterprise Java Beans, EJB) bu amaçla çıkarılmış türü olan Entity Bean, POJO değildi, daha karmaşık bir yapıya sahipti ve bundan dolayı da geliştirme daha farklı ve karmaşık yapılıyordu. Bu noktada EJB lerin çıkışından 3.0 sürümüne kadar parçası olmuş bir türü olan Entity Beani ile JPA nın entitysinin kavramsal olarak aynı amaca yönelik yapılar olmasına rağmen mekanizma olarak tamamen farklı olduklarını ve karıştırılmamaları gerektiğini ifade edelim.

4 2. Bölüm Java Persistence API sine Giriş 4 Peki, JPA da entityler POJO ise, bir sınıfın nesnelerinin kalıcı yani entity olduğunu nasıl belirtiriz? Bunun için iki yöntemden birisini kullanmalıyız: notlar (annotation) ya da XML ayarları. Bilindiği gibi, Java da notlar, alan, metot ve sınıf gibi yapılar için geçerlidir ve bazen kod üretmek, bazen derleyiciye belli bilgiler vermek, bazen de ayar yapmak amacıyla kullanılır. Java da notlar, Java API sinin bir parçasıdır ve kod içinde işareti getirilerek kullanılır. Bir sınıfın nesnelerinin entity olduğunu belirtmek için kullanacağımız not ise Entity dir olarak nitelediği sınıfın tanımından önce kullanılır. XML ile ayar yapıldığında ise <entity> elemanı kullanılır. package com.jpabook.ch02.domain; import java.util.date; import public class Person private int id; private String firstname; private String lastname; private Date dob; public Person() { public Person(int id, String firstname, String lastname, Date dob){ this.id = id; this.firstname = firstname; this.lastname = lastname; this.dob = dob;... Kod: Person.java

5 2. Bölüm Java Persistence API sine Giriş 5 Yukarıdaki Person sınıfı, sınıf tanımından önce notu ile nesnelerinin hayat döngüsü JPA tarafından yönetilecek bir kalıcı sınıf olarak tanımlanmış notunun sadece bir tane isteğe bağlı, yani kullanılması zorunlu olmayan özelliği (attribute) vardır. String tipinde ve name isminde olan bu özellik, kalıcı nesneye, sınıfın yalın ismi dışında bir isim vermek istendiğinde kullanılır. Yalın isimden kasıt ise, sınıfın, paketi hesaba katılmadan kullanılan ismidir. Tam ismi com.jpabook.ch02.domain.person olan sınıfın yalın ismi Person dır. Yukarıdaki örnekte eğer name özelliğini kullanmasaydık, kalıcı nesnenin ismi de sınıfın yalın ismi olan Person olurdu. Fakat yukarıdaki notuyla entitynin ismi PersonEntity olarak belirlenmiş olur. Aşağıdaki kod parçalarında bu iki durum public class Person public class Person {... Kod: Person.java Entity tanımlamak için bir başka zorunluluk da kimlik (identity, ya da id) bilgisidir. Her entity, aynı tipten nesneler arasında kendini ayırt eden bir kimlik bilgisine sahip olmalıdır. Entitynin durumu veri tabanında saklanacağından, kimlik bilgisi, veri tabanındaki ana anahtar (primary key) alana karşı gelmek zorundadır. Dolayısıyla tanımı gereği ana anahtar alanın değeri de tablodaki her satır için tekil yani ayırt edici olmak zorundadır. JPA da entitynin bir alanını kimlik olarak tanımlamak için Id notu ya da XML ile ayar yapılıyorsa <id> elemanı kullanılmalıdır. Kimlik bilgisi bir ya da daha fazla alandan oluşabileceği gibi ayrı bir sınıfın nesnesi de kimlik olarak kullanılabilir. Kimlik bilgisini yazılım geliştiren kod

6 2. Bölüm Java Persistence API sine Giriş 6 içinde atayabileceği gibi arzu edilirse JPA ya ister kendi isterse veri tabanının yeteneklerini kullanarak kimlik bilgisini oluşturması söylenebilir. Burada dikkat edilmesi gereken şey, bir entitynin kimlik bilgisinin aldığı değerin değişmemesi gerektiği gerçeğidir. Biz kimlik bilgilerini detaylıca alacağımız kısma gelinceye kadar nesnelerin kimlik bilgilerini kod içinde belirleyeceğiz. Aynı Person sınıfını, alternatif yöntem olan XML kullanarak entity olarak tanımlamak istersek, aşağıdaki gibi bir XML kod parçası kullanmamız gereklidir: <?xml version="1.0" encoding="utf-8"?> <entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/persistence/orm version="2.0"> <description>jpa Book, CH02</description> <package>com.jpabook.ch02.domain</package> <entity class="person" name="personentity"> <table name="persons0201" /> <attributes> <id name="id"> </id> <column name="id"/> <basic name="firstname"> </basic> <column name="firstname" length="30" /> <basic name="lastname"> <column name="lastname" length="50" /> </basic> <basic name="dob"> <column name="dateofbirth" /> <temporal>date</temporal> </basic> </attributes> </entity> </entity-mappings> Kod: Person.xml

7 2. Bölüm Java Persistence API sine Giriş 7 XML kodunda görüldüğü gibi <entity> etiketi, içinde class ve name özellikleri ile kullanılmıştır. Tahmin edebileceğiniz gibi class özelliği zorunlu ama name özelliği seçimlidir ve name özelliği kullanılmadığında entitynin ismi, notlu haldeki gibi, sınıfın yalın ismi olarak belirlenir. Yukarıdaki örnekten görüldüğü gibi <description> not karşılığı olmayan etiketlerdendir ve kalıcı yapılan nesne ile ilgili bilgi vermek amacıyla kullanılabilir. Bu etiketin not karşılığının olmaması ise son derece anlaşılır bir durumdur çünkü Java kodunda bu amaçla yorumlar örneğin Javadoc kullanılır. Kısaca tekrar etmek istersek, bir sınıfın entity olabilmesi için notuyla notlandırılması ya da ilgili XML dosyasında <entity> elemanı içinde class özelliği kullanılarak belirtilmesi zorunludur. Eğer bir sınıf hem not hem de XML dosyasında entity olarak belirtilirse, XML dosyasındaki ayarlar nottaki ayarları ezecektir. Ayrıca kalıcı sınıfın ile notlandırılmış ya da XML kullanımında <id> elemanı ile belirlenmiş ve veri tabanındaki ana anahtar (ya da kısaca anahtar) alana karşılık gelen bir alanı olmak zorundadır. Daha fazla ilerlemeden kısaca entitynin isminin ne işe yaradığından bahsedelim. Entitynin ismi, genel olarak sorgularda kullanılır. Dolayısıyla uzun olan ya da çok da anlamlı olmayan sınıf ismi yerine daha kısa ya da daha anlamlı bir isim seçmek amacıyla bu özellik tercih edilebilir Entitynin Özellikleri Bir sınıfın JPA nın şartlarına uygun bir entity olabilmesi için başka şartlar da vardır. Bunları kısaca şöyle sıralayabiliriz: Entity öncelikle bir sınıf olmalıdır, enum ya da interface entity olamaz. Sınıf, en üst seviyede bir sınıf olmalıdır. Yani entity olacak sınıf, bir iç sınıf (inner class) olmamalıdır. Benzer şekilde entity sınıfı final olmamalı ve herhangi bir final kalıcı alan ve metoda sahip olmamalıdır. final anahtar kelimesinin kullanımı ile ilgili bu kısıtlamanın nedenini ileride göreceğiz.

8 2. Bölüm Java Persistence API sine Giriş 8 Sınıf, muhakkak public ya da protected olan bir varsayılan (default) yani argümansız (no- arg) kurucuya (constructor) sahip olmalıdır. Entity sınıfı, tabi olarak, varsayılan kurucu yanında, argüman alan pek çok farklı kurucuya sahip olabilir. Eğer entity uzak ara yüzlere (remote interface) geçilecekse, sınıfın java.io.serializable ara yüzünü gerçekleştirmesi de gereklidir. Entity soyut bir sınıf olabilir. Bu durumda belli ki bir kalıtım hiyerarşisi vardır ve soyut olan bu sınıftan miras devralan tüm sınıflar da doğrudan entity olurlar. Entity sınıfı, entity olmayan bir başka sınıftan miras devir alabileceği gibi, entity olmayan bir sınıf da entity olan bir başka sınıftan miras devir alabilir. İlerideki bölümlerde, miras devir alma ile ilgili ayrıntıları ele alacağız. Entitynin durumunu oluşturan nesne değişkenleri daima sarmalama (encapsulation) prensibine uygun bir şekilde yani bean özellikleri olarak ifade edilmelidir. Dolayısıyla entitynin müşterileri ya da istemcileri (clients), entitynin kalıcı olan nesne değişkenlerine ancak getter- setter metotları ya da diğer iş metotları (business methods) üzerinden erişebilmelidir. Bu anlamda kalıcı olan nesne değişkenleri private ya da devir alınma durumu göz önüne alınarak protected olarak nitelenmeli ve bu değişkenlerin, erişim ve değişme durumları göz önüne alınarak, ilgili set ve get metotları oluşturulmalıdır. Pek tabi olarak, her Java sınıfı için unutulmaması gereken tostring(), equals() ve hashcode() metotlarını tekrar tanımlamamız (override), daha kaliteli geliştirme açısından önemlidir. Yukarıdaki maddeleri göz önüne aldığımızda Person entity sınıfını şu şekilde ifade edebiliriz: package com.jpabook.ch02.domain; import java.util.date; import

9 2. Bölüm Java Persistence API sine Giriş 9 public class Person private int id; private String firstname; private String lastname; private Date dob; public Person() { public Person(int id, String firstname, String lastname, Date dob) { this.id = id; this.firstname = firstname; this.lastname = lastname; this.dob = dob; public Person(int id, String firstname, String lastname) { this(id, firstname, lastname, null); public int getid() { return id; public void setid(int id) { this.id = id; public String getfirstname() { return firstname; public void setfirstname(string firstname) { this.firstname = firstname; public String getlastname() { return lastname;

10 2. Bölüm Java Persistence API sine Giriş 10 public void setlastname(string lastname) { this.lastname = lastname; public Date getdob() { return dob; public void setdob(date dob) { this.dob = dob; public java.sql.date getdobassqldate() { return new public int hashcode() { final int prime = 31; int result = 1; result = prime * result + ((firstname == null)? 0 : firstname.hashcode()); result = prime * result + id; result = prime * result + ((lastname == null)? 0 : return result; public boolean equals(object obj) { if (this == obj) return true; if (obj == null) return false; if (getclass()!= obj.getclass())

11 2. Bölüm Java Persistence API sine Giriş 11 return false; Person other = (Person) obj; if (firstname == null) { if (other.firstname!= null) return false; else if (!firstname.equals(other.firstname)) return false; if (id!= other.id) return false; if (lastname == null) { if (other.lastname!= null) return false; else if (!lastname.equals(other.lastname)) return false; return public String tostring() { return "Person [id=" + id + ", firstname=" + firstname + ", lastname=" + lastname + ", dob=" + dob + "]"; Kod: Person.java 2.3. Kalıcılık Birimi (Persistence Unit) ve Ayarları JPA ile ilgili bir diğer önemli yapı ise kalıcılık birimi dir (persistence unit). Kalıcılık birimi, projenin JPA ayarları ile bu ayarları paylaşan kalıcı sınıfların oluşturduğu mantıksal yapının ismidir. Kalıcılık birimi, JPA projesinin kökünde olan META-INF klasöründeki persistence.xml dosyası içinde tanımlanır. META-INF klasörü ile persistence.xml dosyasının isimleri ve yerlerinin bu şekilde olması bir zorunludur, değişemez. Kalıcılık birimi istenirse program içinde de ilgili API kullanılarak programatik bir şekilde tanımlanabilir. Bunu nasıl yapabileceğimizi bu bölümde daha ileride göreceğiz. Kalıcılık birimi, projenin JPA ile

12 2. Bölüm Java Persistence API sine Giriş 12 yönetilecek olan kalıcılık yapısıyla ilgili ayarlarını içerir ve projenin kurulumunun (deployment) da parçasıdır. Aşağıdaki kod parçasında tipik aynı zamanda da basit bir persistence.xml görülmektedir.... <persistence-unit name="ch02.00" transaction-type="resource_local"> <provider>org.eclipse.persistence.jpa.persistenceprovider <mapping-file>meta-inf/person.xml</mapping-file> <class>com.jpabook.ch02.domain.person</class> </provider> <exclude-unlisted-classes>true</exclude-unlisted-classes> <properties> <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.clientdriver"/> <property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/jpabook;create=true"/> <property name="javax.persistence.jdbc.user" value="app"/> <property name="javax.persistence.jdbc.password" value="password"/> <property name="eclipselink.logging.level.sql" value="off" /> <property name="eclipselink.ddl-generation" value="create-tables" /> <property name="eclipselink.create-ddl-jdbc-file-name" value="create.ddl" /> <property name="eclipselink.drop-ddl-jdbc-file-name" value="drop.ddl" /> <property name="eclipselink.ddl-generation.output-mode" value="database" /> </properties> </persistence-unit>...

13 2. Bölüm Java Persistence API sine Giriş 13 Kod: persistence.xml Yukarıdaki persistence.xml dosyasını incelersek, en başta her XML dosyasında olduğu gibi bir XML tanıtım satırı görürüz. Sonra ise XML dokümanının kök elemanı olan <persistence> gelmektedir. <persistence> elemanının içinde bir ya da daha fazla <persistence-unit> elemanı kullanarak bir ya da daha fazla sayıda kalıcılık birimi tanımlanabilir. Yukarıdaki örnekte sadece bir tane kalıcılık birimi tanımlanmıştır. <persistence-unit> elemanının iki tane özelliği vardır: name ve transactiontype. name zorunludur ve kalıcılık biriminin ismidir, değer olarak bir String almalıdır. transaction-type ise kalıcılık biriminin transaction tipidir ve RESOURCE_LOCAL ya da JTA değerlerinden birisini almalıdır. (Transaction kelimesini de dilimizde veri tabanı işlemi olarak çevirmek anlamda karışıklıklara yol açtığı için bu kelimeyi de aynen İngilizce aslıyla kullandık.) JTA, Java Transaction API sinin kısaltması olup, Java EE nin, birden fazla veri kaynağı kullanarak oluşturulan dağıtık transactionları (distributed transactions) yönetmeyi sağlayan ara yüzüdür. Kalıcılık biriminin işlem tipinin JTA olduğu JPA kullanılan projeler, uygulama sunucusu (application server) gibi bir JTA gerçekleştirmesine sahip ortamlarda olmalıdırlar. Kalıcılık biriminin transaction tipi, ayrıca belirtilmediğinde varsayılan değer olarak RESOURCE_LOCAL dır. RESOURCE_LOCAL genelde Java SE ortamlarında kullanılır. RESOURCE_LOCAL transaction türüne sahip bir JPA projesinde transactionlar, JPA nın bir nesnesi olan EntityTransaction üzerinden yönetilir. Bu durumda, JPA ürünleri, altta var olan JDBC bileşeninin transactionlarını kullanarak EntityTransaction nesnesini oluştururlar ve JPA nın transactionlarını yerine getirirler. Ayrıca Java EE ortamı olduğu halde JTA yerine RESOURCE_LOCAL tipinde kalıcılık birimi kullanılabileceğini de belirtmeliyiz. Biz JTA kullanan kalıcılık birimi ile Java EE ortamlarında JPA kullanımına ilerideki bölümlerde gireceğiz. O zaman kadar örneklerimizde, aksi söylenmedikçe, daima RESOURCE_LOCAL tipinde transactiona sahip kalıcılık birimleriyle çalışacağız.

14 2. Bölüm Java Persistence API sine Giriş 14 Sonra gelen satır, JPA gerçekleştirmesini ifade eder. Bunun için <provider> elemanı kullanılmıştır. Aslen <provider> elemanının kullanımı seçimlidir. <provider>org.eclipse.persistence.jpa.persistenceprovider</provider> Java çalışma zamanı (run- time) ortamı ya da JVM, (Java Virtual Machine ya da Java Sanal Makinası) kalıcılık birimini oluşturmak için önce sınıf- yolunda (classpath) JPA nın javax.persistence.spi.persistenceprovider arayüzünü gerçekleştiren sınıfı arar. JVM uygun sınıfı bulduğunda onu belleğe yükler ve üzerindeki metotları çağırarak JPA yapısını başlatır. Bu yüzden JPA ayarları içinde <provider> elemanın belirtmenize gerek yoktur, zorunlu değildir. Bu durumda JVM, sınıf- yolunda bulunan JPA gerçekleştirmesini kullanacaktır. Uygulamanızda belirli bir JPA ürününü kullanmayı öngörüyorsanız tabi olarak <provider> elemanını kullanabilirsiniz. Bu durumda her yeni JPA gerçekleştirme değişikliğinde bu satırı güncellemeniz gerekecektir. Yukarıdaki örnekte, kitapta kullanacağımız JPA gerçekleştirmesi olan EclipseLink in <provider> elemanı için gerekli sınıfı verilmiştir. Fakat kitabın örnek uygulamalarında gerekmedikçe <provider> elemanı kullanılmayacaktır. Kalıcılık birim tanımı ayrıca farklı eşleştirme dosyalarını listeleyebilir. Örneğin, <mapping-file>meta-inf/person.xml </mapping-file> satırı, META-INF dosyasındaki Person.xml isimli bir eşleştirme dosyasını göstermektedir. Eşleştirme bilgisi doğrudan persistence.xml dosyasına da konabilir fakat çok sayıda eşleştirmenin burada yapılması pek de sağlıklı bir durum değildir. Bu yüzden eşleştirmeleri notlarla yapmak yerine XML ile yapmayı düşünüyorsanız, bir ya da daha fazla eşleştirme dosyasına istediğiniz isim(ler)i verip onları istediğiniz yere koyabilirsiniz. Önemli olan eşleştirme dosyalarına olan referansları persistence.xml dosyasında <mapping-file> elemanı

15 2. Bölüm Java Persistence API sine Giriş 15 ile sıralamanızdır. Biz örneklerimizde eşleştirme dosyasını ya da dosyalarını, yukarıdaki örnekte olduğu gibi META-INF klasörüne koyacağız. Yukarıdaki persistence.xml dosyasında daha sonra <class>com.jpabook.ch02.domain.person</class> <exclude-unlisted-classes>true</exclude-unlisted-classes> kısmı gelmektedir. Bu satırlar, JPA ya, sadece burada listelenen entityleri yüklemesini, listelenmeyenleri ise yüklememesini söylemektedir. Asıl itibarıyla, bir JPA projesindeki entitylerin persistence.xml dosyasında listelenmesi zorunludur. Ama bazı JPA ürünleri, projenin sınıf- yolunu ile notlandırılmış sınıfları ve varsa eşleştirme dosyalarına bakarak <entity> elemanı ile belirtilmiş sınıfları, entity sınıfı olarak belleğe yüklemektedir. Fakat asıl olan, hem tüm entityleri liste olarak bir arada görme hem de aynı entityi, öğrenme ve deneme amacıyla birden fazla sınıfta farklı şekillerde tanımlama gibi amaçlar için, böyle bir listeyi yapıp <exclude-unlisted-classes>true</exclude-unlisted-classes> gibi bir satırla, burada listelenmeyen başka entitylerin yüklenmemesini sağlayabilirsiniz. Bu satırı kullanmadığınızda JPA, projenin sınıf- yolunda var olan bütün entity sınıflarını belleğe yükleyecektir. Siz bu kitabın kodlarında aynı entitynin, örneğin Person, farklı paketlerdeki Person sınıflarıyla tekrar tekrar tanımlandığını göreceksiniz. Eğer persistence.xml dosyasında ilgili Person sınıfı, <class> elemanı ile listelense bile <exclude-unlistedclasses> elemanı true değeriyle kullanılmazsa, projedeki bir çok farklı Person sınıfı kalıcı nesne olarak doğrudan belleğe yüklenecektir. Bu durum da problemlere yol açacaktır. Kalıcılık birimi tanımlamasında daha sonra JPA özellikleri gelmektedir. <properties> elemanı ve içindeki pek çok <property> elemanı ile ifade edilen özellikler ya JPA nın standart

16 2. Bölüm Java Persistence API sine Giriş 16 özellikleri ya da kullanılan JPA ürününün kendine has özellikleri olarak sıralanır. <property> elemanının name ve value isimli iki özelliği vardır ve bunların aldığı değerler iki tane çift tırnak ( ) içinde ifade edilirler. Kalıcılık biriminin tanımdan aşağıya aldığımız özellikler de bu duruma uygun olarak iki ayrı tip olarak ele alınabilir. <properties> <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.clientdriver"/> <property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/jpabook;create=true"/> <property name="javax.persistence.jdbc.user" value="app"/> <property name="javax.persistence.jdbc.password" value="password"/> <property name="eclipselink.logging.level.sql" value="off"/> <property name="eclipselink.ddl-generation" value="create-tables"/> <property name="eclipselink.ddl-generation.output-mode" </properties> value="database"/> Kod: persistence.xml İlk grupta JPA nın 2.0 sürümüyle birlikte standart hale getirilen ve Java SE ortamlarında kullanılan veri tabanı bağlantı bilgileri yer almaktadır. (Java EE ortamlarında veri tabanı için veri kaynağı (data source) tanımlanması gereklidir.) Dört adet olan bu bilgiler, veri tabanına ulaşmak için kullanılacak sürücü (driver), veri tabanı patika bilgisi (url), veri tabanı kullanıcı adı (user) ve şifresidir (password). Yukarıda verilen persistence.xml dosyasındaki son üç özellik ise kullanılan JPA ürününe has özelliklerdir ve ürüne göre değişiklik göstermektedir. Kullanmakta olduğumuz JPA gerçekleştirmesi olan EclipseLink in özelliklerinden olan, eclipselink.logging.level.sql, EclipseLink e çalışma zamanında üretmiş olduğu

17 2. Bölüm Java Persistence API sine Giriş 17 SQL cümlelerini konsola yazmamasını bildirmektedir. EclipseLink dokümanlarına baktığınızda burada bulunan OFF değeri yerine, bilgi verilecek durumunun hassasiyetine göre sıralarsak, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL değerlerinden birini kullanabiliriz. Örneğin kitabın örneklerini çalıştırırken üretilen SQL cümlelerini basit bir şekilde görmek için bu değeri FINE yapabilirsiniz Şema Oluşturma Yukarıda verilen persistence.xml dosyasındaki son iki özellik ise veri tabanındaki şema (schema) ile ilgilidir. JPA ürünleri haklı olarak aksini onlara söylemediğiniz sürece, veri tabanında kullanıma hazır bir şema olduğunu ve bu şemanın entitylere uygun olarak oluşturulmuş tablolara ile ilgili trigger, sequence vb. yapılara sahip olduğunu varsayar. Zaten olması gereken de budur; yani veri tabanı şeması ya zaten içinde verileriyle birlikte, önceden çalışan sistemleri destekleyecek şekilde hali hazırda vardır ve siz bu var olan şemaya ve verilerine karşı JPA kodlarını yazıyorsunuzdur ya da entitylere uygun bir veri tabanı şeması tasarımı yapılacaktır. Dolayısıyla her halükarda veri tabanı şeması tam ya da kısmi olarak hazırdır. Fakat bu durum, JPA ile oynayarak onu öğrenmek ya da hızlıca bazı testler yapmak istediğinizde dolayısıyla da veri tabanındaki yapılarınız hazır olmadığında, önünüze problem olarak çıkar. Bu durumda JPA ürünleri sizin için şema oluşturup, entitylere uygun tablo yapılarını yaratarak size çok büyük bir iyilik yaparlar. İşte son iki satırdaki eclipselink.ddl-generation ve eclipselink.ddl-generation.output-mode EclipseLink in bu amaç için oluşturulmuş iki özelliğidir. İlk özellik olan eclipselink.ddl-generation ın aldığı create-tables değeri EclipseLink e, eğer veri tabanında gerekli tabloları ve diğer yapıları ya da kısaca şemayı, yok ise yaratmasını söylemektedir. Eğer uygun şema varsa diğer JPA ürünleri gibi EclipseLink de herhangi bir yaratma işlemi yapmaz ve var olanları kullanır; fakat şemada bir problem varsa hata verir. EclipseLink dokümanları bize create-tables değerine alternatif olarak, dropand-create-tables değerinin de özellikle test amaçlı kullanılabileceğini ve bu durumda da her çalışmada EclipseLink in şemadaki bütün tabloları ve ilgili yapıları önce düşürüp (drop)

18 2. Bölüm Java Persistence API sine Giriş 18 sonra tekrar yaratacağını, dolayısıyla da her seferinde eski verinin kaybolacağını söylemektedir. Eğer eclipselink.ddl-generation özelliği kullanılmazsa ya da varsayılan değeri olan none kullanılırsa EclipseLink, veri tabanındaki şema ile ilgili hiç bir işlem yapmayacaktır. Şema oluşturma ile ilgili ikinci özellik ise eclipselink.ddl-generation.outputmode dur ve aldığı değer database dir. Bu özellik EclipseLink e, var olan entityler ve ilgili bilgiler ışığında CREATE, DROP, ALTER vb. SQL terimlerini kullanarak oluşturacağı veri tanımlama dili (Data Definition Language, DDL) ifadelerinin hedefinin, veri tabanının kendisi olduğunu söyler. Yani database değeri, eclipselink.ddl-generation özelliğinin değeri ister create-tables isterse drop-and-create-tables olsun, şema işlemlerin hedefinin veri tabanı olduğunu ifade eder. Alternatif olarak bu özelliğin değerini sql-script de yapabilirsiniz. Bu durumda EclipseLink, şema için ürettiği veri tanımlama dili ifadelerini veri tabanında çalıştırmak yerine sizin için SQL kod parçası olarak üretip varsayılan durumda yeni yaratmalar için createddl.jdbc, var olanları düşürme için ise dropddl.jdbc isimli bir dosyaya kaydedecektir. Eğer bu dosyaların isimlerini siz belirlemek isterseniz EclipseLink in sırasıyla eclipselink.create-ddl-jdbc-file-name ve eclipselink.dropddl-jdbc-file-name isimli özelliklerini kullanabilirsiniz. Aşağıdaki örnek değerler, veri tabanında yoksa şemayı oluşturmak için verilmiştir. JPA uygulamasını bu değerlerle ilk defa çalıştırınca EclipseLink gerekli şemayı sizin için oluşturacak, sonraki seferlerde ise herhangi bir şey oluşturmayıp var olan şemayı kullanacaktır. <property name="eclipselink.ddl-generation" value="create-tables"/> <property name="eclipselink.ddl-generation.output-mode" value="database"/> EclipseLink e has özelliklerin listesini ve açıklamalarını, API sindeki org.eclipse.persistence.config.persistenceunitproperties sınıfında bulabilirsiniz. Hibernate ya da OpenJPA gibi farklı JPA ürünlerinin de benzer özellikleri vardır.

19 2. Bölüm Java Persistence API sine Giriş 19 Yukarıdaki paragraflarda tartıştığımız JPA ürünü olarak EclipseLink in şemadaki yapıları sizin için oluşturmasıyla ilgili özellikleri, ürüne bağlı olan ayaralardır ve JPA nın 2.1 sürümüyle birlikte bunlar ve diğer pek çok özellik standart hale getirilmiştir. JPA nın standart özellikleri javax.persistence isim uzayında tanımlanırlar. JPA üreticileri ise kendilerine has olan özellikleri hala yukarıdaki EclipseLink özelliklerinde olduğu gibi ancak kendi belirledikleri isim uzayında tanımlayabilirler. Güzel bir gelişme olan bu standardizasyon sayesinde artık JPA ayarları çok daha taşınabilir hale gelmiştir. Bu amaçla JPA standardına yeri geldikçe detaylı olarak ele alacağımız pek çoğu ile birlikte aşağıdaki kalıcılık birimi özellikleri de eklenmiştir: javax.persistence.schema-generation.database.action Bu özelliğin alabileceği değerler, none, create, drop-and-create ve drop dır. Bu özellik kullanılmadığında JPA, gerekli yapıların var olduğunu düşünür ve veri tabanında herhangi bir işlem yapmaz. Tahmin edebileceğiniz gibi, none varsayılan değer olup veri tabanında herhangi bir yaratma ya da düşürme yapmamaktadır., dolayısıyla etkisi bu özelliğin hiç kullanılmadığı durumla aynıdır. create kullanıldığında JPA ürünü veri tabanında bulamadığı yapıları yaratır, bulduklarıyla ilgili olarak hiç bir işlem yapmaz. drop-and-create değeri varsa JPA veri tabanındaki yapıları önce düşürür sonra da yenilerini yaratır. Bu değer kullanıldığında veri tabanında veri birikmesi söz konusu olmaz, dolayısıyla bu seçeneği daha çok birim testleri için kullanmayı tercih edebilirsiniz. Son seçenek olan drop ise adından da anlaşılacağı üzere, var olan yapıları düşürür. Dolayısıyla bu seçenek sadece şemayı temizlemek için kullanılabilir, çünkü sonrasında herhangi bir veri tabanı işlemi yapılamaz. javax.persistence.schema-generation.scripts.action Bu özellik ise yukarıdaki özellikle aynı değerlere sahiptir ve belirtildiğinde JPA tarafından oluşturulan veri tanımlama dili SQL cümlelerini javax.persistence.schemageneration.scripts.create-target ve javax.persistence.schema-generation.scripts.drop-target

20 2. Bölüm Java Persistence API sine Giriş 20 özelliklerinde belirtilen hedef dosyalara kaydeder. Dolayısıyla javax.persistence.schema-generation.scripts.action özelliğinin aldığı değere göre create ve/veya drop hedef dosyalarının da kalıcılık biriminde belirtilmiş olmalıdır aksi taktirde JPA hata verecektir. Bu ayarlar aşağıdaki kalıcılık biriminde tanımlanmıştır: <persistence-unit name="ch02.01" transaction-type="resource_local"> <mapping-file>meta-inf/person.xml</mapping-file> <class>com.jpabook.ch02.domain.person</class> <exclude-unlisted-classes>true</exclude-unlisted-classes> <properties> <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.clientdriver"/> <property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/jpabook;create=true"/> <property name="javax.persistence.jdbc.user" value="app"/> <property name="javax.persistence.jdbc.password" value="password"/> <property name="javax.persistence.schema- generation.database.action" value="drop-and-create"/> <property name="javax.persistence.schema- generation.scripts.action" value="drop-and-create"/> <property name="javax.persistence.schema- generation.scripts.create-target" value="create.ddl"/> <property name="javax.persistence.schemageneration.scripts.drop-target" value="drop.ddl" />

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1 Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit

Detaylı

ORM & Hibernate. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4 ahmetdemirelli@sabanciuniv.edu

ORM & Hibernate. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4 ahmetdemirelli@sabanciuniv.edu ORM & Hibernate Ahmet Demirelli SCJP 5.0, SCWCD 1.4 ahmetdemirelli@sabanciuniv.edu Sabancı Üniversitesi Bilişim Teknolojileri Yüksek Lisans Programı Seminerleri 2008 Hakkımızda SabancıÜniversitesi BT Yüksek

Detaylı

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2 1 Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2 Eclipse Mimarisi 4 Java Teknolojisine Genel Bir Bakış 6 Taşınabilirlik 6 Java Derleyicisi ve Bytecode 6 Java Sanal Makinası (Java Virtual Machine - JVM)

Detaylı

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java) 1 BİL-141 Bilgisayar Programlama I (Java) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu,

Detaylı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama JDBC (Java Database Connectivity) Üst Düzey Programlama-ders07/ 1 JDBC JDBC ilişkisel veritabanlarına erişim için Java dilinde kullanılan standart bir kütüphanedir. Bu kütüphanedeki

Detaylı

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir; abstract Sınıflar 1 Özet sınıflar ya da özet metotlar abstract anahtar sözcüğü kullanılarak tanımlanırlar. Bir temel sınıf içinde bildirilen abstract metotların içeriği boştur. Kendisinden yeni bir instance

Detaylı

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim' Bu Derste Öğrenecekleriniz: 1- Veri Tabanı Adı Değiştirme 2- Nesnelerin Adını Değiştirme a. Tablo Adı Değiştirme b. Alan Adı Değiştirme c. Constraint (Kısıtlama) Adı Değiştirme 3- Tablo Düzenleme Komutları

Detaylı

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Yazılım Kodlama ve İ simlendirme Standartları v1.0 Yazılım Kodlama ve İ simlendirme Standartları v1.0 İçerik Yazılım Kodlama ve İsimlendirme Standartları... 2 1. Amaç... Hata! Yer işareti tanımlanmamış. 2. Kapsam... Hata! Yer işareti tanımlanmamış. 3.

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama Servlet Üst Düzey Programlama-ders01/ 1 Servlet Nedir? Web sayfaları ilk başlarda durağan bir yapıya sahipti ve kullanıcıdan bilgi alarak işlemler yapmıyordu. Zamanın geçmesiyle kullanıcıya

Detaylı

1. Bölüm Java da Nesne Kalıcılığının Temelleri

1. Bölüm Java da Nesne Kalıcılığının Temelleri 1. Bölüm Java da Nesne Kalıcılığının Temelleri www.jpabook.com 1 1. Bölüm Java da Nesne Kalıcılığının Temelleri 1. Bölüm Java da Nesne Kalıcılığının Temelleri... 1 1.1. Giriş... 2 1.2. Nesne Kalıcılığı

Detaylı

JBoss Seam Next Generation Integration Framework

JBoss Seam Next Generation Integration Framework JBoss Seam Next Generation Integration Framework Melih Sakarya www.melihsakarya.com melih.sakarya@gmail.com www.mergecons.com Seam Framework JSF JPA Hibernate EJB 3.0 Ajax RichFaces A4J Drools itext PDF

Detaylı

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/ Ana Main Kodları /*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/ package javaapplication1; public class JavaApplication1 public static void

Detaylı

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) BBS-515 Nesneye Yönelik Programlama Ders #9 (16 Aralık 2009) Geçen ders: Java Applet lerde bileşen yerleştirme türleri ( applet layouts

Detaylı

public static int Toplam int x, int y

public static int Toplam int x, int y static Kavramı 1 İçinde bulunduğu sınıftan nesne oluşturulmadan veya hiç bir nesneye referans olmadan kullanılabilen üyeler static olarak nitelendirilir. Metotlar ve alanlar static olarak tanımlanabilir.

Detaylı

https://twitter.com/farukbozan 19 Şubat 2016 Cuma

https://twitter.com/farukbozan 19 Şubat 2016 Cuma Bugünkü yazımda çok basit ve temel anlamda Spring ile XML tanım tabanlı bean okuma işlemini anlatmaya çalışacağım. Spring framework bizim yerimize nesnelerin birbirine olan bağımlılıklarını düzenleyip,

Detaylı

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. 1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. [10 puan] int param = 30; int result = 300; if (param > 45) result

Detaylı

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır. Ders İçeriği An introduction to Object-oriented programming with Java Third Edition Update Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır. Nesneye Yönelik Öğr.

Detaylı

Ders 8 Konu Özeti ve Problemler

Ders 8 Konu Özeti ve Problemler Ders 8 Konu Özeti ve Problemler C# ve Nesne Yönelimli Programlamanın 3 Prensibi Kapsülleme (Encapsulation) Nesne yönelimli programlamanın ilk prensibi kapsülleme (encapsulation) olarak adlandırılır. Bu

Detaylı

İnternet Programcılığı

İnternet Programcılığı 1 PHP le Ver tabanı İşlemler Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz. 1.1 Veritabanı Nedir? Veritabanı

Detaylı

Java Dersi. Altuğ Bilgin Altıntaş

Java Dersi. Altuğ Bilgin Altıntaş Java Dersi Altuğ Bilgin Altıntaş Bu Dönem Hakkında Corba Servlet RMI Temel Kısım EJB JSP XML 2 JDBC JNI Çalışma Evreleri 6 Çalışma Evreleri 7 Java dosyasının hali 7 İlk Java uygulaması 7 Ciddi bir uygulama

Detaylı

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1 Görsel Programlama DERS 02 Görsel Programlama - Ders02/ 1 Kodun Tekrar Kullanımı ve Kalıtım(Inheritance) Nesneye yönelik programlamanın diğer programlama paradigmalarına karşı bir avantajı kodun yeniden

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama Oluşturma(Build) Aracı Üst Düzey Programlama-ders05/ 1 ANT Oluşturma(Build) Aracı Ant, Apache firması tarafından geliştirilen açık kaynaklı bir oluşturma(build) aracıdır. Java dili

Detaylı

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi 5.HAFTA Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi Sınıf Kavramı: Sınıf (class) soyut bir veri tipidir. Nesne (object) onun somutlaşan bir cismidir. Java da sınıf (class) kavramını

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama Yazılımda Günlükleme (Logging) Üst Düzey Programlama-ders07/ 1 Günlükleme -Logging Tüm büyük çaplı uygulamalarda günlükleme(logging) ihtiyaçları bulunmaktadır. Bir uygulamanın hata

Detaylı

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır. SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır. Bu dersimizde biz Microsoft SQL Server veritabanı sistemini kullanmayı öğreneceğiz. SQL Nedir? SQL Structured Query Language

Detaylı

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web Sayfası: http://ceng.anadolu.edu.tr/ders.aspx?dersid=101

Detaylı

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM 2014) //Class (Sınıf) // Sınıf (class) soyut veri tipidir. // Nesne (object) sınıfın somutlaşan bir cismidir. // static : nesnesi oluşturulmaz.

Detaylı

MOBİL UYGULAMA GELİŞTİRME

MOBİL UYGULAMA GELİŞTİRME MOBİL UYGULAMA GELİŞTİRME Hedefler Bu üniteyi çalıştıktan sonra; Android projesi oluşturabilir, Android projesini çalıştırabilir, Android projesi genel yapısını açıklayabilir, Activity kavramını açıklayabilir,

Detaylı

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız. Bu Derste Öğrenecekleriniz: 1- Birden Fazla Tablodan Sorgulama 2- Tablo Birleştirme işlemleri (JOIN) a. INNER JOIN b. OUTER JOIN i. LEFT OUTER JOIN ii. RIGHT OUTER JOIN iii. FULL OUTER JOIN 3- Tablo Ekleme

Detaylı

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat 1. Kısım Çoktan Seçmeli (48 puan) 1) Aşağıdaki JAVA kod parçası çalıştırıldığında

Detaylı

BİLİŞİM TEKNOLOJİLERİ

BİLİŞİM TEKNOLOJİLERİ T.C. MİLLÎ EĞİTİM BAKANLIĞI BİLİŞİM TEKNOLOJİLERİ VERİ TABANI YÖNETİMSEL FONKSİYONLARI Ankara, 2013 Bu modül, mesleki ve teknik eğitim okul/kurumlarında uygulanan Çerçeve Öğretim Programlarında yer alan

Detaylı

Bölüm 10: PHP ile Veritabanı Uygulamaları

Bölüm 10: PHP ile Veritabanı Uygulamaları Bölüm 10: PHP ile Veritabanı Uygulamaları -231- Öğr.Gör. Serkan DİŞLİTAŞ 10.1. PHP PHP, platformdan bağımsız sunucu taraflı çalışan betik bir web programlama dilidir. PHP programlama dili ile MySQL, MSSQL,

Detaylı

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım. DAO İLE SQL KOMUTLARI Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım. SQL-1 SELECT En basit SQL cümleciği oluşturmak için SELECT sözcüğü

Detaylı

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance Önemli noktalar Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance public class Test { // çalışır İnsan insan = new Çiçekçi();

Detaylı

Java EE 5 Teknolojileri Jboss Seam

Java EE 5 Teknolojileri Jboss Seam Java EE 5 Teknolojileri Jboss Seam Hakan Uygun İçerik Kurumsal Uygulama Nedir? Java Teknolojileri Web Uygulaması Java EE Bileşenleri JBoss Seam Yazılım İhtiyaçları Bireysel Kullanıcı Eğitim Eğlence İletişim

Detaylı

Spring Framework Eğitimi

Spring Framework Eğitimi Hazırlayan: Barış Dere @BarisDere baris.dere@gmail.com Spring Framework Eğitimi Ders 2: Http://www.youtube.com/barisdere Ders içeriği Spring IoC container tanıtımı Spring IoC container çalışma şekli Metadata

Detaylı

Klavyeden Basit Giriş/Çıkış İşlemleri

Klavyeden Basit Giriş/Çıkış İşlemleri Klavyeden Basit Giriş/Çıkış İşlemleri Klavyeden veri girilmesi, girilen verilere çeşitli işlemler uygulandıktan sonra ekrana yazdırılması ya da herhangi bir yazıcıdan çıktı alınması gibi işlemlerdir. Javada

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama JSP Üst Düzey Programlama-ders04/ 1 JSP JSP durağan HTML ile dinamik oluşturulan içeriği birleştirmeyi sağlar. Bir web sayfası tasarlama programı ile web sayfasını tasarlar daha sonra

Detaylı

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır. Bölüm 20 20 Arayüzler Arayüz bir sınıf değildir. Arayüz yazmak sınf yazmaya çok benzer ancak ikisi birbirinden farklı konseptlerdir. Sınıf bir nesnenin özelliklerini ve davranışlarını belirtirken; bir

Detaylı

Veri Tabanı-I 5.Hafta

Veri Tabanı-I 5.Hafta Veri Tabanı-I 5.Hafta DataBase Oluşturma 1 DATABASE Kolon,özellik,alanColumn,attributes,fields) Sunucu Tablo numarası adı soyadı 0913109001 Ali Can 0913109002 Nuri Koç Database 0913109003 Fatma Kara Satır,Kayıt

Detaylı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave

Detaylı

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız. Bu Derste Öğrenecekleriniz: 1- Basit Sorgulamalar a. Tablodan tüm alanları sorgulama b. Tablodan alanları belirterek sorgulama c. Tekrarlı satırları önleme d. Belirli sayıda veya oranda sorgulama yapma

Detaylı

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra

Detaylı

Rahman USTA Editör Altuğ B. ALTINTAŞ Papatya Yayıncılık Eğitim

Rahman USTA Editör Altuğ B. ALTINTAŞ Papatya Yayıncılık Eğitim JAVA Mimarisiyle Kurumsal Çözümler Kurumsal JAVA Rahman USTA Editör Altuğ B. ALTINTAŞ Papatya Yayıncılık Eğitim İstanbul, Ankara, İzmir, Adana PAPATYA YAYINCILIK EĞİTİM Ekim 2012 Bilgisayar Sis. San. ve

Detaylı

http://www.microsoft.com/visualstudio/eng/downloads

http://www.microsoft.com/visualstudio/eng/downloads Visual Studio 2012'nin kurulumunu, Visual Studio'nun kullanımını ve Windows Store'da basit bir proje hazırlanmasını anlatacağım. Hepsinden önce Visual Studio ortamından biraz bahsedelim. Visual Studio

Detaylı

// hataları işaret eden referans

// hataları işaret eden referans System sınıfı java.lang.object java.lang.system public final class System extends Object System sınıfı, java.lang paketi içindedir. Platformdan bağımsız olarak sistem düzeyindeki eylemleri belirleyen dingin

Detaylı

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals The European Union s Making the Labour Market more Inclusive III programme For North Cyprus Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals Module

Detaylı

DESTEK DOKÜMANI. Ürün : Tiger Enterprise/ Tiger Plus/ Go Plus/Go Bölüm : Kurulum İşlemleri

DESTEK DOKÜMANI. Ürün : Tiger Enterprise/ Tiger Plus/ Go Plus/Go Bölüm : Kurulum İşlemleri LOGO PROGRAM KURULUMU VE AYARLARI Logo programlarının yüklemesi için kullanılacak,setup dosyaları ftp://download.logo.com.tr/ adresinden indirilerek yapılır. Örneğin Kobi ürünleri için; ftp://download.logo.com.tr/windows/kobi/guncel/go_plus/klasöründen

Detaylı

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ Tahsin Barış AKAN Bitirme Projesi 05.06.2006 Giriş Ticari yazılımlarda ortak ihtiyaçlar Birden

Detaylı

JSON Korsanlığı. Mesut Timur, Şubat 2010, WGT E-Dergi 4. Sayı

JSON Korsanlığı. Mesut Timur, Şubat 2010, WGT E-Dergi 4. Sayı JSON Korsanlığı Mesut Timur, Şubat 2010, WGT E-Dergi 4. Sayı İnternetin gün geçtikçe hayatımızdaki önemi arttı ve web siteleri milyonlarca insan tarafından girilen yerler haline geldi. Artık çevremizden

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 4 Nesneye Yönelik Programlamaya Giriş Bu

Detaylı

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1 Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte

Detaylı

Spring Giriş Eğitimi

Spring Giriş Eğitimi Spring Giriş Eğitimi Bu eğitimde Spring ın hangi problemlere karşı etkili olduğundan bahsedeceğim. Ayrıca çekirdek Spring teknolojisinin nasıl işlediği; Dependency Injection - DI ve Inversion of Contol

Detaylı

Microsoft SQL Server 2008 Oracle Mysql (Ücretsiz) (Uygulamalarımızda bunu kullanacağız) Access

Microsoft SQL Server 2008 Oracle Mysql (Ücretsiz) (Uygulamalarımızda bunu kullanacağız) Access Programlamaya Giriş VERİ TABANI UYGULAMASI ÖN BİLGİ Veritabanları, verilere sistematik bir şekilde erişilebilmesine, depolanmasına ve güncellenmesine izin veren, yüksek boyutlu veriler için çeşitli optimizasyon

Detaylı

PostgreSQL ve PL/pgSQL

PostgreSQL ve PL/pgSQL PostgreSQL ve PL/pgSQL Adnan DURSUN Uygulama tasarım ve geliştiricisi @ : adnandursun.at.asrinbilisim.com.tr : +AdnanDURSUN Sunum Akışı PL/pgSQL nedir PL/pgSQL neden kullanmalıyız PL/pgSQL in yapısı Saklı

Detaylı

UZAKTAN EĞİTİM MERKEZİ

UZAKTAN EĞİTİM MERKEZİ ÜNİTE 2 VERİ TABANI İÇİNDEKİLER Veri Tabanı Veri Tabanı İle İlgili Temel Kavramlar Tablo Alan Sorgu Veri Tabanı Yapısı BAYBURT ÜNİVERSİTESİ UZAKTAN EĞİTİM MERKEZİ BİLGİSAYAR II HEDEFLER Veri tabanı kavramını

Detaylı

13 Aralık 2007. Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz

13 Aralık 2007. Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz 13 Aralık 2007 Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL Đlgili Modül/ler : Raporlar KULLANICI TANIMLI RAPORLAR Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz Kendi isteklerinize özel rapor tasarımları

Detaylı

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir. T-SQL KODLARİ İÇERİSİNE AÇIKLAMA EKLEME Bir veya daha fazla satırın çalıştırılmasını Önlemek için veya /*... */" ifadeleri kullanılır. -- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak

Detaylı

MVC Kul anıcı Doğrulama ve Yetkilendirme MVC Filtreler Action Filter FilterAttribute IActionFilter FilterAttribute IActionFilter

MVC Kul anıcı Doğrulama ve Yetkilendirme MVC Filtreler Action Filter FilterAttribute IActionFilter FilterAttribute  IActionFilter MVC Kullanıcı Doğrulama ve Yetkilendirme MVC projesinde kullanıcıların oturum açmasının sağlanması ve sadece yetkili oldukları action metotlara erişebilmelerini anlatan bir örnek uygulama gerçekleştirilecektir.

Detaylı

Oracle da kullanılan veri tipleri:

Oracle da kullanılan veri tipleri: ORACLE A GİRİŞ Oracle ile SQL Server ı karşılaştıralım, 1 Oracle da veritabanı yerine kullanıcı oluşturulur. Kullanıcılar veritabanı gibi davranır. 2 Tablo oluşturma, yapısını değiştirme, silme kodları

Detaylı

Erişim konusunda iki taraf vardır:

Erişim konusunda iki taraf vardır: Erişim Erişim konusunda iki taraf vardır: Kütüphaneyi kullanan kişiler (client) Kütüphaneyi yazan kişiler Paket (package) Paketler kütüphaneyi oluşturan elemanlardır. PaketKullanim.java Varsayılan Paket

Detaylı

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü: Bölüm 24 Java Ağ Uygulamaları 24.1 Java Appletleri Applet, Web tarayıcısında çalışan bir Java programıdır. Bir applet, Java uygulaması için tamamen fonskiyonel olabilir çünkü bütün Java API ye sahiptir.

Detaylı

Kaynak Kod Güvenliği Bir Güvensiz API Örneği

Kaynak Kod Güvenliği Bir Güvensiz API Örneği Kaynak Kod Güvenliği Bir Güvensiz API Örneği Bedirhan Urgun, Ağustos 2010, WGT E-Dergi 6. Sayı Bu yazıda Tomcat J2EE kısmi uygulama sunucusunda bulunan bir güvenlik açığına, güvenlik probleminin kaynağına

Detaylı

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN PAKET (PACKAGE) Paketler kütüphaneleri oluşturan elemanlardır. import java.io.bufferedreader;

Detaylı

İNTERNET PROGRAMCILIĞI 2 10. HAFTA MYSQL - PHPMYADMIN. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Mysql Nedir.

İNTERNET PROGRAMCILIĞI 2 10. HAFTA MYSQL - PHPMYADMIN. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Mysql Nedir. İNTERNET PROGRAMCILIĞI 2 10. HAFTA İçindekiler MYSQL - PHPMYADMIN Mysql Nedir PhpMyAdmin Nedir PhpMyAdmin Arayüzü Hedefler Mysql' in görevini söyleyebilir PhpMyAdmin' in kullanım amacını söyler Hazırlayan

Detaylı

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

VERĐTABANI YÖNETĐM SĐSTEMLERĐ VERĐTABANI YÖNETĐM SĐSTEMLERĐ Öğr.Gör.Sedat Telçeken ANADOLU ÜNĐVERSĐTESĐ FEN FAKÜLTESĐ MATEMATĐK BÖLÜMÜ 2005 2006 Bahar Dönemi D M L Bilindiği üzere SQL tablolar üzerinde sorgulama yapar. Bu sorgular

Detaylı

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1 Bölüm 11 Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1 11. Bölüm konuları Soyutlama kavramı Veri soyutlamasına giriş Soyut veri tipleri için tasarım konuları Dil örnekleri Parametreli

Detaylı

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1 Paket Erişimleri Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1 Erişim Erişim konusunda iki taraf vardır: Kütüphaneyi kullanan kişiler (client) Kütüphaneyi yazan kişiler Altuğ B. Altıntaş

Detaylı

1 Temel Kavramlar. Veritabanı 1

1 Temel Kavramlar. Veritabanı 1 1 Temel Kavramlar Veritabanı 1 Veri Saklama Gerekliliği Bilgisayarların ilk bulunduğu yıllardan itibaren veri saklama tüm kurum ve kuruluşlarda kullanılmaktadır. Veri saklamada kullanılan yöntemler; Geleneksel

Detaylı

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language) Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language) Konular Yapısal SQL Komutları Gruplama İşlemi SQL Fonksiyonları Kaynaklar 2 SQL (Structured Query Language) SQL Carlos

Detaylı

Android ile SQLLite Veri Tabanı

Android ile SQLLite Veri Tabanı Android ile SQLLite Veri Tabanı Android de verileri SQLLite veritabanında tutmak için: Adım-1) File-New Project buradan projeye bir isim verelim ( örneğin: AndroidSQLite), Next ile bir sonraki adımda API

Detaylı

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon ORACLE GİRİŞ Oracle ile SQL Server ın karşılaştıralım. 1 Oracleda veritabanı yerine kullanıcı oluşturulur. Kullanıcılar veritabanı gibi davranır. 2 Tablo oluşturma, değiştirme ve silme kodları aynı. 3

Detaylı

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1 Görsel Programlama DERS 01 Görsel Programlama - Ders01/ 1 Takdim Planı Nesneye Dayalı Programlama Kavramı Nesne, Sınıf Kavramı Java Programlama Dili Java Programlama Dili Temel Özellikleri Java Sürümleri

Detaylı

Oluşturmak istediğimiz OU ye bir isim veriyoruz. Name kısmına ISTANBUL yazıyoruz,

Oluşturmak istediğimiz OU ye bir isim veriyoruz. Name kısmına ISTANBUL yazıyoruz, ORGANİZATİONAL UNİT (OU) OrganizationUnit(OU): Türkçe Yapısal Birim olarak adlandırılan ve merkezi yönetimimizi kolaylaştıran bir objedir. Organizational Unit domain içerisindeki kullanıcı, group ve bilgisayarları

Detaylı

VERİ TABANI YÖNETİM SİSTEMLERİ I

VERİ TABANI YÖNETİM SİSTEMLERİ I BÖLÜM 12 12. SQL de YÖNETİMSEL FONKSİYONLAR 12.1. VIEWS ( Tablo Görünümü) Tablo görünümleri veri tabanında tanımı olan tablolardan sorgulama sonucunda elde edilir. Tabloların tersine fiziksel bir yer tutmazlar.

Detaylı

SORGULAR. Öğr.Gör.Volkan Altıntaş

SORGULAR. Öğr.Gör.Volkan Altıntaş SORGULAR Öğr.Gör.Volkan Altıntaş SORGULAR VE ÇEŞİTLERİ Seçme Sorguları: En sık kullanılan sorgu türüdür. Seçme sorguları, bilgileri veri sayfası görünümü nde gösteren veri tabanı nesnesi türüdür. Sorgu,

Detaylı

ASP.NET 1. DURUM YÖNETİMİ. BLM 318 e-ticaret ve Uyg. Durum Yönetimi Nedir? Durum Yönetimi: Karșılaștırma İÇERİK. Sunucu-taraflı Durum Yönetimi

ASP.NET 1. DURUM YÖNETİMİ. BLM 318 e-ticaret ve Uyg. Durum Yönetimi Nedir? Durum Yönetimi: Karșılaștırma İÇERİK. Sunucu-taraflı Durum Yönetimi Nedir? olmadan Login.aspx Bilgilerinizi giriniz Durum Yönetimi İle Login.aspx Bilgilerinizi giriniz Adınız Adınız Pınar Pınar Soyadınız Soyadınız Onay Durdu Onay Durdu Gönder Gönder ASP.NET - 1 sayfa.aspx

Detaylı

İsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1

İsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1 İsimler ve Kapsam Tanım: Bir değişkenin kapsamı (scope) değişkenin görülebilir olduğu komutların alanıdır. Görülebilir olduğu alan, bir komut içinde belirlenen değerle kullanılabildiği alandır. Tanım:

Detaylı

PAKET TRANSFER SİSTEMİ

PAKET TRANSFER SİSTEMİ İLAÇ TAKİP SİSTEMİ ŞUBE MÜDÜRLÜĞÜ PAKET TRANSFER SİSTEMİ Kullanıcı Dökümanı Version 1.1 1 1. Revizyonlar... 1 2. Giriş... 1 2.1 Kapsam...1 2.2 Hedef Kitle...1 3. Gereksinimler... 1 3.1 Yazılım Gereksinimleri...1

Detaylı

Java Programlama Giriş

Java Programlama Giriş Java Programlama Giriş 2013-2014 Bahar Dönemi Mehmet Akif Ersoy Üniversitesi Teknik Bilimler Meslek Yüksekokulu Burdur 2014 Muhammer İLKUÇAR 1 Neden Java Programlama Platformdan bağımsızdır

Detaylı

1. Oracle Data Miner 11g Release 2 Kurulumu Aşamaları

1. Oracle Data Miner 11g Release 2 Kurulumu Aşamaları 1. Oracle Data Miner 11g Release 2 Kurulumu Aşamaları Uyarı 1: Kuruluma başlamadan önce Oracle 11g Release 2 veritabanı kurulumunu eksiksiz bir şekilde gerçekleştirmiş olmanız beklenmektedir. İlgili kurulum

Detaylı

2-Veritabanı Yönetim Sistemleri/ Temel Kavramlar

2-Veritabanı Yönetim Sistemleri/ Temel Kavramlar 2-Veritabanı Yönetim Sistemleri/ Temel Kavramlar Öğr. Gör. Saliha Kevser KAVUNCU Veritabanı neden kullanılır? Veritabanının amacı; insanların ve organizasyonların birşeyleri takip edebilmesine yardımcı

Detaylı

Mikro Ayarları. Mikro Programının kurulu olduğu veritabanı ve web servisi için bağlantı ayarlarının yapıldığı menüdür.

Mikro Ayarları. Mikro Programının kurulu olduğu veritabanı ve web servisi için bağlantı ayarlarının yapıldığı menüdür. Mikro Ayarları Mikro muhasebe sistemini kullanan müşterilemizin, muhasebe sistemleri ile E Ticaret sitesi arasındaki entegrasyon parametrelerini tanımladıkları menüdür. Bu menü altındaki alt menüler kullanılarak

Detaylı

Aktarımı Çalıştırmak/Geri Almak 146 Alan Seçenekleri 148 Veri Tabanı Şeması 150 Veri Tabanı ile İlgili Bazı Rake Görevleri 162 Modeller 164

Aktarımı Çalıştırmak/Geri Almak 146 Alan Seçenekleri 148 Veri Tabanı Şeması 150 Veri Tabanı ile İlgili Bazı Rake Görevleri 162 Modeller 164 xi Ruby on Rails Nedir? 2 Rails Neden Farklıdır? 2 Başlamadan Önce Bilinmesi Gerekenler 4 İnternet Nasıl Çalışır? 4 İstemci-Web Sunucu İlişkisi 5 HTTP Protokolü 6 URL-Kaynak Konumlandırma Adresleri 7 HTTP

Detaylı

PORT HABERLEŞME SERİ PORT FARUK BOZAN

PORT HABERLEŞME SERİ PORT FARUK BOZAN PORT HABERLEŞME SERİ PORT FARUK BOZAN farukbozan@javatiryakileri.com bozanfaruk@gmail.com Merhaba değerli Java dostları. Bu yazımızda port haberleşme konusuna değineceğiz. Yalnız şu noktaya dikkatinizi

Detaylı

3. Hafta Tablo İşlemleri BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri. 1.2. Kısıtlamalar (Constraints)

3. Hafta Tablo İşlemleri BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri. 1.2. Kısıtlamalar (Constraints) Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri 1.1. Tablo Oluşturma 1.2. Tablo Oluşturmada Kısıtlamalar Constraints 1.3. Tablo Silme a. NULL, NOT NULL b. PRIMARY KEY c. UNIQUE d. FOREIGN KEY e. CHECK f.

Detaylı

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58; BTEP212 Java DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI Lab7 bazen bir metodun içinde o metodun ait olduğu sınıftan yaratılacak nesneyi veya o nesnenin bir alt

Detaylı

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ Asp.NET mimarisinin temelini oluşturan CLASS yapısını kullanarak veri tabanı işlemlerini nasıl daha az kodla ve daha stabil yapabiliriz bunu göreceğiz. Mevzu

Detaylı

1. Excel Dönüşümü : 2. Rapor Master Tanımları :

1. Excel Dönüşümü : 2. Rapor Master Tanımları : Programın Amacı : Bu Program As/400 Sistemindeki herhangi bir veya birden fazla file ı kullanarak istenilen şekilde sorgulama yaparak elde edilen bilgileri Excel Formatında Pc deki istenilen bir yere kaydetmek.

Detaylı

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1 5 SQL- Yapısal Sorgulama Dili Veritabanı 1 SQL- Yapısal Sorgulama Dili SQL ifadeleri yapısal olarak üç gruba ayrılır. Veri Tanımlama Dili (DDL - Data Definition Language) Veri İşleme Dili (DML - Data Manipulation

Detaylı

Elektra Raporlama Sistemi Sunumu

Elektra Raporlama Sistemi Sunumu Elektra Raporlama Sistemi Sunumu Raporlama Araçları Açıklamaları: 1-Seçilen nesneyi raporlar. 2-Yeni boş bir rapor eklemeyi sağlar. 3-Seçilen raporları düzenlemeyi sağlar. 4-Seçilen raporu siler. 5-Seçilen

Detaylı

ÖZGÜR YAZILIMLAR İLE J2EE

ÖZGÜR YAZILIMLAR İLE J2EE ÖZGÜR YAZILIMLAR İLE J2EE Buğra Çakır bugra@ibrahimcakir.com Seminer İçeriği 1. İki ve üç katmanlı yazılım mimarileri 2. Java ve J2EE platformu 3. Özgür yazılımlar ile J2EE 4. Eclipse, Lomboz ve JBoss

Detaylı

WWW.OZTEKHABERLESME.COM

WWW.OZTEKHABERLESME.COM ÖZTEK HABERLEŞME APİ DÖKÜMANI WWW.OZTEKHABERLESME.COM VER:6.1.0 ~ 1 ~ İÇİNDEKİLER BİLMENİZ GEREKENLER... 3 HTTP POST (XML) YÖNTEMİ... 4 TANIMLAR... 4 ÖRNEK XML YAPISI... 4 PHP ÖRNEK KOD... 5 Örnek Sayfayı

Detaylı

Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız? İÇİNDEKİLER VII İÇİNDEKİLER 1 GİRİŞ 1 Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız? 4 Kaynak Kodu 5 2 MERHABA DÜNYA 7 Android Nedir?

Detaylı

1 GİRİŞ 1 Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

1 GİRİŞ 1 Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız? İÇİNDEKİLER V İÇİNDEKİLER 1 GİRİŞ 1 Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız? 4 Kaynak Kodu 4 2 MERHABA DÜNYA 7 Android Nedir?

Detaylı

Proje 1. Arayüz Tasarımı

Proje 1. Arayüz Tasarımı Proje 1. Arayüz Tasarımı 1. Yeni bir android projesi oluşturalım. Proje ismi: ArayuzTasarimi ve aktivity adı: ArayuzTasarimi olarak yazalım. 2. Projejiyi oluşturduktan sonra bize hazır olarak gelen dosyalar:

Detaylı

Veri Tabanı-I 1.Hafta

Veri Tabanı-I 1.Hafta Veri Tabanı-I 1.Hafta 2010-2011 Bahar Dönemi Mehmet Akif Ersoy Üniversitesi Meslek Yüksekokulu Burdur 2011 Muhammer İLKUÇAR 1 Veri ve Veri Tabanı Nedir? Veri Bir anlamı olan ve kaydedilebilen

Detaylı

JAVA API v2.0 Belge sürümü: 2.0.2

JAVA API v2.0 Belge sürümü: 2.0.2 JAVA API v2.0 Belge sürümü: 2.0.2 1. İçindekiler 1. İÇİNDEKİLER... 2 2. BU BELGENİN AMACI... 3 3. BELGE SÜRÜMLERİ... 3 4. SİSTEM GEREKSİNİMLERİ... 3 5. KULLANIM ŞEKLİ... 4 5.1. GENEL... 4 5.2. UYARILAR...

Detaylı