Pengantar Pernyataan

Semua kueri SQL dapat dibagi secara kondisional menjadi dua kelompok:

  • Mengambil data – Ini termasuk pernyataan SELECT .
  • Memodifikasi data – Ini termasuk pernyataan INSERT , UPDATE , dan DELETE .

Untuk grup pertama, metode antarmuka Pernyataan yang sudah kita kenal digunakan - executionQuery() . Pada prinsipnya, metode ini cukup untuk memulai. Ini mencakup persentase kueri yang sangat besar yang perlu Anda gunakan dalam pekerjaan nyata.

Kami akan membahas lebih banyak opsi nanti, tetapi untuk saat ini, saya menyarankan Anda untuk mengingat - jika Anda hanya ingin mendapatkan data dari tabel, maka metode executionQuery ( ) dalam sebagian besar kasus akan menjadi pilihan yang tepat.

Untuk grup permintaan kedua, Anda perlu menggunakan metode lain dari antarmuka Pernyataan - executionUpdate() . Tidak seperti metode executionQuery() , yang mengembalikan ResultSet, metode ini mengembalikan bilangan bulat yang memberi tahu Anda berapa banyak baris dalam tabel yang diubah saat kueri Anda dieksekusi .

Misalnya, Anda dapat menghapus semua baris dengan pernyataan DELETE FROM employee (jadi berhati-hatilah). Dalam hal ini, metode executionUpdate() akan mengembalikan jumlah baris yang dihapus. Dalam beberapa situasi, mengetahui jumlah baris yang diubah dapat berguna untuk membuat algoritme untuk bekerja dengan data.

Pada prinsipnya, kami dapat menyelesaikan pertanyaan ini - kami telah melihat hal utama. Untuk pengambilan data - executionQuery() . Untuk mengubah data - executionUpdate() .

Dapatkan jumlah pengguna di tabel pengguna menggunakan metode executionQuery() :


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

jalankan Pembaruan()

Metode executionUpdate() digunakan saat kueri Anda mengubah sesuatu dalam tabel. Itu bisa apa saja:

  • pernyataan PEMBARUAN
  • pernyataan INSERT
  • pernyataan HAPUS
  • Pernyataan PROSEDUR PANGGILAN

Metode ini mengembalikan jumlah baris yang diubah (atau dihapus).

Mari tulis permintaan yang akan menaikkan gaji semua karyawan kita sebesar 1.000 rubel.


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

Setelah saya menjalankan kode ini, ia mengembalikan angka 6 di meja saya.Meja saya memiliki 6 baris. Jadi semua baris telah diubah.

menjalankan()

Terkadang situasi dapat muncul dalam hidup Anda ketika Anda tidak tahu persis permintaan apa yang harus Anda lakukan - pemilihan atau perubahan data. Dalam hal ini, pembuat JDBC menambahkan metode generik lain ke dalamnya - execution() .

Metode ini dapat digunakan sebagai pengganti metode executionQuery() dan executionUpdate() . Apakah Anda ingat bagaimana metode ini berbeda? Benar. Jenis hasil. Oleh karena itu, pembuat JDBC memberikan solusi seperti itu.

Metode eksekusi() mengembalikan boolean. Jika nilai ini true , maka permintaan pengambilan data sedang berlangsung, dan Anda perlu memanggil metode getResultSet() untuk mendapatkan data. Contoh:


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

Jika nilai ini false , maka permintaan perubahan data sedang berlangsung, dan Anda perlu memanggil metode getUpdateCount() untuk mengubah jumlah baris. Contoh:


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

Mari tulis metode yang menampilkan hasil kueri:


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

Ini adalah bagaimana metode execution() biasanya digunakan dalam praktik.