■ 自動生成
* DBからJavaコードを生成することができる
構文
java -Xbootclasspath/a:[JDBCドライバのパス] -jar [iciql.jarのパス] -url jdbc:mysql://localhost:3306/[db名] -user [ユーザー名] -password [パスワード] -package [生成するモデルのパッケージ] -folder [モデルクラスを出力するディレクトリのパス>]
補足: エラー「opening registry key ...」が表示されてしまう
* 以下の関連記事を参照のこと。http://blogs.yahoo.co.jp/dk521123/36053386.html
■ ダウンロード
* 以下のサイトの配下からJARファイル(今回は「iciql-1.6.5.jar」)を取得できるhttps://github.com/gitblit/iciql-maven/tree/master/com/iciql/iciql
■ サンプル
* MySQL を使用する * 以下からMySQL用のJDBCドライバ「mysql-connector-java-X.X.XX-bin.jar」をダウンロードし、 Eclipseにインポートしておく事http://dev.mysql.com/downloads/connector/j/
サンプルデータ:MySQL
CREATE TABLE person ( id char(8) NOT NULL PRIMARY KEY, name varchar(100), sex char(1) ); INSERT INTO person( id, name, sex) VALUES ('X0000000', 'admin', 'm'), ('X0000001', 'Mike', 'm'), ('X0000002', 'Tom', 'm'); select * from person;
自動生成コード
出力結果は以下「Person.java(自動生成コード)」を参照のこと。java -Xbootclasspath/a:C:\workspace\Sample\jar\mysql-connector-java-5.1.38-bin.jar -jar C:\workspace\Sample\jar\iciql-1.6.5.jar -url jdbc:mysql://localhost:3306/sampledb -user root -password password -package com.sample.icql -folder C:\workspace
Javaソース
Person.java(自動生成コード)package com.sample.icql; import com.iciql.Iciql.IQColumn; import com.iciql.Iciql.IQIndex; import com.iciql.Iciql.IQIndexes; import com.iciql.Iciql.IQSchema; import com.iciql.Iciql.IQTable; import com.iciql.Iciql.IndexType; import java.io.Serializable; @IQTable(name="person") public class Person implements Serializable { private static final long serialVersionUID = 1L; @IQColumn(primaryKey=true, length=8, nullable=false) public String id; @IQColumn(length=100) public String name; @IQColumn(length=1) public String sex; public Person() { } }Main.java(呼び出し)
package com.sample.icql; import java.util.List; import com.iciql.Db; public class Main { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/sampledb?useSSL=false&useUnicode=true&characterEncoding=UTF-8"; String user = "root"; String password = "password"; try (Db db = Db.open(url, user, password);) { Person person = new Person(); List<Person> results = db .from(person) .where(person.sex) .is("m") .select(); for (Person result : results) { System.out.println(result.id + " : " + result.name + " " + result.sex); } } catch (Exception e) { e.printStackTrace(); } } }出力結果
X0000000 : admin m X0000001 : Mike m X0000002 : Tom m
参考文献
http://dev.classmethod.jp/server-side/java/iciql/http://qiita.com/k--kato/items/507e70561382a03e959b