Skip to content

mel-nur/AdvancedJava-Example5

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hibernate & JPA - Örnek Spring Boot Projesi

Bu proje, Spring Boot ile JPA/Hibernate kullanılarak basit bir CRUD (Create, Read, Update, Delete) örneğini gösterir. Proje City (şehir) varlığını (Entities/City.java) kullanır ve veriye erişim için Hibernate tabanlı HibernateCityDal sınıfını sağlar.

İçerik

  • src/main/java/com/melikenur/project/hibernateAndJpa/HibernateAndJpaApplication.java - Uygulama giriş (main) sınıfı
  • src/main/java/com/melikenur/project/hibernateAndJpa/restApi/CityController.java - REST API controller
  • src/main/java/com/melikenur/project/hibernateAndJpa/Business/ICityService.java - Servis arayüzü
  • src/main/java/com/melikenur/project/hibernateAndJpa/Business/CityManager.java - Servis implementasyonu (business logic)
  • src/main/java/com/melikenur/project/hibernateAndJpa/DataAccess/ICityDal.java - Veri erişim arayüzü
  • src/main/java/com/melikenur/project/hibernateAndJpa/DataAccess/HibernateCityDal.java - Hibernate tabanlı DAL implementasyonu
  • src/main/java/com/melikenur/project/hibernateAndJpa/Entities/City.java - JPA Entity (city tablosu)
  • src/main/resources/application.properties - DB ve JPA yapılandırması

Gereksinimler

  • Java 17
  • MySQL (veya uyumlu bir veritabanı)
  • Maven (projede Maven Wrapper (mvnw.cmd) mevcut)

Veritabanı (MySQL) yapılandırması

application.properties dosyasında şu ayarlar mevcut (örnek):

spring.datasource.url=jdbc:mysql://localhost:3306/world?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false spring.datasource.username=root spring.datasource.password=12345 spring.jpa.hibernate.ddl-auto=update

Notlar:

  • spring.jpa.hibernate.ddl-auto=update ayarı ile Hibernate, entity'lere göre tablo oluşturma/güncelleme yapacaktır. Mevcut DB/tablolarınıza dikkat edin.
  • Projeyi çalıştırmadan önce MySQL'de world veritabanını oluşturun veya application.properties içindeki URL'yi kendi veritabanınıza göre güncelleyin.

IDE (IntelliJ/VS Code) içinde HibernateAndJpaApplication sınıfının main metodunu çalıştırabilirsiniz.

REST Endpoint'leri

Aşağıdaki endpoint'ler CityController tarafından sağlanır (base path: /api):

  • GET /api/cities
    • Tüm şehirleri döndürür.
  • GET /api/cities/{id}
    • Belirtilen id'ye sahip şehri döndürür.
  • POST /api/add
    • Request body içinde City JSON göndererek yeni şehir ekler.
  • POST /api/update
    • Request body içindeki City ile güncelleme yapar.
  • POST /api/delete
    • Request body içindeki City (veya id) ile silme işlemi gerçekleştirir.

Örnek curl (Windows PowerShell değil terminal örneğidir):

# Tüm şehirleri al
curl -s http://localhost:8080/api/cities

# Tek şehir al
curl -s http://localhost:8080/api/cities/1

# Yeni şehir ekle
curl -X POST -H "Content-Type: application/json" -d '{"name":"MyCity","countryCode":"TUR","district":"Istanbul","population":100000}' http://localhost:8080/api/add

(Windows PowerShell'de curl alias'ı farklı olabilir; PowerShell'de Invoke-RestMethod veya curl.exe kullanın.)

Kod Hakkında Kısa Açıklama

  • City entity'si JPA anotasyonları ile city tablosuna eşlenmiştir.
  • HibernateCityDal EntityManager üzerinden Session alıp HQL/Session API ile CRUD işlemlerini yapar.
  • CityManager iş mantığını (servis katmanını) içerir ve ICityDal üzerinden veri erişimini kullanır. Metotlar @Transactional anotasyonu ile transactional bağlamda çalışır.
  • CityController REST uç noktalarını sunar ve servis katmanını çağırır.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages