Java / DB関連

【Java】Doma ~ 初期環境構築 / コード生成 / Hello World ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/37773041.html の続き。 Oracle DB / Doma2(Spring等のフレームワークなし) / Gradle のサンプルって 意外となくて、結構ハマった。 ■ 実行環境 * OS : Windows10 * Java : JDK1.8 * Eclipse Java EE IDE for…

【Java】DBアクセスライブラリ [0] ~ 目次 ~

■ Java の DBアクセスライブラリ 【A】 JPA以外 [A-1] EBean https://blogs.yahoo.co.jp/dk521123/36044963.html [A-2] Apache Commons DbUtils https://blogs.yahoo.co.jp/dk521123/34079202.html [A-3] Persist https://blogs.yahoo.co.jp/dk521123/360505…

【Java】DBアクセスライブラリ [5] ~ Doma ~

■ Doma * Doma : Domain Oriented MApping framework (ドメイン指向マッピングフレームワーク) * 読み方は、「ドマ」 * Javaの和製フレームワーク Seasar の O/Rマッパー S2Dao の後継として、開発。 => 現在は、Seasarプロジェクトとは、独立。 http://www.…

【Oracle】【Java】 Java で Oracle DB にアクセスする

■ 環境設定 JDBCドライブ * JDBCドライブ(今回は「ojdbc7.jar」)を以下のサイトから、 ダウンロードし、インポートする https://www.oracle.com/technetwork/database/features/jdbc/jdbc-drivers-12c-download-1958347.html テストデータ * 以下の関連記…

【Java】DB Connection Pool ~ HikariCP / 基本編 ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/37397210.html の続き。 ■ 使用上の注意 * HikariDataSource#close() は、システム終了後にコールすること ★ 重要 ★ * HikariDataSource#getConnection()から得たコネクションについては、使用後即 close() …

【Java】Java で 複数 INSERT を実行する

