3

短いバージョン: IDE やビルド ツールを使用せずに (たとえば、Eclipse や Maven を使用せずに) Hibernate をアプリケーションに組み込むにはどうすればよいですか?

長いバージョン:

Eclipse と Maven (およびそれらの同類) が違法な国に住んでいると想像してみましょう。政府は、私たち全員が vi でコードを書き、javac でコンパイルすることを命じました。Hibernate 4.2 をアプリケーションに組み込むにはどうすればよいでしょうか? クラスパスに必要な jar ファイルはどれですか? どの構成ファイルを作成する必要がありますか? (設定ファイルの名前で十分です。内容の説明は必要ありません。)

そのような一連の指示がまだ存在していなかったことに少し驚きました。すべてが Eclipse および/または Maven ユーザー向けに書かれています。

おお、hibernate-release-4.2.2.Final.gz のコピーが提供されました。

4

2 に答える 2

1

あなたが思うほどクレイジーではありません。はい、ここにいるすべての休止状態の人々は、休止状態の構成を容易にするためにSpringまたはMavenまたは非常に優れたツールを使用しているため、SOから回答を得るのは困難です。

これが私がしたことです。

すべてのライブラリをクラスパスにコピーしました。src フォルダーに hibernate.properties および hibernate.xml ファイルを作成しました。

プロパティファイルには

hibernate.connection.driver_class=com.mysql.jdbc.Driver
hsqldb.write_delay_millis=0
shutdown=true
hibernate.connection.pool_size=2
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect

Javaメインでは、mysqlサーバー、ユーザー名、およびパスワードをプログラムで指定できます( SOの助けがほとんどなく、この気の毒なことを機能させるのに2日かかったことに注意してください)。

synchronized (this) {
        if (sessionFactory == null) {
            try {
                String connection = "jdbc:mysql://"
                        + Globals.DBSERVER.trim()
                        + "/mCruiseOnServerDB?autoReconnect=true&failOverReadOnly=false&maxReconnects=10";
                log.debug("Connection URL "+connection) ;
                Configuration configuration = new Configuration();
                configuration
                        .setProperty("hibernate.connection.username", Globals.DB_USER_NAME.trim())
                        .setProperty("hibernate.connection.password", Globals.DB_PASSWORD.trim());
                configuration.configure();
                        sessionFactory = configuration
                                .buildSessionFactory(new ServiceRegistryBuilder()
                                .applySettings(configuration.getProperties()) 
                                .buildServiceRegistry());
                } catch (Exception e) {
                log.fatal("Unable to create SessionFactory for Hibernate");
                log.fatal(e.getMessage());
                log.fatal(e);
                e.printStackTrace();
                }
        }

        if (sessionFactory == null) {
            log.fatal("Hibernate not configured.");
            System.exit(0);
        }

XML ファイルには

<?xml version='1.0' encoding='UTF-8'?>
 <!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <!-- other mappings -->
        <mapping resource="com/mcruiseon/server/hibernate/UserDetails.hbm.xml" />
    </session-factory>
</hibernate-configuration>

これらの hbm.xml ファイルがフォルダー (src 内) com.mcruiseon.server.hibernate (場合によっては /carpool) にあることを確認してください。

同じフォルダーには、hbm ファイルに対応する POJO も必要です。変数名とまったく同じ db 列名を維持することをお勧めします(一部の愚かな人々がアドバイスすることに反して)。t_age代わりに使用するような名前を使用しageないでください (頭字語は使用しないでください)。

hbm ファイルの例

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- Generated 9 Jun, 2010 11:14:41 PM by Hibernate Tools 3.3.0.GA -->
<hibernate-mapping>
    <class name="com.mcruiseon.common.concrete.UserDetailsConcrete"
        table="userDetails">
        <id name="identityHash" type="java.lang.String">
            <column name="identityHash" />
            <generator class="assigned" />
        </id>
        <property name="fullName" type="java.lang.String">
            <column name="fullName" />
        </property>
        <!-- other property -->
    </class>
</hibernate-mapping>

com/mcruiseon/common/concrete フォルダーに UserDetailsConcrete を作成します。

すべての変数がプライベートであることを確認してください (identityHash、fullName など)。ゲッターとセッターがすべて公開されていることを確認してください。実際には自動生成します(Eclipseをお持ちの場合は申し訳ありません)。スペルミスや大文字小文字の間違いはいけません。コピペして確認。

あなたはそれを働かせる必要があります。

于 2013-05-23T18:49:39.507 に答える
1

簡単な回答: 単純な Java アプリケーションの場合、バージョンを使用している場合、3.3.2.GA必要なのはhibernate-coreクラスパスにあることだけです。java -cpメインメソッドを実行する前に適切な引数を使用すると、起動して実行できます。
他のすべての構成ファイルは、休止状態のボイラープレート チュートリアルです。
また、maven と ant は特効薬ではありません。どのファイルが必要かを魔法のように知ることはありません。すべての詳細は、それぞれ pom またはビルド ファイルに接続する必要があります。
HTH

于 2013-05-23T18:54:59.037 に答える