Bellek içi veritabanı nedir
Bellek içi veritabanı, verilerin depolanması için disk alanının aksine sistem belleğine dayanır. Çünkü belleğe erişim disk erişiminden daha hızlıdır. Verileri kalıcı hale getirmemiz gerekmediğinde bellek içi veritabanını kullanırız. Bellek içi veritabanı gömülü bir veritabanıdır. Bellek içi veritabanları varsayılan olarak geçicidir ve uygulamayı yeniden başlattığımızda depolanan tüm veriler kaybolur.
Yaygın olarak kullanılan bellek içi veritabanları şunlardır: H2, HSQLDB (HyperSQL Veritabanı) , Ve Apaçi Derbisi. Yapılandırmayı otomatik olarak oluşturur.
Kalıcılık ve Bellek İçi Veritabanı Karşılaştırması
Kalıcı veritabanı, verileri fiziksel bellekte tutar. Veritabanı sunucusu geri dönse bile veriler mevcut olacaktır. Bazı popüler kalıcılık veritabanları şunlardır: Oracle, MySQL , Postgres , vesaire.
durumunda bellek içi veritabanı, veri deposundaki Sistem belleği . Program kapatıldığında verileri kaybetti. Bunun için faydalıdır BİRAZ s (Kavram Kanıtı), üretim uygulaması için değil. Yaygın olarak kullanılan bellek içi veritabanı H2.
H2 Veritabanı Nedir?
H2 bir gömülü, açık kaynak, Ve bellekte veri tabanı. ile yazılmış ilişkisel bir veritabanı yönetim sistemidir. Java . Bu bir müşteri sunucusu başvuru. Genellikle kullanılır birim testi . Verileri bellekte saklar, verileri diskte saklamaz.
Avantajları
- Sıfır Yapılandırma
- Kullanımı kolaydır.
- Hafif ve hızlıdır.
- Gerçek bir veritabanı ile bellek içi veritabanı arasında geçiş yapmak için basit Yapılandırma sağlar.
- Standart SQL ve JDBC API'yi destekler.
- Veritabanında saklanacak bir web konsolu sağlar.
H2 Veritabanını Yapılandırma
H2 veritabanını bir uygulamada kullanmak istiyorsak pom.xml dosyasına aşağıdaki bağımlılığı eklememiz gerekir:
lateks kısmi türevi
com.h2database h2 runtime
Bağımlılığı ekledikten sonra yapılandırmamız gerekiyor veri kaynağı URL'si, sürücü sınıfı adı, kullanıcı adı, Ve şifre H2 veritabanı. Spring Boot, bu özellikleri yapılandırmanın kolay bir yolunu sağlar. uygulama.özellikler dosya.
spring.datasource.url=jdbc:h2:mem:testdb spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
İçinde spring.datasource.url mülk, hatıra bellek içi veritabanının adıdır ve testdb H2'nin varsayılan olarak sağladığı şemanın adıdır. Ayrıca kendi şemamızı ve veritabanımızı da tanımlayabiliriz. Varsayılan kullanıcı adı Açık ve boş şifre bir şeyi ifade eder boş şifre. Kullanıcı adı ve şifreyi değiştirmek istiyorsak bu değerleri geçersiz kılabiliriz.
Verileri H2 Veritabanında kalıcı hale getirin
H2 veritabanındaki verileri kalıcı kılmak istiyorsak verileri bir dosyada saklamalıyız. Aynısını başarmak için veri kaynağı URL özelliğini değiştirmemiz gerekiyor.
#persist the data spring.datasource.url=jdbc:h2:file:/data/sampledata spring.datasource.url=jdbc:h2:C:/data/sampledata
Yukarıdaki mülkte, örnek veri bir dosya adıdır.
Şema Oluşturun ve Verileri Doldurun
Bir şema oluşturarak tanımlayabiliriz. SQL dosyadaki kaynak klasör (src/main/resource).
şema.sql
DROP TABLE IF EXISTS CITY; CREATE TABLE CITY ( City_code INT AUTO_INCREMENT PRIMARY KEY, city_name VARCHAR(50) NOT NULL, city_pincode INT(8) NOT NULL );
Bir tablo oluşturarak verileri doldurabiliriz. SQL dosyadaki kaynak klasör (src/main/resource).
veri.sql
INSERT INTO CITY VALUES (11, 'Delhi', 110001); INSERT INTO CITY VALUES (12, 'Kanpur', 208001); INSERT INTO CITY VALUES (13, 'Lucknow', 226001);
Spring Boot otomatik olarak alır veri.sql Dosyayı oluşturun ve uygulama başlatma sırasında H2 veritabanında çalıştırın.
H2 Konsolu
Varsayılan olarak H2 veritabanının konsol görünümü devre dışıdır. H2 veritabanına erişmeden önce aşağıdaki özelliği kullanarak onu etkinleştirmeliyiz.
#enabling the H2 console spring.h2.console.enabled=true
H2 konsolunu etkinleştirdikten sonra artık http://localhost:8080/h2-console URL'sini çağırarak tarayıcıda H2 konsoluna erişebiliriz. Aşağıdaki şekil H2 veritabanının konsol görünümünü göstermektedir.
Yukarıdaki ekran görüntüsünde kendi veritabanımızı tanımladık. javatpoint .
Spring Boot H2 Örneği
H2 veritabanı ile Spring Boot uygulaması kuralım.
Aşama 1: Spring Başlatıcı http://start.spring.io'yu açın.
javascript çok satırlı dize
Adım 2: Spring Boot sürümünü seçin 2.3.0.M1.
Adım 2: Sağlamak Grup isim. Sağladık com.javatpoint.
Aşama 3: Sağlamak eser İD. Sağladık spring-boot-h2-veritabanı örneği.
Adım 5: Bağımlılıkları ekleyin Bahar Webi, Bahar Verileri JPA, Ve H2 Veritabanı.
Adım 6: Tıkla Oluştur düğme. Generate butonuna tıkladığımızda proje bir Kavanoz dosyayı yerel sisteme indirir.
Adım 7: Çıkarmak Jar dosyasını açın ve STS çalışma alanına yapıştırın.
Adım 8: İçe aktarmak proje klasörünü STS'ye aktarın.
Dosya -> İçe Aktar -> Mevcut Maven Projeleri -> Gözat -> Spring-boot-h2-database-example klasörünü seçin -> Son
İthalat biraz zaman alıyor.
Adım 9: Adıyla bir paket oluşturun com.javatpoint.model klasörde src/ana/java.
Adım 10: Pakette bir model sınıfı oluşturun com.javatpoint.model. isimli model sınıfını oluşturduk. Öğrenci. Kitaplar dersinde şunları yaptık:
- Dört değişken tanımlayın kimlik, yaş, isim, Ve
- Alıcılar ve Ayarlayıcılar oluşturun.
Dosyaya sağ tıklayın -> Kaynak -> Alıcılar ve Ayarlayıcılar Oluştur. - Sınıfı şu şekilde işaretle: Varlık ek açıklamayı kullanarak @Varlık.
- Sınıfı şu şekilde işaretle: Masa ek açıklamayı kullanarak ad @Masa.
- Her değişkeni şu şekilde tanımlayın: Kolon ek açıklamayı kullanarak @Kolon.
Öğrenci.java
boş java
package com.javatpoint.model; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; //mark class as an Entity @Entity //defining class name as Table name @Table public class Student { //mark id as primary key @Id //defining id as column name @Column private int id; //defining name as column name @Column private String name; //defining age as column name @Column private int age; //defining email as column name @Column private String email; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
Adım 11: Adıyla bir paket oluşturun com.javatpoint.controller klasörde src/ana/java.
Adım 1/2: Pakette bir Controller sınıfı oluşturun com.javatpoint.controller . ismiyle Controller sınıfını oluşturduk. ÖğrenciKontrolcüsü . ÖğrenciController sınıfında aşağıdakileri yaptık:
- Sınıfı şu şekilde işaretle: Dinlenme Kontrolörü ek açıklamayı kullanarak @RestController.
- Otomatik kablolama Öğrenci Hizmeti ek açıklamayı kullanarak sınıf @Otomatik kablolu .
- Aşağıdaki yöntemleri tanımlayın:
getAllStudent(): Tüm Öğrencilerin Listesini döndürür.
ÖğrenciController.java
package com.javatpoint.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import com.javatpoint.model.Student; import com.javatpoint.service.StudentService; //creating RestController @RestController public class StudentController { //autowired the StudentService class @Autowired StudentService studentService; //creating a get mapping that retrieves all the students detail from the database @GetMapping('/student') private List getAllStudent() { return studentService.getAllStudent(); } //creating a get mapping that retrieves the detail of a specific student @GetMapping('/student/{id}') private Student getStudent(@PathVariable('id') int id) { return studentService.getStudentById(id); } //creating a delete mapping that deletes a specific student @DeleteMapping('/student/{id}') private void deleteStudent(@PathVariable('id') int id) { studentService.delete(id); } //creating post mapping that post the student detail in the database @PostMapping('/student') private int saveStudent(@RequestBody Student student) { studentService.saveOrUpdate(student); return student.getId(); } }
Adım 13: Adıyla bir paket oluşturun com.javatpoint.service klasörde src/ana/java.
Adım 14: Oluşturmak Hizmet sınıf. adında bir hizmet sınıfı oluşturduk. Öğrenci Hizmeti paketin içinde com.javatpoint.service.
ÖğrenciServisi.java
package com.javatpoint.service; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.javatpoint.model.Student; import com.javatpoint.repository.StudentRepository; @Service public class StudentService { @Autowired StudentRepository studentRepository; //getting all student records public List getAllStudent() { List students = new ArrayList(); studentRepository.findAll().forEach(student -> students.add(student)); return students; } //getting a specific record public Student getStudentById(int id) { return studentRepository.findById(id).get(); } public void saveOrUpdate(Student student) { studentRepository.save(student); } //deleting a specific record public void delete(int id) { studentRepository.deleteById(id); } }
Adım 15: Adıyla bir paket oluşturun com.javatpoint.repository klasörde src/ana/java.
Adım 16: Oluşturmak Depo arayüz. adında bir depo arayüzü oluşturduk. Öğrenci Deposu paketin içinde com.javatpoint.repository. Uzatır Crud Deposu arayüz.
Öğrenci Deposu.java
package com.javatpoint.repository; import org.springframework.data.repository.CrudRepository; import com.javatpoint.model.Student; public interface StudentRepository extends CrudRepository { }
Şimdi veri kaynağını yapılandıracağız URL, sürücü sınıfı adı, kullanıcı adı, Ve şifre, içinde uygulama.özellikler dosya.
c programları
Adım 17: Aç uygulama.özellikler Dosyayı açın ve aşağıdaki özellikleri yapılandırın.
uygulama.özellikler
spring.datasource.url=jdbc:h2:mem:javatpoint spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.jpa.database-platform=org.hibernate.dialect.H2Dialect #enabling the H2 console spring.h2.console.enabled=true
Not: H2 konsolunu etkinleştirmeyi unutmayın.
Tüm sınıfları ve paketleri oluşturduktan sonra proje dizini aşağıdaki gibi görünecektir.
Şimdi uygulamayı çalıştıracağız.
Adım 18: Açık SpringBootH2DatabaseExampleApplication.java dosyasını oluşturun ve Java Uygulaması olarak çalıştırın.
SpringBootH2DatabaseExampleApplication.java
package com.javatpoint; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootH2DatabaseExampleApplication { public static void main(String[] args) { SpringApplication.run(SpringBootH2DatabaseExampleApplication.class, args); } }
Bir sonraki adımda dinlenme istemcisini kullanacağız Postacı göndermek için POSTALAMAK Ve ELDE ETMEK rica etmek . Eğer Postacı sisteminizde yüklü değilse aşağıdaki adımları izleyin:
- Postacıyı şuradan indirin: https://www.getpostman.com/downloads/ veya tarayıcıya Google Chrome uzantısını ekleyin https://bit.ly/1HCOCwF .
- Postacıyı başlatın ve Üye olmak . Bir kullanıcı adı oluşturun. isimli kullanıcıyı oluşturduk. javatpoint ve tıkladım Göndermek
Adım 19: Aç Postacı ve aşağıdakileri yapın:
- Şunu seçin: POSTALAMAK
- http://localhost:8080/student URL'sini çağırın.
- Şunu seçin: Vücut
- İçerik Türünü seçin JSON (uygulama/json).
- Verileri ekleyin. Aşağıdaki verileri gövdeye ekledik:
{ 'id': '001', 'age': '23', 'name': 'Amit', 'email': '[email protected]' }
- Tıkla Göndermek
İstek başarıyla yürütüldüğünde, aşağıdakileri gösterir: Durum:200 Tamam . Bu, kaydın veritabanına başarıyla eklendiği anlamına gelir.
Benzer şekilde aşağıdaki verileri de ekledik.
{ 'id': '002', 'age': '24', 'name': 'Vadik', 'email': '[email protected]' } { 'id': '003', 'age': '21', 'name': 'Prateek', 'email': '[email protected]' } { 'id': '004', 'age': '25', 'name': 'Harsh', 'email': '[email protected]' } { 'id': '005', 'age': '24', 'name': 'Swarit', 'email': '[email protected]' }
Verileri görmek için H2 konsoluna erişelim.
Adım 20: Tarayıcıyı açın ve http://localhost:8080/h2-console URL'sini çağırın. Tıkla Bağlamak aşağıda gösterildiği gibi düğmesine basın.
java dizesine karakter
Üzerine tıkladıktan sonra Bağlamak düğmesini görüyoruz Öğrenci Veritabanındaki tablo aşağıda gösterildiği gibi.
Adım 21: Tıkla Öğrenci tabloya tıklayın ve ardından Koşmak düğme. Tablo gövdeye eklediğimiz verileri gösterir.
Adım 22: Postacıyı açın ve bir mesaj gönderin. ELDE ETMEK rica etmek. Veritabanına eklediğimiz verileri döndürür.
Hadi bir tane gönderelim ELDE ETMEK http://localhost:8080/student/{id} URL'si ile istekte bulunun. http://localhost:8080/student/3 URL'sini çağırdık. ID'si 3 olan öğrencinin detayını döndürür.
Benzer şekilde biz de gönderebiliriz. SİLMEK rica etmek. ID’si 2 olan bir öğrenci kaydını silmek istediğimizi varsayalım.
Öğrenci kaydını silmek için SİLMEK http://localhost:8080/student/2 URL'si ile istek yapın. Kimliği olan öğrencinin 2 veritabanından silinmiştir.
H2 Veritabanı Örnek Projesini İndirin