Pambuka kanggo Statements

Kabeh pitakon SQL bisa dipérang dadi rong klompok:

  • Njupuk data − Iki kalebu statement SELECT .
  • Ngowahi data − Iki kalebu INSERT , UPDATE , lan DELETE statements .

Kanggo klompok pisanan, cara antarmuka Statement sing wis dikenal kanggo kita digunakake - executeQuery() . Ing asas, cara iki cukup kanggo miwiti. Iki kalebu persentase pitakon sing akeh banget sing kudu sampeyan gunakake ing proyek nyata.

Kita bakal entuk luwih akeh pilihan mengko, nanging saiki, aku menehi saran supaya sampeyan eling - yen sampeyan mung pengin entuk data saka tabel, banjur metode executeQuery () ing mayoritas kasus bakal dadi pilihan sing tepat.

Kanggo klompok kapindho panjalukan, sampeyan kudu nggunakake cara liya saka antarmuka Statement - executeUpdate () . Ora kaya metode executeQuery() , sing ngasilake ResultSet, metode iki ngasilake integer sing ngandhani pirang-pirang baris ing tabel sing diganti nalika pitakon sampeyan dieksekusi .

Contone, sampeyan bisa mbusak kabeh larik kanthi DELETE FROM statement karyawan (dadi ati-ati banget). Ing kasus iki, cara executeUpdate () bakal ngasilake jumlah baris sing wis dibusak. Ing sawetara kahanan, ngerti jumlah baris sing diganti bisa migunani kanggo mbangun algoritma kanggo nggarap data.

Ing asas, kita bisa ngrampungake pitakonan iki - kita wis weruh bab utama. Kanggo njupuk data - executeQuery() . Kanggo ngganti data - executeUpdate() .

Entuk jumlah pangguna ing tabel pangguna nggunakake metode executeQuery() :


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

executeUpdate()

Metode executeUpdate () digunakake nalika pitakon sampeyan ngganti soko ing tabel. Bisa uga apa wae:

  • statement UPDATE
  • INSERT statement
  • DELETE statement
  • TELPON PROSEDUR statement

Cara iki ngasilake jumlah baris sing diganti (utawa dibusak).

Ayo nulis panjaluk sing bakal nambah gaji kabeh karyawan kanthi 1000 rubel.


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

Sawise aku mbukak kode iki, bali nomer 6 ing meja sandi 6 larik. Dadi kabeh garis wis diganti.

eksekusi()

Kadhangkala kahanan bisa kedadeyan ing urip sampeyan nalika sampeyan ora ngerti persis apa panjaluk sing kudu ditindakake - pilihan utawa owah-owahan data. Ing kasus iki, pencipta JDBC nambahake cara umum liyane - execute() .

Cara iki bisa digunakake ing panggonan executeQuery () lan executeUpdate () cara. Apa sampeyan kelingan kepiye cara-cara kasebut beda-beda? bener. Jinis asil. Mula, para pangripta JDBC nggawe solusi kasebut.

Metode eksekusi () ngasilake boolean. Yen nilai iki bener , banjur ana panjalukan njupuk data, lan sampeyan kudu nelpon getResultSet () cara kanggo njupuk data. Tuladha:


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

Yen nilai iki salah , banjur panjalukan pangowahan data lagi ditindakake, lan sampeyan kudu nelpon metode getUpdateCount () kanggo ngganti nomer baris. Tuladha:


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

Ayo nulis metode sing nampilake asil pitakon:


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

Iki carane eksekusi () cara biasane digunakake ing laku.