ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Hello World程度のデータベース(その36:実践編 DBアクセスプログラム)

2007-09-09 21:44:10 | 土日シリーズ

情報処理とは何から、データベースの基本的な話(情報処理試験のデータベーススペシャリスト程度の話まで)を書く、土日のシリーズ「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と、表示されます。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

コンピューター言語は、トップダウンで2、3日で覚えないと、今や、やっていけない!

2007-09-09 14:34:21 | Weblog

 苫米地英人氏の「頭の回転が50倍速くなる脳の作り方」という本の中に、英語を覚えるのに、日本語と英語の抽象化をした脳を作って、その下に、日本語脳と英語脳をつくるという話があるけど、英語の場合はどうかわかんないけど、少なくとも、コンピューター言語の学習は、こうしないと間に合わないと思う。

 最近のシステム開発は、2ヶ月くらいで、自分の知らない言語で開発しないといけない場合もある。また、複数言語で開発しないといけないこともある(つい最近、ウィリアムのいたずらがやったお仕事で、ウィリアムのいたずらは、VBA,VC++,Java,JavaScriptを同時に使い、次のお仕事では、PHPだ ^^;)。

 こうなってくると、昔みたいに、1つの言語の習得に1ヶ月、2ヶ月もかけられない。
 2ヶ月かけたら言語を習得した時点で、開発期間が終わってしまう。

 では、ウィリアムのいたずらは、どうしているのかというと、コンピューター言語の体系を抽象的にとらえていて、その体系を、各言語にあわせて埋めているという感じで、使う。
 その抽象体系は、ふつうの言葉と結びついているので、普通の日常用語で考えれば、目的となる言語での表現はすぐに対応つけて、書けるというふうになっている。
 言語を覚えるといっても、その対応表を埋めるだけだから(頭の中で)たいしてかからない。

 まさに、そこで書かれているとおり。

 で、その体系というのは、どーいう形かというと、情報処理が情報を処理することから、情報の表現方法と、処理体系にわかれるんだけど、詳しい話は、シリーズだてて、話をしようかと思ってます(10月以降ですね。今回は、その予告みたいなもん)


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする