35日目(MySQL3)
JDBC(Java DataBase Connectivity)
-Javaからデータベースを操作する際に、仲介してくれる感じ
Javaとデータベース連携の手順
- データベースの接続(Connectionオブジェクト)
- Connectionオブジェクトを通してSQL文を記述
- 接続を閉じる
JDBCドライバ
Oracle、PostgreSQL、MySQLと製品ごとにJDBCドライバがあるが、訓練ではMySQLのJDBCドライバを使用
データベースの接続方法
- DriverManager
- 接続プール
接続プールの利用が一般的
使い方
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"