Skip to main content

JDBC (পর্ব - 1)

JDBC – Java Database Connectivity

ডেটাবেজ কেনো ব্যবহার হয় এটা হয়তো আমরা সবাই জানি। ধরেন আপনি ফেসবুকে একটা আইডি খুলতে চাচ্ছেন তখন আপনার নাম , মোবাইল, পাসওয়ার্ড এগুলা দিতে হয়, এগুলা ফেসবুকের ডেটাবেজে জমা হয়ে যায় আবার পরে আপনি যদি লগইন করতে চান তখন আপনার একই নাম্বার আর পাসওয়ার্ড দিতে হয় তখন ফেসবুক নিজের ডেটাবেজ থেকে আপনার নাম্বার আর পাসওয়ার্ড ওয়ালা আইডিটি সাইন ইন করে দেয়।

 

তো এভাবেই আমাদের প্রায় সব application এই কোনো না কোনা ডেটা জমা রাখার প্রয়োজন পড়ে।

 

তো আমরা যদি application টি জাভা ল্যাঙ্গুয়েজ ব্যবহার করে বানিয়ে থাকি তাহলে ডেটাবেজ কন্ট্রোল করতে JDBC API লাগবে।

 

এইখানে বেসিক কিছু কন্সেপ্ট নিয়ে জানবো শুধু। যেমনঃ আমাদের জাভা application দিয়ে কিভাবে ডেটাবেজ কন্ট্রোল হয় , কারণ জাভা আলাদা ল্যাঙ্গুয়েজ , ডেটাবেজ কন্ট্রোলের জন্য প্রয়জন আলাদা ল্যাঙ্গুয়েজ।

 

মনে করেন আপনি চাইনিজ কোনো মানুষের সাথে ব্যবসা করতে চান , আপনি তার কথার আগামাথা কিছুই বুঝেন না সেও কিছুই বুঝে না আপনার কথা, তাই আপনারা একজন লোক ভাড়া করলেন যে কিনা দুইটা ভাষায় ভাল জানে, এখন ঐ লোকের কাজ আপনার কথা চাইনিজকে বুঝিয়ে দেয়া আর উনার কথা আপনাকে।

 

তো আপনার মাতৃভাষা হচ্ছে ‘জাভা’ আর উনার ভাষা হচ্ছে ডেটাবেজের যে ভাষা অর্থাৎ  SQL (Structured Query Language),  আর যেই লোক দুই ভাষায় ভালমত জানে তার নাম হচ্ছে ‘Driver’

 

কথা কি দাড়ালো এখন পর্যন্ত?  Java দিয়ে বানানো কোনো সফটওয়্যার  দিয়ে আপনি যদি ডেটাবেজ ব্যবহার করতে চান তাহলে আপনার জাভা কোড দিয়ে দেয়া কমান্ড বা কাজ বা ওর্ডার কে ডেটাবেজের কাছে পাঠাতে হবে এমনভাবে যাতে সে বুঝতে পারে আপনি আসলে কি চান।  তো আপনার জাভা কোডকে Database  বুঝে এমন বানানোর জন্য Driver প্রয়োজন।

 

আচ্ছা এখন মোটামুটি সমস্যা ক্লিয়ার, এখন আপনি আপনার কথা অর্থাৎ জাভা কোডকে ডেটাবেজে কনভার্ট করে দিতে পারবেন Driver ব্যবহারের মাধ্যমে।  কিন্তু Driver তো শুধু কনভার্ট করে দিবে আপনাদের ভাষাকে , কনভার্টকরা ভাষাটুক একজন থেকে আরেকজনের কাছে যাবে কিভাবে? এর জন্যতো কোনো একটা মাধ্যম দরকার তাই না? নাহলে ডেটাবেজ এক দেশে আপনার জাভা কোড একদেশে আর Driver  ভাষা কনভার্ট করে নিয়ে বসে থাকবে একা একা , আপনাদের সমস্যা থেকেই যায়।

 

তাই এখন আমাদের দরকার পড়বে Connection এর,

