স্প্রিং জেডিবিসি-র মাধ্যমে JdbcTemplate ব্যবহার করে CRUD (Create, Read, Update, Delete) অপারেশন পরিচালনা করা খুবই সহজ। এখানে প্রতিটি অপারেশনের জন্য ধাপে ধাপে উদাহরণ দেওয়া হলো।
প্রয়োজনীয় সেটআপ
ডিপেন্ডেন্সি সংযোজন:
Maven-এ স্প্রিং জেডিবিসি এবং ডাটাবেস ড্রাইভার যোগ করুন।
(উদাহরণস্বরূপ, MySQL-এর জন্য)<dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.x.x</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.x.x</version> </dependency>ডাটাসোর্স কনফিগারেশন:
@Bean public DataSource dataSource() { DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/your_database"); dataSource.setUsername("your_username"); dataSource.setPassword("your_password"); return dataSource; }JdbcTemplate সেটআপ:
@Bean public JdbcTemplate jdbcTemplate(DataSource dataSource) { return new JdbcTemplate(dataSource); }
CRUD অপারেশন উদাহরণ
1. Create (Insert Data)
একটি নতুন রেকর্ড সন্নিবেশ করা।
public void addUser(String name, String email) {
String sql = "INSERT INTO users (name, email) VALUES (?, ?)";
jdbcTemplate.update(sql, name, email);
}
ব্যবহার:
addUser("John Doe", "john@example.com");
2. Read (Retrieve Data)
সব রেকর্ড পড়া:
public List<User> getAllUsers() {
String sql = "SELECT * FROM users";
return jdbcTemplate.query(sql, (rs, rowNum) -> new User(
rs.getInt("id"),
rs.getString("name"),
rs.getString("email")
));
}
একটি নির্দিষ্ট রেকর্ড পড়া:
public User getUserById(int id) {
String sql = "SELECT * FROM users WHERE id = ?";
return jdbcTemplate.queryForObject(sql, new Object[]{id}, (rs, rowNum) -> new User(
rs.getInt("id"),
rs.getString("name"),
rs.getString("email")
));
}
ব্যবহার:
User user = getUserById(1);
System.out.println(user.getName());
3. Update (Update Data)
একটি রেকর্ড আপডেট করা।
public void updateUser(int id, String name, String email) {
String sql = "UPDATE users SET name = ?, email = ? WHERE id = ?";
jdbcTemplate.update(sql, name, email, id);
}
ব্যবহার:
updateUser(1, "John Smith", "johnsmith@example.com");
4. Delete (Remove Data)
একটি রেকর্ড মুছে ফেলা।
public void deleteUser(int id) {
String sql = "DELETE FROM users WHERE id = ?";
jdbcTemplate.update(sql, id);
}
ব্যবহার:
deleteUser(1);
সম্পূর্ণ উদাহরণ
User Class:
public class User {
private int id;
private String name;
private String email;
// Constructor
public User(int id, String name, String email) {
this.id = id;
this.name = name;
this.email = email;
}
// 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 String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
Service Class:
@Service
public class UserService {
private final JdbcTemplate jdbcTemplate;
public UserService(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
// CRUD methods here
}
ট্রানজেকশন ম্যানেজমেন্ট (ঐচ্ছিক):
স্প্রিং ট্রানজেকশন ম্যানেজমেন্ট যোগ করতে @Transactional অ্যানোটেশন ব্যবহার করতে পারেন।
@Transactional
public void performMultipleOperations() {
addUser("Alice", "alice@example.com");
updateUser(2, "Bob", "bob@example.com");
deleteUser(3);
}
উপসংহার:
JdbcTemplate ব্যবহার করে CRUD অপারেশন খুব দ্রুত এবং সহজে সম্পন্ন করা যায়। এটি বিশেষত তখন কার্যকর, যখন Hibernate বা JPA-এর মতো ভারী ORM-এর প্রয়োজন নেই।
Read more