« O/Rマッピングツール | メイン | Cayenne(カイエン) »

database

activeobjects(アクティブオブジェクト)

現時点で最も簡単で比較的後発のO/Rマッピングツール。
https://activeobjects.dev.java.net/
javaの「アノテーション」を理解できれば、XML設定ファイルやGUI開発ツールEclipseにも依存しない。

確かに簡単。getter,setterメソッドを定義したinterfaceを作成してclasspathにactiveobjects-0.8.2.jarをとおすだけ。
主キーがないテーブルのマッピングは厄介?複合キーのテーブルを扱えない。
大きなデータ列を含むテーブルは工夫しないと大量のハッシュマップメモリを消費する(out of memoryで停止)。
動作遅い。

テーブル名.java
import net.java.ao.Entity;
public interface テーブル名 extends Entity{
	@PrimaryKey	←アノテーションで主キー指定
	public String get列名();
	public void set列名(String string);
		~
	@SQLType(Types.CLOB)	←アノテーションで型指定
		~
}
全件検索サンプル.java
import java.util.logging.Level;
import java.util.logging.Logger;
import net.java.ao.EntityManager;

public class 全件検索サンプル{
	public static void main( String[] args )throws Exception{
		EntityManager entityManager = new EntityManager(
			"jdbc:mysql://localhost/test", "root", "");
		Logger.getLogger("net.java.ao").setLevel(Level.FINE);

		entityManager.migrate( Person.class );
		テーブル名 table = entityManager.create( テーブル名.class );
		for( テーブル名 table : entityManager.find(テーブル.class) )
			System.out.println(table.get列名());
	}
}
追加サンプル.java
import java.util.logging.Level;
import java.util.logging.Logger;
import net.java.ao.EntityManager;

public class 追加サンプル{
	public static void main( String[] args )throws Exception{
		EntityManager entityManager = new EntityManager(
			"jdbc:mysql://localhost/test", "root", "");
		Logger.getLogger("net.java.ao").setLevel(Level.FINE);

		entityManager.migrate( Person.class );
		テーブル名 table = entityManager.create( テーブル名.class );
		table.set列名("データ");
			~
		table.save();
	}
}
削除サンプル.java 未確認
import java.util.logging.Level;
import java.util.logging.Logger;
import net.java.ao.EntityManager;

public class 削除サンプル{
	public static void main( String[] args )throws Exception{
		EntityManager entityManager = new EntityManager(
			"jdbc:mysql://localhost/test", "root", "");
		Logger.getLogger("net.java.ao").setLevel(Level.FINE);

		entityManager.migrate( Person.class );
		テーブル名 table = entityManager.get( テーブル名.class, 123 );
		table.delete( ? );
	}
}

トラックバック

このエントリーのトラックバックURL:
https://www.remix.asia/cgi/mt/mt-tb.cgi/6545

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)