DerbyやSqliteなどの軽量データベースにデータを保存したいシングルユーザーJavaプログラムがあります。プログラムでデータ抽象化レイヤーを使用したいと思います。Hibernateは多くの設定を必要とするようで、私が必要としているものに対してはやりすぎです。Hibernateの軽量な代替品は何ですか?
DerbyやSqliteなどの軽量データベースにデータを保存したいシングルユーザーJavaプログラムがあります。プログラムでデータ抽象化レイヤーを使用したいと思います。Hibernateは多くの設定を必要とするようで、私が必要としているものに対してはやりすぎです。Hibernateの軽量な代替品は何ですか?
回答:
アノテーションを使用する場合、Hibernateではゼロに近い構成が必要です。クラスパスでマッピングされたBeanを自動検出することもできます!シンプルさとパワーの両方の観点から、それに代わるものはないと思います。
また、それ自体をJPAとして公開することもできます。
私のORMLiteライブラリはそのような代替手段の1つです。MySQL、Postgres、Microsoft SQL Server、H2、Derby、HSQLDB、およびSqliteをサポートし、他のユーザーに簡単に拡張できます。アノテーションを使用して、クラス、優れたSpringサポート、柔軟なクエリビルダーなどを構成します。
それでもXML構成が必要ですが、MyBatis(以前のiBatis)を見てください。
jOOQには、主な目的の副作用として、SQLをJavaで直接シミュレートする流暢なDSLが付属しています。
この記事でjOOQについて読む:http ://java.dzone.com/announcements/simple-and-intuitive-approach 、またはWebサイトに直接アクセス:http : //www.jooq.org
(免責事項、私はjOOQの背後にある会社で働いています)
Apache Commons DBUtilsは、JDBCプログラミングから繰り返しの大した手間を省きます。設定はほとんど必要なく、習得も簡単です。これはORMフレームワークではありません(Hibernateおよびここで説明する他のフレームワークのように)が、SELECT列のJavaメンバーフィールドへのマッピングや他の反復的なJDBCプログラミングタスクを自動化します。確かに軽量です。
Ebean ORMを見ることができます。-セッションなし-遅延読み込みは機能します-使用および学習するためのよりシンプルなAPI。
私はapache empire-dbを提案できます。http://incubator.apache.org/empire-db/
Apache Empire-dbは、オープンソースのリレーショナルデータ永続化コンポーネントであり、データベースベンダーに依存しない動的クエリ定義と、安全でシンプルなデータの取得および更新を可能にします。Hibernate、TopLink、iBATIS、JPA実装など、他のほとんどのソリューションと比較して、Empire-dbはコンパイル時の安全性に特に重点を置いて、かなり異なるアプローチを取ります、冗長性の削減、開発者の生産性の向上に。
例:
// Define the query
DBCommand cmd = db.createCommand();
DBColumnExpr EMPLOYEE_FULLNAME= db.EMPLOYEES.LASTNAME.append(", ")
.append(db.EMPLOYEES.FIRSTNAME).as("FULL_NAME");
// Select required columns
cmd.select(db.EMPLOYEES.EMPLOYEE_ID, EMPLOYEE_FULLNAME);
cmd.select(db.EMPLOYEES.GENDER, db.EMPLOYEES.PHONE_NUMBER);
cmd.select(db.DEPARTMENTS.NAME.as("DEPARTMENT"));
cmd.select(db.DEPARTMENTS.BUSINESS_UNIT);
// Set Joins
cmd.join(db.EMPLOYEES.DEPARTMENT_ID, db.DEPARTMENTS.DEPARTMENT_ID);
// Set contraints and order
cmd.where(EMP.LASTNAME.length().isGreaterThan(0));
cmd.orderBy(EMP.LASTNAME);;
ORMANフレームワークも優れています。https://github.com/ahmetalpbalkan/orman
ドキュメンテーション: https //github.com/ahmetalpbalkan/orman/wiki
比較:https : //github.com/ahmetalpbalkan/orman/wiki/Why-orman-is-better-than-other-orms-for-you%3F
私はパーティーに少し遅れるかもしれませんが、ActiveJDBC を2010年にリリースしました。これは、ActiveRecordパターンのORM実装であり、依存関係でHibernateよりも10倍以上軽量で、実行時に少なくとも2倍高速で、構成が不要です。または注釈。
(sourceforgeの)prevaylerを確認することをお勧めします。永続化へのやや軽量なアプローチ。または、DBに対してレポートを作成することを考えていましたか?
私はヘビー級のORMの代わりにsormulaを作成しました。CRUD対応、POJOフレンドリー、使用、設定、理解が簡単です。ゼロ構成の使用が可能です。www.sormula.org
Kiteframeworkも非常に軽いormフレームワークです。最小限の構成でほぼすべてのdb操作を提供します。
http://deipakgarg.github.com/Kite-ORM/
開示:私はこのプロジェクトの作成者です