Java SQL はじめて ~オリジナル・データベースを作ろう~

Java SQL

javaでSQL、つまりはDB(データベース)に接続してテーブルを作ったり、データを登録したり。。。

早い話が、オリジナル・データベースを作ろうというわけです。

SQLってなに?

SQLはデータベース(DB)コントロールするためのプログラム言語です。大まかに下のような操作を行います。

  1. テーブル(表)の作成、変更、削除: CREATE,ALTER DROP
  2. データの操作: INSERT, SELECT, UPDDATE, DELETE

これだけです。細かい話をするともっとありますが、大まかにこのくらいです。

そして、実際に利用するときはポピュラーな用途として次のようなものがあります。

  • 顧客データ(ユーザーデータ)
  • 商品データ
  • ブログの記事データ

データベースというアプリケーションを使用して、様々なデータを保存、利用する事ができます。

例えばRPG

たまたま作成している学習用のプログラム、テキストRPGでもデータベースを使用します。
そのように作れば、どこでも使うことになるのですが。。。

RPGゲームを作るのに、アイテム、武器、防具などを、
手書きで。。。
ファイルに保存して。。。
それを読み込んで。。。

などとやっていてはいつまでたってもプログラムが完成しません。
もちろん、メモリをたくさん使用するので、アプリケーションとしても遅いものになります。

DBを使う

このデータベースというのは、保存したデータを関連付けることができるので重宝されています。
俗にいうリレーショナルデータベースというものです。最近はグラフDBなどのような新しいものもあり餡巣が、まずはリレーショナルデータベースの理解が先です。

こちらにDerbyというデータベースを使用したときの記事がありますので、よかったらどうぞ。

DBについて

基本情報の学習をしたときに記載した記事がありますので、こちらを参考にDBに関して記載したいと思います。

上記の記事は、基本情報技術者試験の学習なので、SQLに関しては記載しませんでしたが、この記事では記載します。

H2DataBase

このデータベースを使用します。簡単なのです。以前、Derbyというものを使用しましたが、結構手間なのでこちらを使用することにします。

H2DBをインストール

こちらのリンクが、H2DBのサイトになります。

英語ばかりですが、臆することはありません。赤枠の部分をクリックすればよいのです。

すると「h2-setup-2019-03-13.exe」というようなファイルがダウンロードできるはずですので、これを起動してインストールします。そして、以下の手順に従います。

  1. H2DBを起動する ※H2 Consoleという名前があるのでそれをクリック
  2. 下のような画面があるので、赤枠の部分にDBを作成するフォルダとファイル名を指定する

    ※「D:\Apps\H2\」のフォルダに「database.mv.db」ができます。

そして、ユーザー名などは指定していないので、未入力の状態にして「接続」をクリックします。

すると下のような、画面が見れますので、赤枠をクリックします。

すると下のようなSQLが生成されて、実行する事ができます。

DROP TABLE IF EXISTS TEST;
CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR(255));
INSERT INTO TEST VALUES(1, 'Hello');
INSERT INTO TEST VALUES(2, 'World');
SELECT * FROM TEST ORDER BY ID;
UPDATE TEST SET NAME='Hi' WHERE ID=1;
DELETE FROM TEST WHERE ID=2;

作成されたテーブルは、サンプルのテーブルです。とりあえず作成されたことを確認できますのでこれを実行します。

実行して、テーブルが作成されたことを確認したら、「切断」して初めの画面に戻ります。

JDBC接続

次は、Eclipseを起動して、プログラムを作成します。
Eclipseに関しては、設定、セットアップをこちらの記事に記載していますので、参照ください。

まずは、「H2dbManager」クラスを作成します。動画はクラスの作成方法を示したものです。

ポイント

DriverManager.getConnection("jdbc:h2:D:\\Apps\\H2\\database");

上記の「D:~」の部分は、H2DBに接続するときに書いているJDBCのURIになります。

「D:\Apps\H2\」のフォルダに「database.mv.db」ができます。

public class H2dbManager {
    /** このクラスのインスタンス */
    private static H2dbManager instance;
    /** DBコネクション */
    private Connection con;

    /**
     * プライベートコンストラクタ、H2DBのコネクションを取得する。
     * {@link H2dbManager#getInstance()}
     */
    private H2dbManager() {
        try {

            con = DriverManager.getConnection("jdbc:h2:D:\\Apps\\H2\\database");
            Statement stmt = con.createStatement();
            ResultSet result = stmt.executeQuery("select * from TEST;");
            result.next();
            String id = result.getString(1);
            String name = result.getString(2);
            System.out.println("ID: " + id + "Name: " + name);
        } catch (SQLException e) {
            e.printStackTrace();
            System.exit(-1);
        }
    }

    /**
     * このクラスのインスタンスを取得する。
     * @return H2dbManagerインスタンス
     */
    public static H2dbManager getInstance() {
        if (instance == null) {
            instance = new H2dbManager();
        }
        return instance;
    }
}

上のコードが書けたら、実行します。実行の仕方は、以下のようなメインメソッドを作成して実行すればOKです。

public static void main(String[] args) {
    H2dbManger main = H2dbManger.getInstance();
    main.executeQuery("select * from test;");
}

追伸、下のように使用するSQLで呼び出すメソッドが違います。

// SELECT文
main.executeQuery("select * from test;");

// INSERTやUPDATE文
main.executeUpdate("INSERT INTO MyTable(ID, NAME, VALUE) VALUES(1, 'test太郎', 12);");

// CREATE TABLEなどのCRUD以外のSQL ※CRUDのSQLも実行可能
main.execute(sql);

これでJavaでのDB接続は完了です。あとは、SQLを実行してデータの登録やらテーブルの作成やらやってみるのが面白いと思います。

でわでわ。。。

投稿者:

takunoji

音響、イベント会場設営業界からIT業界へ転身。現在はJava屋としてサラリーマンをやっている。自称ガテン系プログラマー(笑) Javaプログラミングを布教したい、ラスパイとJavaの相性が良いことに気が付く。 Spring framework, Struts, Seaser, Hibernate, Playframework, JavaEE6, JavaEE7などの現場経験あり。 SQL, VBA, PL/SQL, コマンドプロント, Shellなどもやります。

コメントを残す