Spring JDBC-তে SQL স্ক্রিপ্ট ইন্টিগ্রেশন ডেটাবেস ইনিশিয়ালাইজেশন, টেবিল তৈরি, এবং ডেটা ইনসার্ট করার জন্য অত্যন্ত কার্যকর। এটি সাধারণত ডেটাবেস স্কিমা সেটআপ এবং ডিফল্ট ডেটা লোড করার জন্য ব্যবহৃত হয়। Spring ফ্রেমওয়ার্ক সরাসরি SQL ফাইলগুলো থেকে এই কাজটি করতে পারে।
Spring JDBC দিয়ে SQL Script Integration এর প্রধান ধাপগুলো:
- SQL স্ক্রিপ্ট প্রস্তুত করা
- Spring Configuration সেটআপ করা
JdbcTemplateবাResourceDatabasePopulatorব্যবহার করে SQL স্ক্রিপ্ট চালানো- Spring Boot প্রজেক্টে SQL স্ক্রিপ্ট ইন্টিগ্রেশন (অতিরিক্ত ফিচার)
ধাপ ১: SQL স্ক্রিপ্ট প্রস্তুত করা
একটি .sql ফাইল তৈরি করুন এবং এতে আপনার প্রয়োজনীয় SQL স্টেটমেন্ট যুক্ত করুন।
schema.sql:
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50),
department VARCHAR(50)
);
CREATE TABLE departments (
id INT PRIMARY KEY,
name VARCHAR(50)
);
INSERT INTO departments (id, name) VALUES (1, 'IT');
INSERT INTO departments (id, name) VALUES (2, 'HR');
ধাপ ২: Spring Configuration সেটআপ করা
Java Configuration Example:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator;
import javax.sql.DataSource;
@Configuration
public class AppConfig {
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/mydb");
dataSource.setUsername("root");
dataSource.setPassword("password");
return dataSource;
}
@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean
public void initializeDatabase(DataSource dataSource) {
ResourceDatabasePopulator databasePopulator = new ResourceDatabasePopulator();
databasePopulator.addScript(new ClassPathResource("schema.sql"));
databasePopulator.execute(dataSource);
}
}
ধাপ ৩: JdbcTemplate দিয়ে SQL স্ক্রিপ্ট চালানো
JdbcTemplate ব্যবহার করে সরাসরি SQL স্ক্রিপ্ট থেকে কোয়েরি চালানো যায়।
উদাহরণ:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
@Service
public class SQLScriptService {
@Autowired
private JdbcTemplate jdbcTemplate;
public void runScript() {
String sql = "CREATE TABLE employees (id INT PRIMARY KEY, name VARCHAR(50), department VARCHAR(50));";
jdbcTemplate.execute(sql);
}
}
Spring Boot ব্যবহার করে SQL Script Integration
Spring Boot সরাসরি schema.sql এবং data.sql ফাইলগুলো থেকে ডাটাবেস ইনিশিয়ালাইজ করতে পারে।
ধাপসমূহ:
src/main/resourcesফোল্ডারেschema.sqlএবংdata.sqlফাইল তৈরি করুন।
schema.sql:
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50),
department VARCHAR(50)
);
data.sql:
INSERT INTO employees (id, name, department) VALUES (1, 'John Doe', 'IT');
INSERT INTO employees (id, name, department) VALUES (2, 'Jane Smith', 'HR');
- Spring Boot প্রজেক্ট চালানোর সময় এই স্ক্রিপ্টগুলো স্বয়ংক্রিয়ভাবে চালানো হবে।
Application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.initialization-mode=always
Spring Boot SQL Script Execution Validation
আপনার ডেটাবেসে ডেটা সঠিকভাবে লোড হয়েছে কি না তা যাচাই করতে একটি সিম্পল কোড লিখতে পারেন।
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
@Service
public class EmployeeService {
@Autowired
private JdbcTemplate jdbcTemplate;
public void fetchEmployees() {
String query = "SELECT * FROM employees";
jdbcTemplate.query(query, (rs, rowNum) -> {
System.out.println("ID: " + rs.getInt("id"));
System.out.println("Name: " + rs.getString("name"));
System.out.println("Department: " + rs.getString("department"));
return null;
});
}
}
Spring JDBC দিয়ে SQL Script Integration এর সুবিধা:
- ডেটাবেস স্কিমা এবং ডেটা ম্যানেজমেন্ট সহজ।
schema.sqlএবংdata.sql-এর মাধ্যমে অটোমেটেড ইনিশিয়ালাইজেশন।- ট্রানজেকশন ম্যানেজমেন্ট এবং ফ্লেক্সিবিলিটি।
- ছোট ও মাঝারি প্রকল্পের জন্য কার্যকর।
উপসংহার:
Spring JDBC দিয়ে SQL স্ক্রিপ্ট ইন্টিগ্রেশন ডেটাবেস ইন্টিগ্রেশন এবং ইনিশিয়ালাইজেশনের জন্য একটি কার্যকর পদ্ধতি। Spring Boot এর ক্ষেত্রে এটি আরও সহজ, কারণ Spring নিজে থেকেই স্ক্রিপ্টগুলো হ্যান্ডেল করে।
Read more