情報理工学部 情報システム工学科 ラシキアゼミ 3年 H106014 井奈波 和也 MySQL + JAVA 情報理工学部 情報システム工学科 ラシキアゼミ 3年 H106014 井奈波 和也
JDBCとは JDBCは、Javaとデータベースの接続のためのAPI。 JDBCは正式名称であって略称ではないが、Java Database Connectivityを略して名付けられたと考えられている。 ODBCをベースにサン・マイクロシステムズおよびDataDirect が共同で開発していると言われている。 SQLを使用して、データベース管理システム (DBMS) などと 接続する機能を標準化(抽象化)している。 ちなみに今回はここにjarファイルが置いてあるよ C:\Program Files\MySQL\mysql-connector-java-5.1.7\mysql- connector-java-5.1.7-bin.jar
JavaによるMySQL接続方法 プリント参照
PreparedStatementとStatement JDBCでは2つのクエリの実行方法がある Select文のwhere句に違いが 例) Statement Select * from Atable where ID = 1; 例) PreparedStatement Select * from Atable where ID = ?; ? = 1; ?はバインド変数という PreparedStatementで書いたほうが検索が早いと言われていま す
早い理由 データベースでは、SQL文(ここではSELECT, INSERT, DELETE, UPDATEに限定)を実行する際に、いくつかのステップを踏ん で処理を行います。 (1) SQL文の構文チェック、権限チェック (2) 検索方法の特定、コンパイル (3) データの検索、変更を実施 ここで、多くのデータベースでは効率化の為に(2)の結果と SQL文をキャッシュに保存します。以降、キャッシュに存在 するSQL文は検索方法が特定されているものとし、(2)を実施 することなく(3)の処理に移れる為、効率的に処理をすること が可能になります。 ただし、実行するSQL文がキャッシュに保存されているSQL 文にヒットする為には、文字列全体が「完全に一致する」必 要があります。
PreparedStatement 変更点 変数宣言 PreparedSatement ps = null; SELECT文の変更 String sql = “select * from dt_sample1 where ID = ?”; ここから少し違うよ ps = con.prepareStatement(sql); 第一引数は何番目の?か 第二引数は与える値(int, String) ps.setString(1,“1"); あとはResultSetをもらう ResultSet rs = ps.executeQuery();
Insert Update Delete Statement.executeQuery(sql) ↓ ↓ Statement. executeUpdate(sql); PreparedStatement.executeQuery(); PreparedStatement.executeUpdate();
ResultSet .next() カーソルを現在の位置から 1 行下に移動します。ResultSet のカーソルは、初 期状態では最初の行の前に位置付けられています。メソッド next の最初の 呼び出しによって、最初の行が現在の行になります。2 番目の呼び出しに よって 2 行目が現在の行になり、以降同様に続きます。 戻り値: 新しい現在の行が有効な場合は true、それ以上行がない場合は false .getString() この ResultSet オブジェクトの現在行にある指定された列の値を、Java プログ ラミング言語の String として取得します。 .getInt() この ResultSet オブジェクトの現在行にある指定された列の値を、Java プログ ラミング言語の int として取得します。
課題1 新しいテーブルを作成 カラムはnameとage nameはvarchar(10)のprimary key,ageはint(3) 初期値として適当に3人分くらい入れる それをjavaのプログラムで表示させる
課題2 課題1の応用 実行結果を見せるのでそれに沿ってプログラムを作成する