117

Derby や Sqlite などの軽量データベースにデータを格納したい単一ユーザーの Java プログラムがあります。プログラムでデータ抽象化レイヤーを使用したいと考えています。Hibernate には多くの設定が必要なようで、私が必要としているものにはやり過ぎです。Hibernate の軽量な代替手段は何ですか?

4

14 に答える 14

141

注釈を使用する場合、Hibernate にはほぼゼロの構成が必要です。クラスパスでマップされた Bean を自動検出することもできます! シンプルさとパワーの両方の観点から、それに代わるものはありません。

また、JPAとして公開することもできます。これは(IMHO)さらに単純です。

于 2008-11-17T22:45:06.447 に答える
58

私のORMLiteライブラリは、そのような代替手段の 1 つです。MySQL、Postgres、Microsoft SQL Server、H2、Derby、HSQLDB、および Sqlite をサポートし、他のものに簡単に拡張できます。アノテーションを使用してクラスを構成し、優れた Spring サポート、柔軟なクエリ ビルダーなどを使用します。

于 2010-06-25T18:02:34.660 に答える
31

それでもXML構成が必要ですが、MyBatis(以前のiBatis)を見てください。

于 2008-11-17T19:53:43.157 に答える
23

jOOQには、Java で SQL を直接シミュレートする流暢な DSL が付属しており、主な目的は次のとおりです。

  • ソースコード生成
  • UNION、ネストされた SELECT、すべてのタイプの JOIN、エイリアシング (自己結合など) などの SQL 言語機能を含む、標準 SQL の完全なサポート
  • UDT、ストアド プロシージャ、ベンダー固有の関数などを含む非標準 SQL の幅広いサポート。

この記事で jOOQ について読む: http://java.dzone.com/announcements/simple-and-intuitive-approach、または Web サイトに直接アクセスする: http://www.jooq.org

(免責事項、私はjOOQの背後にある会社で働いています)

于 2010-12-23T20:14:09.453 に答える
15

Apache Commons DBUtilsは、JDBC プログラミングから反復的な単調な作業の多くを取り除きます。構成はほとんど必要なく、習得も簡単です。これは ORM フレームワークではありませんが (Hibernate やその他のフレームワークがここで言及されているように)、SELECT 列の Java メンバー フィールドへのマッピングや、その他の反復的な JDBC プログラミング タスクを自動化します。確かに軽いです。

于 2009-01-16T20:22:37.520 に答える
12

Ebean ORMをご覧ください。- セッションなし - 遅延読み込みのみが機能します - 使用および学習が簡単な API。

于 2009-11-12T04:37:53.060 に答える
9

カイエンは私によく役立っています。比較的簡単に理解し、実行に移すことができます。リバース エンジニアリングの部分が特に魅力的だと思います。設定は GUI で行うことができます。

于 2008-11-17T20:36:08.533 に答える
6

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);;
于 2011-01-11T09:20:46.693 に答える
3

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

于 2011-08-03T18:00:29.117 に答える
3

私はパーティーに少し遅れているかもしれませんが、 2010 年にActiveJDBCをリリースしまし た。これは ActiveRecord パターンの ORM 実装であり、依存関係において Hibernate よりも 10 倍以上軽く、実行時は少なくとも 2倍速く、構成は不要です。または注釈。

于 2012-04-07T21:32:19.457 に答える
1

prevayler (sourceforge) を参照してください。永続化へのやや軽量なアプローチ。それとも、DB に対してレポートを作成することを考えていましたか?

于 2008-11-17T20:37:51.197 に答える
1

私は重いORM の代替としてsormulaを作成しました。CRUD 対応で、POJO に対応しており、使用、構成、理解が簡単です。ゼロ構成での使用が可能です。www.sormula.org

于 2011-12-10T15:02:45.673 に答える
1

リレーショナル データベースの使用が必須でない場合は、db4o を試してみてください。

于 2011-02-16T12:35:37.133 に答える
-2

Kiteframework も非常に軽量なフレームワークです。最小限の構成でほぼすべてのデータベース操作を提供します。

http://deipakgarg.github.com/Kite-ORM/

開示:私はこのプロジェクトの作者です

于 2012-11-19T18:30:37.273 に答える