Twitter Youtube Github
Burak Kutbay'ın Kişisel Blog'u |

Type and hit Enter to search

  • Eğitim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • Spring Core
  • Spring Örnekleri
  • Hibernate
  • Java Server Pages
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • Java 8
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
Quarkus

Quarkus Hibernate Panache Nedir? Uygulama Örneği

Paylaş

Quarkus Dersleri‘ne devam ediyorum. Bu yazıda Quarkus’un Hibernate ORM implementasyonu olan Quarkus Panache ‘yi inceleyerek Quarkus Panache uygulaması yapacağım.

İçindekiler

  • Quarkus Panache Nedir?
  • Quarkus Panache Uygulama Yöntemleri
  • Quarkus Panache Uygulama Örneği

Quarkus Panache Nedir?


Quarkus Panache, SQL ve NOSQL veritabanları için, Quarkus 1.5.0’dan itibaren (3 Haziran 2020) CRUD (Create, Read, Update, Delete) işlemlerini REST Endpointler yardımı ile yazılımcının yazması gereken kodu minimumda azaltmaktadır. Öne çıkan özellilerinden biri de “Active Record Pattern” desteklemesidir.

Quarkus Panache Uygulama Yöntemleri


  • PanacheEntity

Modelimiz ile birlikte ORM islemlerinin gerceklestirildigi bir modelde olusturudugumuz sınıf. (Active Record Yöntem)

  • PanancheRepository

Model ile ORM islemlerinin ayrı sınıflar olusturarak kullanıldıgı bir yapı. (Repository Yöntemi).

yöntemlerinden bir tanesini kullanarak geliştirme yapabiliriz.

Quarkus Panache Uygulama Örneği


Quarkus Panache tebrübe etmek için Öğrenci bilgilerilerini tutan bir modelimiz ve ona bağlı bir rest servisimiz olacak. Quarkus Panache’yi bu servisimizde kullancağız.

Quarkus Panache veritabanımızın ayarları ve bağlantıları için application.properties dosyamıza tanımlamalarımızı yapalım.

quarkus.datasource.jdbc.url=jdbc:h2:mem:test quarkus.datasource.username=sa quarkus.datasource.password= quarkus.datasource.db-kind=h2 quarkus.hibernate-orm.database.generation=drop-and-create

Modelimizi oluşturalım.

@Entity public class Ogrenci extends PanacheEntity { private String name; private String surname; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSurname() { return surname; } public void setSurname(String surname) { this.surname = surname; } public Ogrenci() { } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Ogrenci(Long id, String name, String surname) { this.id = id; this.name = name; this.surname = surname; } }
Code language: JavaScript (javascript)

Modelimizi PanacheEntity extend ederek entitiy sınıfımıza Quarkus Panache özelliği kazandırmış olduk. Panache Entity sınıfını incelersek Crud işlemlerinin içerisinde barındığını ve bizim işimizi çok kolaylaştırdığını göreceğiz.

Şimdi Quarkus Panache Servis katmanımızı yazalım. Burada Quarkus Panache tarafından sunulan metotları kullanarak bir rest servis katmanı oluşturacağız ve CRUD işlemleri yapacağız.

