JavaでMySQLを利用する

  1. データベースの利用


    1. JavaからSQL

      MySQLはネットワークから、コマンドでデータベースを操作しますから、言語を利用してデータベースを利用することができそうです。

    2. ドライバ(JDBC)の組み込み

      ドライバは jar の形式で提供されます。http://www.mysql.com/downloads/api-jdbc.html からダウンロード可能です。解凍して得られる mysql-connector-java-2.0.14-bin.jar を組み込めば、MySQLが利用可能になります。
       組み込むには、path と同様、classpath に mysql-connector-java-2.0.14-bin.jar へのパスを設定します。
      jdkの場合、
       \Program files\Java|j2re1.4.2\lib\ext
      にも追加しておきます。

  2. データベースへのアクセス手順


    1. 接続

      まず、Class.forNameで、ドライバをロードします。次に、DriverManager.getConnection で、サーバーのホスト名、データベース名(ここでは myname)、利用者名、パスワードを指定して、サーバーに接続します。(ソースにpasswordを記述するのが問題)。
          try{
            Class.forName("com.mysql.jdbc.Driver");
            String strConn="jdbc:mysql://localhost/myname"+"?user=root&password=";
            Connection conn =DriverManager.getConnection(strConn);
            if (conn != null) System.out.println("connected");
            }
      ここで、
       mySQLサーバーが起動していること
       データベース(myname)が作成されていること
       root以外で利用者で接続する場合、利用者にアクセス権限が委譲(GRANT コマンド)されていること
      が必要です。

    2. 検索

       conn.createStatement でSQLの文を記録するインスタンスを作成し、これにmySQL用のコマンドを指定して、stmt.executeQuery で実行します。サーバーからの応答は ResultSet として取得できます。ここでは、
       SELECT * from person 
      で、テーブル person のすべての項目を取り出します。
      イテレータ rs.next でレコードを取り出し、rs.getInt や rs.getString で数字や文字列を取得します。
          try{
            Statement stmt=conn.createStatement();
            String strSql="SELECT * from person";
            ResultSet rs=stmt.executeQuery(strSql);
            while(rs.next()){
              System.out.println(rs.getInt("id")+":"+rs.getString("name"));
            }

    3. データの挿入、更新

      データを挿入するには 、次のように実行します
       strSql="INSERT INTO person(name) values ('kondo');
       stmt.executeUpdate(strSql) 
      id=5 のデータを更新の場合は
           strSql="UPDATE person SET name='saito' where id=5;
       stmt.executeUpdate(strSql)
      とします。

    4. 後処理

      処理が終了したら、close でオブジェクトを解放します。
       rs.close();
       stmt.close();
       conn.close();

  3. 参考書


    竹形:Java+MySQL+Tomcatで始めるサーバーアプリケーション開発入門 ;ラトルズ