情報処理とは何から、データベースの基本的な話(情報処理試験のデータベーススペシャリスト程度の話まで)を書く、土日のシリーズ「Hello World程度のデータベース」です。
このシリーズのはじめは、理論的なことを書いてきて、今は、実際にデータベースアクセスプログラムを書いてみましょう!ということになりました。
一連の手順はここに書いてあって、今回は、「DBアクセスプログラム」です。
■前提
前回作成したように、HelloDBデータベースに、KeyWordTBLが作成されていて、データが(前回示したように)入っているものとします。
JDBCのJarは、ここでしめしたように、ダウンロードしてきて、今回、javacでコンパイルするときや、javaで実行するときに、そのJDBCのパスが通っているものとします。
■ソース
で、JDBCのプログラムを書くわけですが、こんなかんじです。
package db; import java.sql.*; public class DbAccess { public String getVal(String keyword) { String kekka =""; // 返り値 Connection con = null; Statement stmt = null; try { // ドライバクラスをロード Class.forName("org.gjt.mm.mysql.Driver"); // MySQLの場合 // データベースへ接続 String url = "jdbc:mysql:///HelloDB?useUnicode=true&characterEncoding=utf8"; con = DriverManager.getConnection(url,"root","rootのパスワード"); // ステートメントオブジェクトを生成 stmt = con.createStatement(); // SQLの生成 String sql = "SELECT * FROM KeyWordTBL WHERE KEYWORD='" + keyword + "';"; // クエリーを実行して結果セットを取得 ResultSet rs = stmt.executeQuery(sql); // 検索結果を返す(1件だけ、見つかるはず) if ( rs.first() == true) { kekka = rs.getString("VAL"); } // あとしまつ stmt.close(); con.close(); } catch (Exception e) { e.printStackTrace(); } // 結果を返す return kekka; } } |
(上記< > ¥は、本当は半角)
いつもは抽象的に書いてありますが、今回は、必要最小限のものだけ書いています。
rootのパスワードのところは、実際のパスワードにしてください。
getValで、キーワードを渡すと(Hello)値Val(world)を返します。
■テスト
実際に値を返してくるかどうか、テストしてみましょう。
以下のプログラム
import db.*; public class Test { public static void main(String[] args) { DbAccess db = new DbAccess(); System.out.print(db.getVal("Hello")); } } |
(上記< > ¥は、本当は半角)
のように、getValの引数にHelloと渡して実行すると、Worldと、表示されます。