কম্পিউটার

আমরা কিভাবে JDBC ব্যবহার করে MySQL ডাটাবেসে একটি ফাইল সন্নিবেশ/সঞ্চয় করব?


সাধারণভাবে, একটি ফাইলের বিষয়বস্তু Clob-এর অধীনে সংরক্ষণ করা হয় MySQL ডাটাবেসে (TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT) ডেটাটাইপ৷

JDBC একটি ডাটাবেসের একটি টেবিলে একটি ফাইলের বিষয়বস্তু সংরক্ষণ করতে ক্লোব ডেটাটাইপের জন্য সমর্থন প্রদান করে৷

setCharacterStream() প্রস্তুত স্টেটমেন্টের পদ্ধতি ইন্টারফেস প্যারামিটারের সূচী প্রতিনিধিত্বকারী একটি পূর্ণসংখ্যা গ্রহণ করে এবং একটি পাঠক বস্তুকে প্যারামিটার হিসাবে গ্রহণ করে।

এবং প্রদত্ত রিডার অবজেক্টের (ফাইল) বিষয়বস্তুকে নির্দিষ্ট সূচকে প্যারামিটার (প্লেস হোল্ডার) এর মান হিসাবে সেট করে।

যখনই আপনার খুব বড় টেক্সট মান পাঠাতে হবে আপনি এই পদ্ধতিটি ব্যবহার করতে পারেন।

জেডিবিসি ব্যবহার করে পাঠ্য ফাইল সংরক্ষণ করা হচ্ছে:

আপনি যদি JDBC প্রোগ্রাম ব্যবহার করে একটি ডাটাবেসে একটি ফাইল সংরক্ষণ করতে চান তাহলে নীচে দেখানো হিসাবে একটি Clob (TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT) ডেটাটাইপ দিয়ে টেবিল তৈরি করুন:

CREATE TABLE Articles(Name VARCHAR(255), Article LONGTEXT);

এখন, JDBC ব্যবহার করে ডাটাবেসের সাথে সংযোগ করুন এবং একটি প্রস্তুত বিবৃতি প্রস্তুত করুন উপরের তৈরি টেবিলে মান সন্নিবেশ করতে:

String query = "INSERT INTO Tutorial(Name, Article) VALUES (?,?)";PreparedStatement pstmt = con.prepareStatement(query);

PreparedStatement ইন্টারফেসের সেটার পদ্ধতি ব্যবহার করে প্লেস হোল্ডারদের মান সেট করুন এবং setCharacterStream() ব্যবহার করে ক্লোব ডেটাটাইপ সেট মানের জন্য পদ্ধতি।

উদাহরণ

JDBC প্রোগ্রাম ব্যবহার করে একটি MySQL ডাটাবেসে ফাইলইন কীভাবে সন্নিবেশ করা যায় তা দেখানোর একটি উদাহরণ নিচে দেওয়া হল। এখানে আমরা একটি ক্লোব ডেটাটাইপ সহ একটি টেবিল তৈরি করেছি, এতে মান সন্নিবেশ করা হয়েছে।

import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class InsertingFileToDatabase {
   public static void main(String args[]) throws Exception {
      //Registering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Getting the connection
      String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //Inserting values
      String query = "INSERT INTO Articles(Name, Article) VALUES (?, ?)";
      PreparedStatement pstmt = con.prepareStatement(query);
      pstmt.setString(1, "article1");
      FileReader reader = new FileReader("E:\\data\\article1.txt");
      pstmt.setCharacterStream(2, reader);
      pstmt.execute();
      pstmt.setString(1, "article2");
      reader = new FileReader("E:\\data\\article2.txt");
      pstmt.setCharacterStream(2, reader);
      pstmt.execute();
      pstmt.setString(1, "article3");
      reader = new FileReader("E:\\data\\article3.txt");
      pstmt.setCharacterStream(2, reader);
      pstmt.execute();
      System.out.println("Data inserted......");
   }
}

আউটপুট

Connection established......
Data inserted......

MySQL ওয়ার্কবেঞ্চ ব্যবহার করে, আপনি একটি টেবিলের বিষয়বস্তু বিভিন্ন ফাইলে রপ্তানি করতে পারেন যেমন html ফাইল, .csv ফাইল টেক্সট ফাইল ইত্যাদি। আপনি যদি এইচটিটিএমএল ফাইলে ডেটা সন্নিবেশ করার পরে টেবিলের বিষয়বস্তু রপ্তানি করেন তবে এর আউটপুটটি এরকম দেখাবে:

আমরা কিভাবে JDBC ব্যবহার করে MySQL ডাটাবেসে একটি ফাইল সন্নিবেশ/সঞ্চয় করব?


  1. মাইএসকিউএল ওয়ার্কবেঞ্চ ব্যবহার করে কীভাবে মাইএসকিউএল ডাটাবেস ব্যাকআপ নেওয়া যায়?

  2. জাভা দিয়ে একটি মাইএসকিউএল ডাটাবেসে ডেটা কীভাবে সন্নিবেশ করা যায়?

  3. কিভাবে আমরা JDBC ব্যবহার করে ডাটাবেস থেকে ফাইল পুনরুদ্ধার করতে পারি?

  4. কিভাবে জাভা ব্যবহার করে একটি MySQL কলাম মান মধ্যে DATE সন্নিবেশ করান?