Dbutils-first-application

提供:Dev Guides
移動先:案内検索

Apache Commons DBUtils-最初のアプリケーション

この章では、DBUtilsライブラリを使用して簡単なJDBCアプリケーションを作成する方法の例を示します。 これは、データベース接続を開き、SQLクエリを実行し、結果を表示する方法を示します。

このテンプレートの例に記載されているすべての手順は、このチュートリアルの後続の章で説明されます。

JDBCアプリケーションの作成

JDBCアプリケーションの構築には、次の6つの手順が含まれます-

  • パッケージのインポート-データベースプログラミングに必要なJDBCクラスを含むパッケージを含める必要があります。 ほとんどの場合、_import java.sql。* _を使用すれば十分です。
  • * JDBCドライバーの登録*-データベースとの通信チャネルを開くことができるように、ドライバーを初期化する必要があります。
  • 接続を開く-_DriverManager.getConnection()_メソッドを使用して、データベースとの物理接続を表すConnectionオブジェクトを作成する必要があります。
  • クエリの実行-SQLステートメントを構築してデータベースに送信するには、Statementタイプのオブジェクトを使用する必要があります。
  • 結果セットからデータを抽出-適切な_ResultSet.getXXX()_メソッドを使用して結果セットからデータを取得する必要があります。
  • 環境をクリーンアップ-JVMのガベージコレクションに依存するのではなく、すべてのデータベースリソースを明示的に閉じる必要があります。

サンプルコード

このサンプル例は、将来的に独自のJDBCアプリケーションを作成する必要がある場合に*テンプレート*として使用できます。

このサンプルコードは、前の章で行った環境とデータベースのセットアップに基づいて記述されています。

MainApp.javaに次の例をコピーして貼り付け、コンパイルして次のように実行します-

MainApp.java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

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

public class MainApp {
  //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";

   public static void main(String[] args) throws SQLException {
      Connection conn = null;
      QueryRunner queryRunner = new QueryRunner();

     //Step 1: Register JDBC driver
      DbUtils.loadDriver(JDBC_DRIVER);

     //Step 2: Open a connection
      System.out.println("Connecting to database...");
      conn = DriverManager.getConnection(DB_URL, USER, PASS);

     //Step 3: Create a ResultSet Handler to handle Employee Beans
      ResultSetHandler<Employee> resultHandler = new BeanHandler<Employee>(Employee.class);

      try {
         Employee emp = queryRunner.query(conn, "SELECT * FROM employees WHERE first=?",
            resultHandler, "Sumit");
        //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());
      } finally {
         DbUtils.close(conn);
      }
   }
}

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

今、私たちは次のように上記の例をコンパイルしましょう-

C:\>javac MainApp.java Employee.java
C:\>
*MainApp* を実行すると、次の結果が生成されます-
C:\>java MainApp
Connecting to database...
ID: 103, Age: 28, First: Sumit, Last: Mittal
C:\>