bu yazımda sizlere hibernate ile veritabanı üzerinde CRUD(kayıt oluşturma ,silme , güncelleme , listeleme) nasıl yapıldığını göstereceğim.
Aşağıda dikkat etmeniz gereken noktaların açıklamalarını yazacağım ve yazının sonunda da projenin kaynak kodlarını yine sizlerle paylaşıyor olacağım.
1 -) java application projesi oluşturun. Dizin yapısının alışılagelmiş biçimde olması için ben spring application projesi oluşturdum. Normalde bu yazının spring ile bir bağlantısı yoktur.
proje yapısı aşağıdaki gibi olacaktır:
2 -) Pom.xml 'e hibernate ve mysql bağımlılığını tanımlayın. Ayrıca hibernate in bağımlılıklarından biri de log4j dir.
<!--MySQL database driver-->
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.9</version> </dependency> |
<!--Hibernate -->
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>3.6.3.Final</version> </dependency> <dependency> <groupId>javassist</groupId> <artifactId>javassist</artifactId> <version>3.12.1.GA</version> </dependency> |
<!-- slf4j-log4j -->
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.6.1</version> </dependency> |
3 -) hibernate.cfg.xml ile hibernate erişim ayarlarını yapın. Hangi veri tabanına bağlanacağını , hangi entity ile işlem yapacağını , kullanıcı adını , şifresini ve veri tabanı türünü belirtin.
<hibernate-configuration>
<session-factory> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost/test_spring</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">12345678</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="show_sql">true</property> <mapping class="com.company.entities.Person" ></mapping> </session-factory> </hibernate-configuration> |
4 -) HibernateUtil.java dosyasında bir static session oluşturalım. Hibernate bilgileri session üzerinde güncelleyerek veri tabanıyla eşleştirir.
public class HibernateUtil {
private static final SessionFactory SESSION_FACTORY = new Configuration().configure().buildSessionFactory();
public static SessionFactory getSession(){
return SESSION_FACTORY;
}
public static void closeSession(){
getSession().close();
}
}
|
5 -) Create(oluşturma) İşlemi
Session session = HibernateUtil.getSession().openSession();
// CREATE session.beginTransaction(); Person person = new Person(); person.setCreatedate(new Date()); person.setAge(33); person.setName("ali"); person.setLastname("veli"); session.save(person); session.getTransaction().commit(); |
SQL:
CREATE TABLE `persons` (
`id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `lastname` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, `createdate` date NOT NULL, PRIMARY KEY (`id`) ) |
kaynak dosyalar(github) : indirmek için tıklayın
İyi günler maven+jsf için bu durum nasıl olacak tabloların @entity ile oluşmasını istiyorum anlatabilir misiniz?
YanıtlaSilMerhaba, anlatırım tabiki. Ancak bu aralar biraz yoğunum ilk fırsatta bir örnekle birlikte paylaşacağım.
Sil