Apache Commons DBUtils - Menggunakan DataSource

Sejauh ini, kami telah menggunakan objek koneksi saat menggunakan QueryRunner. Kami juga dapat menggunakan sumber data dengan mudah. Contoh berikut akan menunjukkan cara membaca record menggunakan kueri Baca dengan bantuan QueryRunner dan sumber data. Kami akan membaca catatan dari Tabel Karyawan.

Sintaksis

QueryRunner queryRunner = new QueryRunner( dataSource );
Employee emp = queryRunner.query("SELECT * FROM employees WHERE first=?", resultHandler, "Sumit");

Dimana,

  • dataSource - Objek DataSource dikonfigurasi.

  • resultHandler - Objek ResultSetHandler untuk memetakan hasil yang disetel ke objek Karyawan.

  • queryRunner - Objek QueryRunner untuk membaca objek karyawan dari database.

Untuk memahami konsep yang disebutkan di atas terkait dengan DBUtils, mari kita tulis contoh yang akan menjalankan kueri baca. Untuk menulis contoh kita, mari kita buat aplikasi contoh.

Langkah Deskripsi
1 Perbarui file MainApp.java yang dibuat di bawah bab DBUtils - Aplikasi Pertama .
2 Kompilasi dan jalankan aplikasi seperti yang dijelaskan di bawah ini.

Berikut ini adalah konten dari Employee.java.

public class Employee {
   private int id;
   private int age;
   private String first;
   private String last;
   public int getId() {
      return id;
   }
   public void setId(int id) {
      this.id = id;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public String getFirst() {
      return first;
   }
   public void setFirst(String first) {
      this.first = first;
   }
   public String getLast() {
      return last;
   }
   public void setLast(String last) {
      this.last = last;
   }
}

Berikut ini adalah konten dari CustomDatasource.java.

import javax.sql.DataSource;
import org.apache.commons.dbcp2.BasicDataSource;

public class CustomDataSource {
   // JDBC driver name and database URL
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost:3306/emp";
   
   //  Database credentials
   static final String USER = "root";
   static final String PASS = "admin";
   private static DataSource datasource;
   private static final BasicDataSource basicDataSource;

   static {
      basicDataSource = new BasicDataSource();
      basicDataSource.setDriverClassName(JDBC_DRIVER);
      basicDataSource.setUsername(USER);
      basicDataSource.setPassword(PASS);
      basicDataSource.setUrl(DB_URL);
   }

   public static DataSource getInstance() {
      return basicDataSource;
   }
}

Berikut ini adalah konten dari MainApp.java mengajukan.

import java.sql.SQLException;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanHandler;

public class MainApp {
   public static void main(String[] args) throws SQLException {    
      
      DbUtils.loadDriver(JDBC_DRIVER);
      QueryRunner run = new QueryRunner(CustomDataSource.getInstance());
      ResultSetHandler<Employee> resultHandler = new BeanHandler<Employee>(Employee.class);

      Employee emp = queryRunner.query("SELECT * FROM employees WHERE id=?",
         resultHandler, 103);
      
      //Display values
      System.out.print("ID: " + emp.getId());
      System.out.print(", Age: " + emp.getAge());
      System.out.print(", First: " + emp.getFirst());
      System.out.println(", Last: " + emp.getLast());
   }
}

Setelah Anda selesai membuat file sumber, biarkan kami menjalankan aplikasinya. Jika semuanya baik-baik saja dengan aplikasi Anda, itu akan mencetak pesan berikut.

ID: 103, Age: 33, First: Sumit, Last: Mittal