CodeGym/Java Course/All lectures for BN purposes/প্রশ্ন নির্বাহ করা হচ্ছে

প্রশ্ন নির্বাহ করা হচ্ছে

বিদ্যমান

বিবৃতি ভূমিকা

সমস্ত SQL প্রশ্ন শর্তসাপেক্ষে দুটি গ্রুপে বিভক্ত করা যেতে পারে:

  • ডেটা পুনরুদ্ধার করা - এর মধ্যে SELECT স্টেটমেন্ট রয়েছে ।
  • ডেটা পরিবর্তন করা - এর মধ্যে রয়েছে INSERT , UPDATE , এবং DELETE স্টেটমেন্ট ।

প্রথম গ্রুপের জন্য, আমাদের কাছে ইতিমধ্যে পরিচিত স্টেটমেন্ট ইন্টারফেস পদ্ধতি ব্যবহার করা হয় - executeQuery() । নীতিগতভাবে, এই পদ্ধতিটি শুরু করার জন্য যথেষ্ট। এটি প্রশ্নের একটি খুব বড় শতাংশ কভার করে যা আপনাকে একটি বাস্তব চাকরিতে ব্যবহার করতে হবে।

আমরা পরে আরও বিকল্পগুলিতে প্রবেশ করব, কিন্তু আপাতত, আমি আপনাকে মনে রাখার পরামর্শ দিচ্ছি - আপনি যদি কেবল একটি টেবিল থেকে ডেটা পেতে চান, তবে বেশিরভাগ ক্ষেত্রে executeQuery () পদ্ধতিটি সঠিক পছন্দ হবে৷

অনুরোধের দ্বিতীয় গ্রুপের জন্য, আপনাকে স্টেটমেন্ট ইন্টারফেসের আরেকটি পদ্ধতি ব্যবহার করতে হবে - executeUpdate()executeQuery() পদ্ধতির বিপরীতে , যা একটি ResultSet প্রদান করে, এই পদ্ধতিটি একটি পূর্ণসংখ্যা প্রদান করে যা আপনাকে বলে যে আপনার ক্যোয়ারীটি চালানোর সময় টেবিলের কতগুলি সারি পরিবর্তন করা হয়েছিল

উদাহরণ স্বরূপ, আপনি DELETE FROM কর্মচারী বিবৃতি দিয়ে সমস্ত সারি মুছে ফেলতে পারেন (তাই খুব সতর্ক থাকুন)। এই ক্ষেত্রে, executeUpdate() পদ্ধতিটি মুছে ফেলা সারির সংখ্যা ফেরত দেবে। কিছু পরিস্থিতিতে, পরিবর্তিত সারির সংখ্যা জানা ডেটা নিয়ে কাজ করার জন্য অ্যালগরিদম তৈরির জন্য কার্যকর হতে পারে।

নীতিগতভাবে, আমরা এই প্রশ্নটি শেষ করতে পারি - আমরা ইতিমধ্যে মূল জিনিসটি দেখেছি। ডেটা আনার জন্য - executeQuery() । ডেটা পরিবর্তন করতে - executeUpdate()

executeQuery() পদ্ধতি ব্যবহার করে ব্যবহারকারী টেবিলে ব্যবহারকারীর সংখ্যা পান :


	ResultSet results = statement.executeQuery("SELECT Count(*) FROM user");
	results.next();
    int count = results.getInt(1);

executeUpdate()

executeUpdate() পদ্ধতি ব্যবহার করা হয় যখন আপনার ক্যোয়ারী একটি টেবিলে কিছু পরিবর্তন করে। এটা কিছু হতে পারে:

  • আপডেট বিবৃতি
  • INSERT বিবৃতি
  • বিবৃতি মুছুন
  • কল পদ্ধতি বিবৃতি

এই পদ্ধতিটি পরিবর্তিত (বা মুছে ফেলা) সারির সংখ্যা প্রদান করে।

আসুন একটি অনুরোধ লিখি যা আমাদের সমস্ত কর্মচারীদের বেতন 1000 রুবেল বাড়িয়ে দেবে।


   int rowsCount = statement.executeUpdate("UPDATE  employee SET salary = salary+1000");

আমি এই কোডটি চালানোর পরে, এটি আমার টেবিলের 6 নম্বরটি ফেরত দেয়৷ আমার টেবিলে 6টি সারি ছিল৷ তাই সব লাইন পরিবর্তন করা হয়েছে.

এক্সিকিউট()

কখনও কখনও আপনার জীবনে এমন পরিস্থিতি দেখা দিতে পারে যখন আপনি জানেন না যে আপনাকে কোন অনুরোধটি কার্যকর করতে হবে - একটি নির্বাচন বা ডেটা পরিবর্তন। এই ক্ষেত্রে, JDBC-এর নির্মাতারা এতে আরেকটি জেনেরিক পদ্ধতি যোগ করেছেন - execute()

এই পদ্ধতিটি executeQuery() এবং executeUpdate() পদ্ধতির জায়গায় ব্যবহার করা যেতে পারে । আপনি কি মনে রাখবেন এই পদ্ধতিগুলি কীভাবে আলাদা? ঠিক। ফলাফলের ধরন। অতএব, জেডিবিসির নির্মাতারা এমন একটি সমাধান নিয়ে এসেছেন।

execute() পদ্ধতি বুলিয়ান রিটার্ন করে। যদি এই মানটি সত্য হয় , তাহলে একটি ডেটা আনার অনুরোধ চলছে, এবং ডেটা পেতে আপনাকে getResultSet() পদ্ধতিতে কল করতে হবে। উদাহরণ:


    boolean hasResults = statement.execute("SELECT Count(*) FROM user");
    if ( hasResults ) {
        	ResultSet results =  statement.getResultSet();
        	results.next();
        	int count = results.getInt(1);
 	}

যদি এই মানটি মিথ্যা হয় , তাহলে একটি ডেটা পরিবর্তনের অনুরোধ প্রগতিতে ছিল, এবং সারির সংখ্যা পরিবর্তন করতে আপনাকে getUpdateCount() পদ্ধতিতে কল করতে হবে। উদাহরণ:


    boolean hasResults = statement.execute("UPDATE  employee SET salary = salary+1000");
    if ( !hasResults ) {
      	int count = statement.getUpdateCount();
 	}

আসুন একটি পদ্ধতি লিখি যা একটি প্রশ্নের ফলাফল প্রদর্শন করে:


	public void executeAndPrintSQLQuery(String sqlQuery) {
 
        boolean hasResults = statement.execute(sqlQuery);
        if ( hasResults ) {
 	          ResultSet results =  statement.getResultSet();
           	System.out.println(“Your request lines below:);
 
           	while (results.next()) {
 	                 Integer id = results.getInt(1);
     	             String name = results.getString(2);
                      System.out.println(results.getRow() + ". " + id + "\t"+ name);
  	        }
       }
 	  else {
            int count = statement.getUpdateCount();
        	System.out.println(“Number of name strings:+ count);
  	}
}

এইভাবে execute() পদ্ধতি সাধারণত অনুশীলনে ব্যবহৃত হয়।

মন্তব্য
  • জনপ্রিয়
  • নতুন
  • পুরানো
মন্তব্য লেখার জন্য তোমাকে অবশ্যই সাইন ইন করতে হবে
এই পাতায় এখনও কোনো মন্তব্য নেই