MySQL_+_JAVA

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\mysqlconnector-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);

第一引数は何番目の?か

ps.setString(1,“1");

あとはResultSetをもらう

ResultSet rs = ps.executeQuery();
第二引数は与える値(int, String)
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の応用
実行結果を見せるのでそれに沿ってプログラムを作成する