0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Javaでデータベース連携---JDBCプログラム

Posted at

今回はJavaを用いてデータベースと連携する方法について勉強したのでまとめてみました。
以下は記述なんですけど、間違っている場合は教えてください。

まずは基本知識について説明します。

DBMS(データベース管理システム)

DBMS(database management system)とは、データをデータベースに管理するソフトウェアです。

SQL (Structured Query Language)

データベース内のデータを操作するには、DBMSに指示を出す必要があります。
そこでデータベース専用言語のSQLを使います。
SELECT文:レコードを検索
INSERT文:レコードを追加
UPDATE文:レコードを更新
DELETE文:レコードを削除

JDBCプログラム (Java Database Connectivity)

定義

JAVAプログラムでデータベースを利用するのは、プログラムからデータベースにSQL文を送信して、結果を取得します。
java.sqlパッケージに含まれているクラスやインタフェースで行います。
下表はjava.sqlパッケージの主なクラス・インタフェースです。

クラス・インタフェース 機能
Driver Manager DBMSへの接続準備を行う
Connection DBMSへの接続や切断を行う
PreparedStatement SQL文の送信を行う
ResultSet DBMSから検索結果を受け取る
SQLException データベースに関するエラー情報を提供する

また、データベースを操作するのに必要なクラスやインタフェース群のJDBCパッケージが必須です。
JDBCパッケージはjava.sqlパッケージのクラスやインタフェースを介して間接的に使用します。

このように、java.sqlパッケージとJDBCドライバを使って、データベースを利用するプログラムをJDBCプログラムと呼びます。

JDBCプログラムコード

例文

qiita.rb
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class SelectEmployess {
  public static void main(String[] args){
    //JDBCドライバを読み込む
    try {
      Class.forName("クラス名");
      
    }catch(ClassNotFoundException e){
      throw new IllegalStateException("JDBCドライバを読み込めませんでした");
    }
    
    //データベースに接続
    try(Connection conn = DriverManager.getConnection(接続先DB, ユーザ名, パスワード)){
      //SELECT文を準備
      String sql = "SELECT文";
      PreparedStatement pStmt = conn.prepareStatement(sql); //SQLをDBに届けるPreparedStatementインスタンスを取得する
      // SELECT文を実行し結果表ResultSetを取得
      ResultSet rs = pStmt.executeQuery(); // ResultSetインスタンスにSELECT文の結果が格納される
      //結果表に格納されたレコードの内容を表示
      while (rs.next()) {//結果表の取り出し対象レコードを一つ進める
    
      //取り出し対象レコードの各列の値を取得する
        String id = rs.getString("id");
        String name = rs.getString("name");
        int age = rs.getInt("age");
        
      //取得したデータを出力
        System.out.printIn(ID: + id);
        System.out.printIn(NAME: + name);
        System.out.printIn(AGE: + age);

        }
    }catch(SQLException e) {
      e.printStackTrace();//接続やSQL処理失敗時の処理
      
    }
 

}

実例

qiita.rb
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class SelectEmployess {
  public static void main(String[] args){
    //JDBCドライバを読み込む
    try {
      Class.forName("org.h2.Driver");
      
    }catch(ClassNotFoundException e){
      throw new IllegalStateException("JDBCドライバを読み込めませんでした");
    }
    
    //データベースに接続
    try(Connection conn = DriverManager.getConnection("jdbc:h2:tcp://localhost/~/example
", "sa", "123")){
     //SELECT文を準備
      String sql = "SELECT id, name, age FROM employees";
      PreparedStatement pStmt = conn.prepareStatement(sql); //SQLをDBに届けるPreparedStatementインスタンスを取得する
      //SELECT文を実行し結果表ResultSetを取得
      ResultSet rs = pStmt.executeQuery(); // ResultSetインスタンスにSELECT文の結果が格納される
      //結果表に格納されたレコードの内容を表示
      while (rs.next()) {//結果表の取り出し対象レコードを一つ進める
      //取り出し対象レコードの各列の値を取得する
        String id = rs.getString("id");
        String name = rs.getString("name");
        int age = rs.getInt("age");
        
        //取得したデータを出力
        System.out.printIn("ID:" + id);
        System.out.printIn("NAME:" + name);
        System.out.printIn("AGE:" + age);

        }
    }catch(SQLException e) {
      e.printStackTrace();//接続やSQL処理失敗時の処理
      
    }
 

}
0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?