LoginSignup
10
14

More than 5 years have passed since last update.

JDBCのお約束と書き方例

Last updated at Posted at 2018-05-30

JDBCはJavaのAPIで、データベース処理(SQL文)を行うことができる。
java.sql (コア:J2SE), javax.sql (標準拡張:J2EE)などがある。

以下、java.sqlを利用した例。

SQL文を決め打ちで実行して結果を表示する例

import java.sql.*;

public class クラス名 {
   public static void main(String args[])
      throws SQLException, ClassNotFoundException { //例外処理 エラーページ表示用

      String drv = "oracle.jdbc.OracleDriver"; // Oracle JDBC (Type4) を指定
      String url = "jdbc:oracle:thin:@localhost:1521:データベース名"; // データベースのurl

      Class.forName(drv); // ドライバーをロードする
      Connection con =  DriverManager.getConnection(url, ユーザ名, パスワード); //データベースに接続


      Statement stmt = con.createStatement(); //問い合わせの準備
      String qry = "SQL文 例えば SELECT * FROM テーブル名"; // クエリの準備
      ResultSet rs = stmt.executeQuery(qry); // SQL文を実行して結果をResultSetで受け取る


      // ResltSetのデータを1行ずつ所得
      while(rs.next()){ // next()メソッドで1行ずつ指定し、テーブルが終わるとfalseを返す。
         String 列名1 = rs.getString("列名1");
         Int 列名2 = rs.getInt("列名");
         System.out.println(列名1 + "\t" + 列名2); // 表示
      }

      // データベースとの接続をクローズ
      rs.close();
      stmt.close();
      con.close();
   }
}

入力を受け取ってSQLを実行する例

入力を受け取ってSQL文に挿入したい場合は、SQL文の準備などの表記が変わる。

import java.sql.*;

public class クラス名 {
   public static void main(String args[])
      throws SQLException, ClassNotFoundException { //例外処理 エラーページ表示用

      String drv = "oracle.jdbc.OracleDriver"; // Oracle JDBC (Type4) を指定
      String url = "jdbc:oracle:thin:@localhost:1521:データベース名"; // データベースのurl

      Class.forName(drv); // ドライバーをロードする
      Connection con =  DriverManager.getConnection(url, ユーザ名, パスワード); //データベースに接続


      String qry = "SQL文 例えば SELECT * FROM テーブル名 where 列名 = ? AND 列名 = ?";
                               // ?の部分に入力値が挿入される。左から1, 2 と番号で指定する。
      PreparedStatement ps = con.prepareStatement(qry); // 問い合わせの準備
      ps.setString(1, 入力1); // 1番目の?に入力を挿入。入力が文字列の場合。
      ps.setInt(2, 入力2); // 2番目の?に入力を挿入。入力が整数型の場合。
      ResultSet rs = ps.executeQuery(); // SQL文を実行して結果をResultSetで受け取る


      // ResltSetのデータを1行ずつ所得
      while(rs.next()){ // next()メソッドで1行ずつ指定し、テーブルが終わるとfalseを返す。
         String 列名1 = rs.getString("列名1");
         Int 列名2 = rs.getInt("列名");
         System.out.println(列名1 + "\t" + 列名2); // 表示
      }

      // データベースとの接続をクローズ
      rs.close();
      ps.close();
      con.close();
   }
}
10
14
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
14