職業訓練覚え書き

35日目(MySQL3)

JDBC(Java DataBase Connectivity)

 -Javaからデータベースを操作する際に、仲介してくれる感じ

 

Javaとデータベース連携の手順
  1. データベースの接続(Connectionオブジェクト)
  2. Connectionオブジェクトを通してSQL文を記述
  3. 接続を閉じる

 

JDBCドライバ

OraclePostgreSQLMySQLと製品ごとにJDBCドライバがあるが、訓練ではMySQLJDBCドライバを使用

 

 


データベースの接続方法
  • DriverManager
  • 接続プール

接続プールの利用が一般的

 

使い方

  1. mysql-connector-java….jarを、Tomcatのフォルダに配置
  2. Tomcatのファイルに接続用の記述

   server.xml

   context.xml

 

 

 

JavaでDB操作

 Connectionオブジェクトで接続

 

 getConnection()メソッド

 

 接続を閉じる
  -close()メソッド

 

 DB利用時の例外処理

 

 

JavaからSQL

PreparedStatementクラスを使う

 PreparedStatement stmt = con.prepareStatement(SQL文);

 

パラメータのセット

 set〇〇(パラメータの番号、 value)
 ※〇〇はObject、データ型など

 

SQL文の実行

 

検索(SELECT)★
 ResultSet result = stmt.excuteQuery();

 

更新(INSERT/UPDATE/DELETE)
 int count = stmt.executeUpdate();


★ResultSetのデータ取得メソッド

授業で使ったもの
 String型の値取得
  String getString(カラム名)

 

 Object型の値取得(NULLもありな数値カラムなど)
  Object getObject(カラム名)
  Integer age = (Integer) result.getObject("age");

 

テーブルの行ごとに、今あるデータを全部受け取ってブラウザに表示
 

 result.next();
  ※行ごとに指定

 

下準備としてデータのやり取りのためのクラス(JavaBeans)作成

 Tebleクラス

  • name
  • age

 のprivateフィールド、アクセッサがある

 

Table型のList

List<Table> tebles = new ArrayList<>();

 

while(result.next()){
   Table table = new table();

   teble.setName(result.getString("name"));
   table.setAge*1;

   tables.add(table);
}

 

JSPのためにスコープへ

 request.setAttribute("tables", tables);

 

フォワード

 request.getRequestDispatcher("/WEB-INF/views/tables.jsp")

 .forward(request, response);

 

JSPの記述

 <c:forEach>を使って表示

 

今日はここまで。

*1:Integer)result.getObject("age"