উদাহরণ সহ JdbcTemplate এর ব্যবহার

JdbcTemplate এর ভূমিকা এবং ব্যবহার - স্প্রিং জেডিবিসি (Spring JDBC) - Java Technologies

280

JdbcTemplate হল Spring JDBC-এর একটি অত্যন্ত গুরুত্বপূর্ণ ক্লাস, যা ডাটাবেস অ্যাক্সেস সহজতর করে। এটি SQL অপারেশন (CRUD: Create, Read, Update, Delete) সম্পাদনের জন্য ব্যবহৃত হয়।

JdbcTemplate-এর মাধ্যমে আপনি ডাটাবেসের সাথে সরাসরি ইন্টারঅ্যাক্ট করতে পারেন, যেমন: ডেটা রিড, ইনসার্ট, আপডেট, ডিলিট করা। এটি JDBC-এর জটিল অংশগুলিকে (যেমন কানেকশন ম্যানেজমেন্ট, রিসোর্স ক্লোজিং ইত্যাদি) সরলীকৃত করে।


JdbcTemplate সেটআপ:

Maven ডিপেনডেন্সি:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.3.10</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.27</version>
</dependency>

DataSource কনফিগার করা:

import org.springframework.jdbc.datasource.DriverManagerDataSource;
import javax.sql.DataSource;

@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;
}

JdbcTemplate বীন তৈরি:

import org.springframework.jdbc.core.JdbcTemplate;

@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource) {
    return new JdbcTemplate(dataSource);
}

JdbcTemplate-এর মাধ্যমে CRUD অপারেশন

উদাহরণ: User Table

ধরি, আমাদের একটি টেবিল রয়েছে যার নাম users এবং এর কাঠামো নিচের মতো:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100)
);

1. ডেটা যোগ করা (Insert Data):

String sql = "INSERT INTO users (name, email) VALUES (?, ?)";
jdbcTemplate.update(sql, "John Doe", "john.doe@example.com");
System.out.println("User added successfully!");

2. ডাটাবেস থেকে ডেটা পড়া (Read Data):

একক রেকর্ড পড়া:
String sql = "SELECT name FROM users WHERE id = ?";
String name = jdbcTemplate.queryForObject(sql, new Object[]{1}, String.class);
System.out.println("User Name: " + name);
একাধিক রেকর্ড পড়া:
String sql = "SELECT * FROM users";
List<User> users = jdbcTemplate.query(sql, (rs, rowNum) -> {
    User user = new User();
    user.setId(rs.getInt("id"));
    user.setName(rs.getString("name"));
    user.setEmail(rs.getString("email"));
    return user;
});

for (User user : users) {
    System.out.println(user);
}

3. ডেটা আপডেট করা (Update Data):

String sql = "UPDATE users SET name = ? WHERE id = ?";
jdbcTemplate.update(sql, "Jane Doe", 1);
System.out.println("User updated successfully!");

4. ডেটা মুছে ফেলা (Delete Data):

String sql = "DELETE FROM users WHERE id = ?";
jdbcTemplate.update(sql, 1);
System.out.println("User deleted successfully!");

উন্নত উদাহরণ: NamedParameterJdbcTemplate ব্যবহার

NamedParameterJdbcTemplate ব্যবহার করলে নামযুক্ত প্যারামিটার ব্যবহার করা যায়, যা কোডের পাঠযোগ্যতা বাড়ায়।

NamedParameterJdbcTemplate সেটআপ:

import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;

@Bean
public NamedParameterJdbcTemplate namedParameterJdbcTemplate(DataSource dataSource) {
    return new NamedParameterJdbcTemplate(dataSource);
}

উদাহরণ:

String sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
Map<String, Object> params = new HashMap<>();
params.put("name", "Alice");
params.put("email", "alice@example.com");

namedParameterJdbcTemplate.update(sql, params);
System.out.println("User added successfully using NamedParameterJdbcTemplate!");

JdbcTemplate-এর সাথে RowMapper ব্যবহার:

RowMapper ডাটাবেস রেকর্ড থেকে অবজেক্ট তৈরি করতে সাহায্য করে।

উদাহরণ:

String sql = "SELECT * FROM users";
List<User> users = jdbcTemplate.query(sql, new RowMapper<User>() {
    @Override
    public User mapRow(ResultSet rs, int rowNum) throws SQLException {
        User user = new User();
        user.setId(rs.getInt("id"));
        user.setName(rs.getString("name"));
        user.setEmail(rs.getString("email"));
        return user;
    }
});

for (User user : users) {
    System.out.println(user);
}

User ক্লাস উদাহরণ:

public class User {
    private int id;
    private String name;
    private String 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;
    }

    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", email=" + email + "]";
    }
}

উপসংহার:

Spring JDBC-এর JdbcTemplate ক্লাস ডাটাবেস অ্যাক্সেসকে সহজ, দ্রুত এবং কার্যকর করে তোলে। এটি ডেভেলপারদের কাজের সময় বাঁচায় এবং কোডকে আরও পরিচ্ছন্ন এবং মেইনটেনেবল করে। ছোট বা বড় যেকোনো প্রজেক্টে এটি একটি আদর্শ সমাধান।

Content added By
Promotion

Are you sure to start over?

Loading...