CodeGym /Java kursus /All lectures for DA purposes /Udførelse af forespørgsler

Udførelse af forespørgsler

All lectures for DA purposes
Niveau , Lektie
Ledig

Introduktion til erklæringer

Alle SQL-forespørgsler kan betinget opdeles i to grupper:

  • Henter data − Disse inkluderer SELECT- sætningen .
  • Ændring af data − Disse omfatter INSERT- , UPDATE- og DELETE -sætninger .

For den første gruppe bruges Statement- grænseflademetoden, som vi allerede kender - executeQuery() . I princippet er denne metode ganske nok til at komme i gang. Det dækker en meget stor procentdel af forespørgsler, som du skal bruge i et rigtigt job.

Vi kommer ind på flere muligheder senere, men indtil videre råder jeg dig til at huske - hvis du blot ønsker at hente data fra en tabel, så vil executeQuery () metoden i langt de fleste tilfælde være det rigtige valg.

For den anden gruppe af anmodninger skal du bruge en anden metode til Statement-grænsefladen - executeUpdate() . I modsætning til metoden executeQuery() , som returnerer et ResultSet, returnerer denne metode et heltal, der fortæller dig, hvor mange rækker i tabellen, der blev ændret, da din forespørgsel blev udført .

For eksempel kan du slette alle rækker med SLET FRA medarbejdererklæringen (så vær meget forsigtig). I dette tilfælde vil executeUpdate() -metoden returnere antallet af slettede rækker. I nogle situationer kan det være nyttigt at kende antallet af ændrede rækker til at bygge algoritmer til at arbejde med data.

I princippet kan vi afslutte dette spørgsmål - vi har allerede set det vigtigste. Til datahentning - executeQuery() . For at ændre data - executeUpdate() .

antallet af brugere i brugertabellen ved hjælp af executeQuery() -metoden :


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

executeUpdate()

Metoden executeUpdate() bruges, når din forespørgsel ændrer noget i en tabel. Det kan være hvad som helst:

  • OPDATERING erklæring
  • INSERT erklæring
  • SLET erklæring
  • CALL PROCEDURE erklæring

Denne metode returnerer antallet af ændrede (eller slettede) rækker.

Lad os skrive en anmodning, der vil øge lønnen for alle vores ansatte med 1000 rubler.


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

Efter at jeg kørte denne kode, returnerede den tallet 6 på mit bord. Mit bord havde 6 rækker. Så alle linjer er blevet ændret.

udføre()

Nogle gange kan der opstå situationer i dit liv, hvor du ikke ved præcis, hvilken anmodning du skal udføre - et valg eller en dataændring. I dette tilfælde tilføjede skaberne af JDBC en anden generisk metode til it - execute() .

Denne metode kan bruges i stedet for metoderne executeQuery() og executeUpdate() . Kan du huske, hvordan disse metoder adskilte sig? Højre. Resultattype. Derfor kom skaberne af JDBC med en sådan løsning.

execute() -metoden returnerer boolean. Hvis denne værdi er sand , var en anmodning om datahentning i gang, og du skal kalde metoden getResultSet() for at hente dataene. Eksempel:


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

Hvis denne værdi er falsk , var en dataændringsanmodning i gang, og du skal kalde metoden getUpdateCount() for at få ændret antallet af rækker. Eksempel:


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

Lad os skrive en metode, der viser resultatet af en forespørgsel:


	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);
  	}
}

Sådan bruges execute()- metoden normalt i praksis.

Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION