HSQLDB (HyperSQL Database) একটি ইন-মেমরি এবং ডিস্ক-ভিত্তিক ডেটাবেস সিস্টেম যা খুবই দ্রুত এবং লাইটওয়েট। এটি Java Web Applications এ ব্যবহৃত হতে পারে, বিশেষত JSP (JavaServer Pages) এবং Servlets এর মধ্যে ডেটাবেস ইন্টিগ্রেশন করার জন্য। HSQLDB সাধারণত in-memory ডেটাবেস হিসেবে ব্যবহার করা হয়, তবে এটি ডিস্ক-ভিত্তিক স্টোরেজও সমর্থন করে, এবং এটি ছোট থেকে মাঝারি আকারের অ্যাপ্লিকেশনগুলির জন্য আদর্শ।
এখানে JSP এবং Servlets ব্যবহার করে HSQLDB ইন্টিগ্রেট করার জন্য ধাপে ধাপে নির্দেশনা প্রদান করা হবে।
1. Maven Dependencies যোগ করা
প্রথমে, আপনাকে HSQLDB এবং Spring JDBC বা Servlet API এর জন্য প্রয়োজনীয় Maven dependencies pom.xml ফাইলে যোগ করতে হবে।
<dependencies>
<!-- HSQLDB Dependency -->
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.5.1</version>
</dependency>
<!-- Servlet API Dependency -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<!-- JSP Dependency (Optional) -->
<dependency>
<groupId>org.apache.jasper</groupId>
<artifactId>apache-jasper</artifactId>
<version>8.5.70</version>
<scope>provided</scope>
</dependency>
</dependencies>
এই dependencies দিয়ে HSQLDB ডেটাবেস এবং Servlet API সহ JSP ফিচারসমূহ ব্যবহার করা যাবে।
2. Web Application Setup
এখন Servlet এবং JSP ব্যবহার করার জন্য আপনার ওয়েব অ্যাপ্লিকেশনের কনফিগারেশন করতে হবে।
web.xml (Deployment Descriptor)
web.xml ফাইলে ডিফাইন করা হয় সার্ভলেট এবং জাভা সার্ভার পেজ (JSP) কনফিগারেশন।
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.example.servlet.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
</web-app>
এখানে MyServlet সার্ভলেটটি /myservlet URL প্যাটার্নের জন্য ম্যাপ করা হয়েছে।
3. HSQLDB Connection Setup (Database Configuration)
HSQLDB-তে ডেটাবেস কানেকশন তৈরি করতে প্রথমে একটি DataSource বা Connection তৈরি করতে হবে।
DatabaseConnection.java (Database Connection Helper Class)
package com.example.database;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseConnection {
public static Connection getConnection() throws SQLException {
// HSQLDB in-memory connection string
String url = "jdbc:hsqldb:mem:testdb"; // In-memory DB
String user = "sa";
String password = "";
return DriverManager.getConnection(url, user, password);
}
}
এটি HSQLDB ডেটাবেসে কানেকশন সেটআপ করবে। jdbc:hsqldb:mem:testdb URL ব্যবহার করলে ইন-মেমরি ডেটাবেস ব্যবহৃত হবে।
4. Servlet তৈরি করা (Database Operation)
Servlet-এ ডেটাবেস অপারেশন চালানোর জন্য JDBC টেকনোলজি ব্যবহার করা হবে।
MyServlet.java (Servlet for Data Access)
package com.example.servlet;
import com.example.database.DatabaseConnection;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@WebServlet("/myservlet")
public class MyServlet extends javax.servlet.http.HttpServlet {
protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws ServletException, IOException {
// Set content type
response.setContentType("text/html");
PrintWriter out = response.getWriter();
try {
// Establish connection
Connection connection = DatabaseConnection.getConnection();
// Create and execute SQL query
String query = "SELECT * FROM users";
PreparedStatement stmt = connection.prepareStatement(query);
ResultSet rs = stmt.executeQuery();
// Display results
out.println("<html><body>");
out.println("<h1>Users from Database:</h1>");
while (rs.next()) {
out.println("<p>" + rs.getInt("id") + " - " + rs.getString("name") + "</p>");
}
out.println("</body></html>");
// Close connection
rs.close();
stmt.close();
connection.close();
} catch (SQLException e) {
out.println("<h3>Error: " + e.getMessage() + "</h3>");
}
}
}
এখানে MyServlet সার্ভলেটটি GET রিকোয়েস্টে users টেবিল থেকে সমস্ত ডেটা আনার জন্য ডেটাবেসে একটি SQL কুয়েরি চালাচ্ছে এবং ফলাফল JSP/Servlet এর মাধ্যমে প্রদর্শন করছে।
5. Create the Users Table in HSQLDB
এটি একটি JSP পেজ বা Servlet থেকে ডেটা দেখতে হবে। এর জন্য প্রথমে HSQLDB-তে টেবিল তৈরি করতে হবে।
SQL Query for Table Creation
CREATE TABLE users (
id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
name VARCHAR(100)
);
এটি users নামক একটি টেবিল তৈরি করবে, যেখানে id কলামটি একটি স্বয়ংক্রিয়ভাবে বৃদ্ধি পায় এমন পূর্ণসংখ্যা (INTEGER) এবং name কলামটি একটি স্ট্রিং (VARCHAR) হবে।
6. Populating Data
আপনার ডেটাবেসে কিছু ডেটা ইনসার্ট করুন, যাতে আপনি সেগুলি দেখতে পারেন।
INSERT INTO users (name) VALUES ('Alice');
INSERT INTO users (name) VALUES ('Bob');
এটি users টেবিলে কিছু ডামি ডেটা ইনসার্ট করবে।
7. JSP for Data Display
JSP পেজ ব্যবহার করে আপনি সার্ভলেটের মাধ্যমে প্রদর্শিত ডেটা দেখাতে পারেন।
display.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"%>
<%@ page import="java.sql.*, com.example.database.DatabaseConnection" %>
<html>
<head>
<title>Users</title>
</head>
<body>
<h1>Users from Database:</h1>
<%
try {
Connection connection = DatabaseConnection.getConnection();
String query = "SELECT * FROM users";
PreparedStatement stmt = connection.prepareStatement(query);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
%>
<p><%= rs.getInt("id") %> - <%= rs.getString("name") %></p>
<%
}
rs.close();
stmt.close();
connection.close();
} catch (SQLException e) {
%>
<h3>Error: <%= e.getMessage() %></h3>
<%
}
%>
</body>
</html>
এটি JSP ব্যবহার করে ডেটাবেস থেকে ডেটা পড়ে এবং HTML পেজে প্রদর্শন করবে।
8. Running the Web Application
- Deploy to a Server: আপনার Servlet এবং JSP পেজকে সার্ভারে (যেমন Tomcat) ডিপ্লয় করুন।
- Run the Application: ব্রাউজারে গিয়ে
http://localhost:8080/your-webapp/myservletURL ব্যবহার করুন এবং আপনি সার্ভলেটের মাধ্যমে ডেটা দেখতে পারবেন।
সারাংশ
- HSQLDB একটি হালকা ডেটাবেস সিস্টেম, যা JSP এবং Servlets সহ Java Web Applications এ সহজে ব্যবহার করা যায়।
- Servlets এবং JSP ব্যবহার করে HSQLDB ডেটাবেসের সাথে সংযোগ করা এবং ডেটাবেস অপারেশন যেমন SELECT, INSERT ইত্যাদি চালানো সম্ভব।
- ডেটাব
েস কানেকশন এবং ডেটা অ্যাক্সেসের জন্য JDBC ব্যবহার করা হয়, এবং JSP ব্যবহার করে ডেটা HTML পেজে প্রদর্শিত হয়।
- Maven dependencies, web.xml কনফিগারেশন, এবং JSP/Servlet এক্সিকিউশন সংযোগের জন্য কনফিগার করা হয়।
Read more