Javaでデータベースに繋ぐ(その1) たぶん基本のやりかた for MySQL/MariaDB
「その1」からちょっとだけ書き換えればOK!
「その1」だとDerbyを使うため、あまりメジャーとは言えません。
ということでMySQLだったらどうなるのでしょうか? ほとんど差はありません。
実際にコードを少しだけ書き換えてみます。
実行環境は、CentOS7でのMariaDB導入 簡易ガイドで作成しているHOGEDB(ユーザーhogeで接続)としています。
書き換えたのは2箇所だけ、わかるでしょうか?
/**
* データベース接続のサンプル(その1: Statement方式) MySQL版
*
* @author Sato Daisuke
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Sample1forMySQL {
public static void main(String[] args) throws SQLException {
// (1) 接続用のURIを用意する(必要に応じて認証指示user/passwordを付ける)
String uri = "jdbc:mysql://localhost/HOGEDB?user=hoge&password=hogehoge";
// (2) DriverManagerクラスのメソッドで接続する
Connection conn = DriverManager.getConnection(uri);
// (3) SQL送信用インスタンスの作成
Statement st = conn.createStatement();
// (4) SQL送信
st.executeUpdate("drop table if exists sample");
st.executeUpdate("create table sample(id integer primary key)");
Long start = System.currentTimeMillis();
Long delta = start;
// とりあえず5万回のループ
for (int i = 0; i < 10000; i++) {
st.executeUpdate("insert into sample values(" + i + ")");
// スプリットの計算
if (i % 1000 == 0) {
Long now = System.currentTimeMillis();
Long split = now - delta;
System.out.println("" + i + ": " + split + "ms.");
delta = now;
}
}
Long end = System.currentTimeMillis();
System.out.println("所要時間: " + (end - start) + "ms.");
// (5) 後始末(インスタンスの正常クローズ)
st.close();
conn.close();
}
}
書き換えた2ヶ所は、
- DBの接続文字列(uri)をMySQL向けに変更してます
- Derby版はメモリDBを使ったため、実行すると毎回初期化される仕組みになってますが、こちらはディスク上に入れてしまっているので、「もしあったら先にDROPする」コードをいれました(create table文の直前)。
実行の際の注意
当たり前ですが、MySQLのコネクターがないとエラーが出ます。
ダウンロードページから入手し、展開しておいてから、ライブラリー化しておくといいでしょう。
Author And Source
この問題について(Javaでデータベースに繋ぐ(その1) たぶん基本のやりかた for MySQL/MariaDB), 我々は、より多くの情報をここで見つけました https://qiita.com/fugahogeds/items/d5e9fd804eeac5905ed6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .