Java SQL
javaでSQL、つまりはDB(データベース)に接続してテーブルを作ったり、データを登録したり。。。
早い話が、オリジナル・データベースを作ろうというわけです。
SQLってなに?
SQLはデータベース(DB)コントロールするためのプログラム言語です。大まかに下のような操作を行います。
- テーブル(表)の作成、変更、削除: CREATE,ALTER DROP
- データの操作: INSERT, SELECT, UPDDATE, DELETE
これだけです。細かい話をするともっとありますが、大まかにこのくらいです。
そして、実際に利用するときはポピュラーな用途として次のようなものがあります。
- 顧客データ(ユーザーデータ)
- 商品データ
- ブログの記事データ
データベースというアプリケーションを使用して、様々なデータを保存、利用する事ができます。
例えばRPG
たまたま作成している学習用のプログラム、テキストRPGでもデータベースを使用します。
そのように作れば、どこでも使うことになるのですが。。。
RPGゲームを作るのに、アイテム、武器、防具などを、
手書きで。。。
ファイルに保存して。。。
それを読み込んで。。。
などとやっていてはいつまでたってもプログラムが完成しません。
もちろん、メモリをたくさん使用するので、アプリケーションとしても遅いものになります。
DBを使う
このデータベースというのは、保存したデータを関連付けることができるので重宝されています。
俗にいうリレーショナルデータベースというものです。最近はグラフDBなどのような新しいものもあり餡巣が、まずはリレーショナルデータベースの理解が先です。
こちらにDerbyというデータベースを使用したときの記事がありますので、よかったらどうぞ。
DBについて
基本情報の学習をしたときに記載した記事がありますので、こちらを参考にDBに関して記載したいと思います。
上記の記事は、基本情報技術者試験の学習なので、SQLに関しては記載しませんでしたが、この記事では記載します。
H2DataBase
このデータベースを使用します。簡単なのです。以前、Derbyというものを使用しましたが、結構手間なのでこちらを使用することにします。
H2DBをインストール
こちらのリンクが、H2DBのサイトになります。
英語ばかりですが、臆することはありません。赤枠の部分をクリックすればよいのです。
すると「h2-setup-2019-03-13.exe」というようなファイルがダウンロードできるはずですので、これを起動してインストールします。そして、以下の手順に従います。
- H2DBを起動する ※H2 Consoleという名前があるのでそれをクリック
- 下のような画面があるので、赤枠の部分に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を実行してデータの登録やらテーブルの作成やらやってみるのが面白いと思います。
でわでわ。。。