জাভা Application আপনার কম্পিউটারে, জাভা কোড translate করার জন্য আছে  Driver, ডেটাবেজ এর সাথে Contact করার জন্য আছে Connection,  যখন Connection পেয়ে যাবেন তখন আপনার মনের কথা ডেটাবেজে পৌছাইতে পারবেন, কিন্তু ডেটাবেজ আপনার চাওয়া ডেটা আপনার কাছে পাঠাবে তাই একটা গাড়ি দরকার, যেই গাড়ির নাম Statement, এটাতো গাড়ি, গাড়ির মধ্যে থাকবে আপনার জিনিস, আপনার জিনিসটা এতকক্ষন এত কাহিনির ফল বা রেজাল্ট, তাই ঐটার জন্য দরকার ResultSet । মানে Statement এর মধ্যে Result থাকবে , কিন্তু ঐটা পাইতে গেলে আপনাকে ResultSet interface ব্যবহার করতে হবে। একটা সিম্পল working code দিয়ে দিচ্ছি নিচে,

 

Code1:

package notebook;

import java.sql.*;

public class NewClass {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        
        Class.forName("com.mysql.cj.jdbc.Driver");
        String url="jdbc:mysql://localhost/check123";
        String user="root";
        String pass="";
        Connection con=DriverManager.getConnection(url,user,pass);
        Statement st=con.createStatement();
        String query="SELECT * FROM students where id=145";
        ResultSet rs;
        rs=st.executeQuery(query);
        while(rs.next()){
            System.out.println(rs.getString(1)+" "+rs.getInt(2)+" "+rs.getString(3));
        }
        con.close();
        st.close();
        
    }
}

 

 

 

 

 

 

 

Code2:

 

“package notebook;

 

import java.sql.*;

import java.util.logging.Level;

import java.util.logging.Logger;

 

public class NoteBook {

    public static void main(String[] args) throws SQLException, ClassNotFoundException {

        String className="com.mysql.cj.jdbc.Driver";

            String url="jdbc:mysql://127.0.0.1/rifat";

            String user="root";

            String password="";

            String q="SELECT * FROM `rifat` WHERE Id=2";

            Class.forName(className);

            Connection con=DriverManager.getConnection(url,user,password);

            Statement st=con.createStatement();

            ResultSet result;

            result=st.executeQuery(q);

            result.next();

            String output=result.getString("Name");

            System.out.println(output);

           

            con.close();

            st.close();

    }

   

}”

 

 


 

 Youtube:  https://www.youtube.com/watch?v=slnykTVTxHA

 

Comments

Popular posts from this blog

IELTS Spoken Class Adminssion Scenario - 01

.......  Student: Hello, May I come in, sir ? Optional (student): May I sit ? Sir:  Please have a seat. Sir: How may I help you, Sir ? Student: I would like to admit in your spoken course. Sir: Oh sure. Student: How many days are there in a week ? Sir: There are three classes in a week. Student: What time do you offer class ? Sir: We have class at 11am / 4pm / 6pm / 8pm

Php Learning Time

 Differences of explode( ) and implode( ) in php: explode: একটা স্ট্রিংকে কোনো একটা সেপারেটরের বেসিসে অ্যারেতে কনভার্ট করে, যেমন  <?php $text="Hello How are you?"; print_r(explode(" ",$text)); ?> This will give output of  Array (     [0] => Hello     [1] => How     [2] => are     [3] => you? ) Differences of array_splice( ) and array_slice( ) ধরেন আসল অ্যারে হচ্ছে    $arr =[ "Hello" , "this" , "is" , "test" , "text" ];    এখন এটাকে স্লাইসিং করার জন্য আমরা উপরের দুইটা মেথড ই ব্যবহার করতে পারি , কিন্তু array_splice এটা ইউজ করলে অরজিনাল array ও চেঞ্জ হয়ে যাবে, মানে যদি আমরা এভাবে লিখি  $var2 = array_splice ( $arr , 0 , 2 );   তাইলে $var2 এর ভিতরে থাকবে ["Hello" , "this"] ,  আর অরজিনাল array তে বাকি থাকবে ["is", "test", "text"] কিন্তু যদি আমরা ইউজ করি তাহলে অরজিনাল array আগের মতোই থাকবে পাশাপাশি $var2 এর মধ্যে ভ্যালু গুলা এসে পড়বে  Array (     [0] => ...