@Path("ogrenci") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) @ApplicationScoped public class OgrenciService { @POST @Transactional public Response save(Ogrenci ogrenci) { ogrenci.persist(); return Response.ok(ogrenci).status(201).build(); } @GET public List<Ogrenci> get() { return Ogrenci.listAll(); //return Ogrenci.listAll(Sort.by("name")); } @GET @Path("{id}") public Ogrenci getSingle(@PathParam("id") Long id) { Ogrenci ogr = Ogrenci.findById(id); if (ogr == null) { throw new WebApplicationException(id + " bulunamadı", 404); } return ogr; } @PUT @Path("{id}") @Transactional public Ogrenci update(@PathParam("id") Long id, Ogrenci ogrenci) { Ogrenci ogr = Ogrenci.findById(id); ogr.setName(ogrenci.getName()); return ogr; } @DELETE @Path("{id}") @Transactional public Response delete(@PathParam("id") Long id) { Ogrenci ogrdelete = Ogrenci.findById(id); ogrdelete.delete(); return Response.status(200).build(); } }
Code language: PHP (php)

Quarkus Panache kullanarak yaptığımız işlemlerinin ne yaptığına ve özelliklerine bakalım.

  • ogrenci.persist()
    Modelin kayıt işlemini gerçekleştirmektedir.
  • Ogrenci.listAll()
    Ogrenci listesinin tamamını geri döndürmektedir.
  • Ogrenci.listAll(Sort.by(“name”))
    Ogrenci listesinin “name” göre sıralanarak geri döndürmektedir.
  • Ogrenci.findById(id)
    Öğrenci ıd’sine göre ogrenci modelini getirir.
  • ogrdelete.delete();
    Ogrenci modelini siler

Buradaki metotların hepsi Öğrenci modeline bağlıdır ve Öğrenci modelinde operasyonel işlemler bulunduğu içi yani Aktif Kayıf özelliği olduğu için aynı modelin sınıfını kullanarak CRUD operasyonlarını Quarkus Panache ile yapabiliyoruz.

Sonraki Quarkus Dersleri’nde görüşmek üzere.


Projenin Kaynak Kodlarına Ulaş


Önceki Ders: Uygulama Native Derleme
Quarkus Dersleri
Sonraki Ders: Dependency Injection

Tags:

panache nedirQuarkus DersQuarkus Dersleriquarkus hibernate panacheQuarkus native uygulamaquarkus örnekquarkus panachequarkus uygulama örneği

Paylaş

Diğer Yazılar

Quarkus Dersleri Uygulama Örnekleri
Previous

Quarkus Dersleri : Uygulama Native Derleme

Quarkus Dersleri Uygulama Örnekleri
Next

Quarkus Dependency Injection

Next
Quarkus Dersleri Uygulama Örnekleri
10 Ocak 2021

Quarkus Dependency Injection

Previews
29 Aralık 2020

Quarkus Dersleri : Uygulama Native Derleme

Quarkus Dersleri Uygulama Örnekleri

No Comment! Be the first one.

Bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgini Çekebilir

Quarkus Dersleri Uygulama Örnekleri

Quarkus Nesnelerin Yaşam Döngüsü

Quarkus Dersleri Uygulama Örnekleri

Quarkus Custom Property Kullanmak

Quarkus Dersleri Uygulama Örnekleri

Quarkus Projelerinde Fault Tolerance Kullanmak

Quarkus Dersleri Uygulama Örnekleri

Quarkus Uygulaması Başlatma ve Kapanma Döngüsünü Yakalamak

Burak Kutbay'ın Kişisel Blog'u |

© 2008 - ∞, Her hakkı saklıdır.

Link

  • Hakkımda
  • İletişim
  • Arşiv

Kategori

Cloud
Amazon Web Services
Vue.js
Gradle
Node.js
Android
Struts
Redis
Röportaj
Spring Data
Spring Cloud Stream
XCode
Debezium
Mikroservis Mimarisi
Video
Spring Native
iPhone Uygulama Geliştirme
Objective C
JPA
Spring Security
PostgreSQL
Apache Kafka
Git
Servlet
Yaptığım Projeler
Maven
Design Patterns
DevOps
Linux
RabbitMQ
PrimeFaces
JDBC
Spring Jdbc Template
Spring
Spring MVC
Manset
Google
Spring Cloud
OCA Java SE 8
Spring Core
Quarkus
Microsoft
Veritabanı
Tanıyalım
Java SE
Hibernate
Teknoloji
Okuduğum Kitaplar
Java Server Faces
Yazılım Mühendisliği
C Sharp
Spring Boot
Java
Günlüğüm
Java Server Page
Makale

Takip Et

Twitter Youtube Github
  • Eğitim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • Spring Core
  • Spring Örnekleri
  • Hibernate
  • Java Server Pages
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • Java 8
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale