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
Post a Comment