Hibernate হল একটি জনপ্রিয় Object-Relational Mapping (ORM) টুল, যা Java অ্যাপ্লিকেশনগুলিকে রিলেশনাল ডেটাবেসের সাথে সংযোগ স্থাপন এবং ডেটা পরিচালনার জন্য ব্যবহার করা হয়। Apache Derby একটি হালকা এবং Java-ভিত্তিক ডেটাবেস সিস্টেম, যা Hibernate এর সাথে ব্যবহৃত হতে পারে ছোট এবং মাঝারি আকারের অ্যাপ্লিকেশনগুলির জন্য। এখানে আমরা Hibernate কনফিগারেশন এবং Apache Derby ডেটাবেসের সাথে একত্রে ব্যবহারের জন্য কিছু স্টেপস আলোচনা করব।
প্রথমে, আপনাকে Apache Derby ডাউনলোড করতে হবে। আপনি এটি Apache Derby Official Website থেকে ডাউনলোড করতে পারেন।
Hibernate এবং এর প্রয়োজনীয় লাইব্রেরি যুক্ত করার জন্য, আপনি Maven ব্যবহার করতে পারেন, অথবা JAR ফাইল গুলি ম্যানুয়ালি যুক্ত করতে পারেন। এখানে Maven ব্যবহার করার উদাহরণ দেওয়া হলো।
<dependencies>
<!-- Hibernate Core Dependency -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.32.Final</version>
</dependency>
<!-- Derby JDBC Driver -->
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>10.15.2.0</version>
</dependency>
<!-- SLF4J Logger (optional for logging) -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.30</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.30</version>
</dependency>
</dependencies>
এই dependency গুলি Hibernate Core, Derby JDBC driver, এবং SLF4J Logger এর জন্য প্রয়োজন।
Hibernate কনফিগারেশন ফাইলটি hibernate.cfg.xml
নাম দিয়ে তৈরি করতে হবে, যা Hibernate এর কনফিগারেশন সেটিংস ধারণ করে। এটি সাধারণত src/main/resources/
ডিরেক্টরিতে রাখা হয়।
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- JDBC Database connection settings -->
<property name="hibernate.dialect">org.hibernate.dialect.DerbyDialect</property>
<property name="hibernate.connection.driver_class">org.apache.derby.jdbc.EmbeddedDriver</property>
<property name="hibernate.connection.url">jdbc:derby:memory:myDB;create=true</property>
<property name="hibernate.connection.username">user</property>
<property name="hibernate.connection.password">password</property>
<!-- JDBC connection pool settings -->
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<!-- Specify dialect -->
<property name="hibernate.dialect">org.hibernate.dialect.DerbyDialect</property>
<!-- Echo all executed queries -->
<property name="hibernate.show_sql">true</property>
<!-- Drop and re-create the database schema on startup -->
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="hibernate.current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- Echo all executed queries to stdout -->
<property name="hibernate.format_sql">true</property>
</session-factory>
</hibernate-configuration>
এই কনফিগারেশন ফাইলে:
DerbyDialect
দিয়ে নির্ধারণ করা হয়, যা Apache Derby ডেটাবেসের জন্য উপযুক্ত।memory:myDB;create=true
দেখানো হয়েছে, যা একটি ইন-মেমরি ডেটাবেস তৈরি করবে।আপনার ডেটাবেস টেবিলের জন্য একটি Java Entity Class তৈরি করতে হবে। Hibernate ব্যবহার করে Entity গুলি মেটাট্যাগের মাধ্যমে টেবিলের সাথে ম্যাপ করা হয়।
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "employees")
public class Employee {
@Id
private int id;
private String name;
private int age;
// Getters and Setters
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;
}
}
এই class টির মাধ্যমে আপনি employees
টেবিলের ডেটা ম্যানেজ করতে পারবেন। @Entity
এবং @Table
এনোটেশন দ্বারা Hibernate এই ক্লাসটিকে টেবিলের সাথে সংযুক্ত করে।
Hibernate এ ডেটাবেস অপারেশন করার জন্য একটি Utility ক্লাস তৈরি করতে পারেন, যা SessionFactory তৈরি করে এবং Hibernate Session পরিচালনা করে।
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtil {
private static SessionFactory factory;
static {
factory = new Configuration().configure("hibernate.cfg.xml").addAnnotatedClass(Employee.class).buildSessionFactory();
}
public static Session getSession() {
return factory.getCurrentSession();
}
}
এটি hibernate.cfg.xml
কনফিগারেশন ফাইলের মাধ্যমে Hibernate Session তৈরি করবে।
এখন আপনি Hibernate এর মাধ্যমে ডেটাবেসে CRUD (Create, Read, Update, Delete) অপারেশন করতে পারবেন।
public class Main {
public static void main(String[] args) {
// Create a new employee object
Employee newEmployee = new Employee();
newEmployee.setName("John Doe");
newEmployee.setAge(30);
// Get the session and start a transaction
Session session = HibernateUtil.getSession();
session.beginTransaction();
// Save the employee object
session.save(newEmployee);
// Commit the transaction
session.getTransaction().commit();
// Clean up
session.close();
}
}
public class Main {
public static void main(String[] args) {
// Get the session and start a transaction
Session session = HibernateUtil.getSession();
session.beginTransaction();
// Retrieve an employee using primary key
Employee employee = session.get(Employee.class, 1);
// Commit the transaction
session.getTransaction().commit();
// Print the employee details
System.out.println(employee);
// Clean up
session.close();
}
}
Hibernate এর মাধ্যমে Apache Derby ডেটাবেস ব্যবহারের মাধ্যমে আপনি Java অ্যাপ্লিকেশনগুলোতে একটি পূর্ণাঙ্গ ORM সমাধান পাবেন। Hibernate এর সাথে Derby ডেটাবেস ইন্টিগ্রেশন করলে আপনি সহজেই ডেটাবেস পরিচালনা করতে পারবেন, SQL কোডের পরিবর্তে Java ক্লাস দিয়ে ডেটাবেসে CRUD অপারেশন সম্পাদন করতে পারবেন। এই প্রক্রিয়ায়, hibernate.cfg.xml কনফিগারেশন ফাইল, Hibernate Entity Classes, এবং SessionFactory ব্যবহার করে আপনির ডেটাবেস অ্যাক্সেস সহজ হয়ে যায়।
common.read_more