CodeGym/Java курс/All lectures for BG purposes/Изпълнение на заявки

Изпълнение на заявки

На разположение

Въведение в твърденията

Всички SQL заявки могат условно да бъдат разделени на две групи:

  • Извличане на данни – Те включват командата SELECT .
  • Модифициране на данни – Те включват оператори INSERT , UPDATE и DELETE .

За първата група се използва вече познатият ни метод на интерфейса Statement - executeQuery() . По принцип този метод е напълно достатъчен, за да започнете. Той обхваща много голям процент от заявките, които ще трябва да използвате в реална работа.

Ще разгледаме повече опции по-късно, но засега ви съветвам да запомните - ако просто искате да получите данни от table, тогава методът executeQuery () в по-голямата част от случаите ще бъде правилният избор.

За втората група заявки трябва да използвате друг метод на интерфейса Statement - executeUpdate() . За разлика от метода executeQuery() , който връща ResultSet, този метод връща цяло число, което ви казва колко реда в tableта са бor променени, когато вашата заявка е била изпълнена .

Например, можете да изтриете всички редове с командата DELETE FROM за служител (така че бъдете много внимателни). В този случай методът executeUpdate() ще върне броя на изтритите редове. В някои ситуации познаването на броя на променените редове може да бъде полезно за изграждане на алгоритми за работа с данни.

По принцип можем да завършим този въпрос - вече видяхме основното. За извличане на данни - executeQuery() . За да промените данните - executeUpdate() .

Вземете броя на потребителите в потребителската table , като използвате метода executeQuery() :


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

изпълниUpdate()

Методът executeUpdate() се използва, когато вашата заявка промени нещо в table. Може да е всичко:

  • Изявление UPDATE
  • оператор INSERT
  • Операция DELETE
  • Декларация за ПРОЦЕДУРА ЗА ОБАЖДАНЕ

Този метод връща броя променени (or изтрити) редове.

Нека напишем заявка, която ще увеличи заплатата на всички наши служители с 1000 рубли.


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

След като стартирах този code, той върна числото 6 на моята table.Моята table имаше 6 реда. Така че всички линии са променени.

изпълни()

Понякога в живота ви може да възникнат ситуации, когато не знаете точно Howва заявка трябва да изпълните - избор or промяна на данни. В този случай създателите на JDBC добавиха още един общ метод към него - execute() .

Този метод може да се използва instead of методите executeQuery() и executeUpdate() . Спомняте ли си How се различаваха тези методи? вярно Тип резултат. Затова създателите на JDBC излязоха с такова решение.

Методът execute() връща булево meaning. Ако тази стойност е true , тогава е била в ход заявка за извличане на данни и трябва да извикате метода getResultSet() , за да получите данните. Пример:


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

Ако тази стойност е false , тогава е била в ход заявка за промяна на данни и трябва да извикате метода 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);
  	}
}

Ето How методът execute() обикновено се използва на практика.

Коментари
  • Популярен
  • Нов
  • Стар
Трябва да сте влезли, за да оставите коментар
Тази страница все още няма коментари