■ はじめに * Java で 複数 INSERT を実行することを考える => 色々な方法があるが、パフォーマンスがよく、実装しやすいものがいい ■ 実行環境 * OS : Windows10 * DB : MySQL5.7 ■ テストデータ CREATE TABLE `person` ( `id` BIGINT(20) NOT NULL AUTO_IN…

【Java】JDBC URLをJavaでパースする

■ はじめに JDBC URL(例えば「jdbc:mysql://localhost:3306/sampledb」)を、 ホスト、ポート、DB名などのようにパースしたい。 はじめ、以下の関連記事にある正規表現でパースすることを考えた。 https://blogs.yahoo.co.jp/dk521123/36604177.html しかし…

【Java】DB Connection Pool ~ HikariCP / 複数DB編 ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/37397210.html の続き。 今回は、複数DB「sampledb01」「sampledb02」「sampledb03」に アクセスできるようなサンプルを作成する。 補足 * Hibernate であれば、AbstractMultiTenantConnectionProviderが用意…

【Java】DB Connection Pool ~ HikariCP / 導入編 ~

■ 公式サイト http://brettwooldridge.github.io/HikariCP/ Requirements * Java 6 and above * slf4j library ■ 環境設定 * Gradle を使用 * 以下の関連記事の「準備 : Buildship: Eclipse Plug-ins for Gradle のインストール」を行い Gradle プロジェクト…

【Java】DB Connection Pool ~ Tomcat JDBC Connection Pool 編 ~

■ はじめに * DBのパフォーマンスチューニングのため、 Tomcat JDBC Connection Poolの使用を検討しているので まずは、Tomcat JDBC Connection PoolでJavaプログラムからMySQLに接続する http://symfoware.blog68.fc2.com/blog-entry-1364.html が参考にな…

【Java】 Java から、 DB作成 / 権限付与 / 外部SQLファイル文実行 を行う

開発環境 環境 * OS : Win10 * DB : MySQL * Java : Java1.8 事前条件 (1) ルート以外のユーザを事前に登録しておくこと # ユーザ「user1」パスワード「password1」でユーザ作成 CREATE USER user1 IDENTIFIED BY 'password1'; CREATE USER user1@localhost …

【Java】【MySQL】 Unique制約でエラーになった場合、リトライする

実装方法 https://dev.mysql.com/doc/refman/5.6/ja/error-messages-server.html エラー: 1062 SQLSTATE: 23000 (ER_DUP_ENTRY) メッセージ: '%s' はキー %d で重複しています このエラーメッセージで返されるメッセージでは、ER_DUP_ENTRY_WITH_KEY_NAME の…

【Java】 Apache Commons DbUtils で、List<String> を返すようにするには...

DbUtils で、List<String> を返すようにするには... * ColumnListHandlerを使用する。 ※ ColumnListHandler : Listの結果が欲しい場合に使用 サンプルデータ テーブル customer CREATE TABLE `customer` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT, `first_name` VA</string>…

【Java】 Apache Commons DbUtils でJoinしたデータを扱うには...

サンプル DBデータ(MySQL) CREATE TABLE `section` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT, `name` VARCHAR(100) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB; CREATE TABLE `employee` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT, `name` VARCHAR(…

【Java】 Apache Commons DbUtils を使いやすくすることを考える

はじめに http://blogs.yahoo.co.jp/dk521123/36044963.html http://blogs.yahoo.co.jp/dk521123/34079202.html http://blogs.yahoo.co.jp/dk521123/36050559.html http://blogs.yahoo.co.jp/dk521123/36053260.html などでORMを検討したが、その中で http:/…

【Java】DBアクセスライブラリ [4] ~ Iciql ~

■ Iciql * Java の O/Rマッパー 特徴 * DBからJavaコードを生成することができる 注意点 * Iciql として、 トランザクション機能なし ■ 自動生成 * DBからJavaコードを生成することができる 構文 java -Xbootclasspath/a:[JDBCドライバのパス] -jar [iciql.j…

【Java】DBアクセスライブラリ [3] ~ Persist ~

■ ダウンロード先 * 「persist-1.0.jar」をダウンロードしておくこと https://code.google.com/archive/p/persist/downloads ■ サンプル * MySQL を使用する * 以下からMySQL用のJDBCドライバ「mysql-connector-java-X.X.XX-bin.jar」をダウンロードし、 Ecl…

【Java】DBアクセスライブラリ [1] ~ Ebean ~

■ EBeanの特徴 * Play Framework で使用されているORマッパー http://blogs.yahoo.co.jp/dk521123/36084590.html * Play Framework上ではなく、単体で使用しているサンプルが以下のサイトに載っている => ただ今のバージョンだと使えるのか微妙な感じ(少な…

【Java】JOINした際に、ResultSet で、同一名の項目を扱う際に

JOINした際に、ResultSet で、同一名の項目を扱うには... * 項目に対して、「AS」を付けた方がいい。 SELECT w.id AS workerId, w.name AS workername, ... * めんどいかもしれないけど、以下のURLにもあるが、それ以外に区別できない。 http://atmarkit.co.…

【Java】DBアクセスライブラリ [2] ~Apache Commons DbUtils~

■ ダウンロード先 * commons-dbutils-X.X-bin.zip(ソースは「commons-dbutils-X.X-src.zip」)を落とす http://commons.apache.org/proper/commons-dbutils/download_dbutils.cgi Gradle compile 'org.dbunit:dbunit:2.5.4' ■ 設定 * 今回は、「commons-dbuti…

【SQL】PreparedStatementで、検索条件が複数あるが、項目がなかった場合、その項目を無視するには...

初めに 検索条件が複数あり、いずれの項目も必須でない場合、 項目が入力されているかどうかをチェックし、それに合わせてSQL 文の WHERE 句の内容を ツギハギすることがよくあると思う。 【例】 String sql = "SELECT * FROM Person"; if (id != null) { sq…

【PostgreSQL】【ストアド】 【Java】 PostgreSQL / Java で、様々なデータ型の設定するには

UUID サンプル PreparedStatement statement = connection.prepareStatement("SELECT * FROM Person WHERE id=?"); statement.setObject(1, java.util.UUID.randomUUID()); 参考文献 http://crafted-software.blogspot.jp/2013/03/uuid-values-from-jdbc-to-…

【Java】【PostgreSQL】PreparedStatement で SELECT/INSERT/UPDATE/DELETE を行う

準備 * 以下の関連記事を参照のこと http://blogs.yahoo.co.jp/dk521123/33317642.html サンプル SELECT文 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class Sampl…

【PostgreSQL】【Java】PostgreSQL / Java で INSERT/UPDATE/DELETE を行う

はじめに http://blogs.yahoo.co.jp/dk521123/33317642.html で、SELECT文はやったが、 INSERT/UPDATE/DELETE文はやってなかったのでやる => 結局、INSERT/UPDATE/DELETE文も、SQL文だけが変わるだけで、 同じように書ける (下記サンプルの「!! ここに注目 …

【PostgreSQL】【Java】Javaからストアドを呼び出す

【例1】単純なサンプル * まずは動くかどうか見てみる * 特にストアドを用意する必要なし Sample1PostgreSQLWithStored.java import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Types; publ…

【Java】【Eclipse】【PostgreSQL】JavaでPostgreSQLを使う

はじめに * Javaで、PostgreSQLを使うことになったので、サンプルを作ってみる 設定手順 [1] PostgreSQLを設定する 以下の関連記事を参照のこと(ついでに、テーブルやデータも以下の記事のものを使用する) http://blogs.yahoo.co.jp/dk521123/33153278.htm…

【Java】 SQLite を Java で利用する

前提条件 以下の関連記事を参考に、SQLiteとサンプルテーブルを作成しておく http://blogs.yahoo.co.jp/dk521123/33027330.html 設定 [1] 以下のサイトから、JDBCドライバーをダウンロードする (例えば、「sqlite-jdbc-3.7.2.jar」) https://bitbucket.org…

【Java】ACCESS を Java で利用する

設定 手順 ※事前にACCESSファイル(例「customerDB.mdb」)を用意しておく [1] [コントロールパネル]-[管理ツール]-[データソース(ODBC)]を選択 [2] [ユーザーDNS]で「追加」ボタン押下 [3] 「Microsoft Access Diver(.mdb)」を選択し、「完了」ボタン押下 [4]…