2

変数 x、y、および z を持つ Java オブジェクトがあり、それを列 id、x、y、および z を持つ MySQL データベース テーブルに自動的にインポートしたいとします。それを達成できる簡単な方法はありますか、それとも個別のクラスごとに手動で行う必要がありますか?

ありがとう。

編集:「自動的に」では、次のようなことができるようになります:

some_instance.importIntoDB(database_table_name)

また

some_instance = extractFromDB(database_table_name, conditions);

明らかに、それはそれほど単純ではありませんが、オブジェクトのシリアライゼーションと同様に合理化され、Java オブジェクトを XML に変換して元に戻すものを探しています。

4

1 に答える 1

2

私自身の質問に答える、他の人はキーワードの答え以上のものに悩まされるにはあまりにも些細なことだと考えたので:

Java EEには、JavaオブジェクトをMySQLテーブルに直接リンクすることを具体的に処理するパッケージ(永続性)があります。

1.persistence.xmlを作成する

このアプローチのコアコンポーネントは、Java-MySQLマッピングに関連するさまざまなプロパティを指定するpersistence.xmlファイルを定義することです。通常、Java IDE(つまり、Netbeans、Eclipse)には、適切なpersistence.xmlの作成を処理するインターフェースがあります。

2.EntityManagerオブジェクト

Java EEのEntityManagerは、オブジェクトマッピングを処理するキーコントローラークラスです。それはによって生成することができます

EntityManager em = Persistence.createEntityManagerFactory(
        [PERSISTENCE_UNIT]).createEntityManager();

ここで、[PERSISTENCE_UNIT]は、(IDEインターフェイスを介して)「persistence.xml」ファイルを作成する際に指定された「永続ユニット名」です。

EntityManagerの使用例は、次の場所にあります: http ://docs.oracle.com/javaee/6/tutorial/doc/gijst.html

3.オブジェクトクラスをマークアップします

データベースにマップする必要のあるデータ型は、使用方法を指定するために、@で始まるアノテーションでマークアップする必要がありました。例は次のリンクにあります:http://hop2croft.wordpress.com/2011/07/06/jpa-basic-example-with-entitymanager-spring-and-maven/

注:このリンクの作成者は、MavenとSpringを使用しています。Netbeansが使用されている場合、ページのほとんどは無視でき、関連する部分は「Car」クラスを定義する部分(「public classCar」を検索するだけ)にあり、マークを付ける方法の教育的な例を提供します。クラスをアップします。

注2:作成者はSpringを使用しているため、@Transactionalなどの「Car.java」の外部に表示される多くのアノテーションは適用されない場合があります。

ユーザーがプロセスで遭遇する可能性のある問題の1つは、主キーの処理です。主キーは、多くの場合「自動インクリメント」に設定されます。このページでは、新しいオブジェクトインスタンスがデータベースに挿入される場合に、システムが主キーを自動的に処理する問題について説明します。http ://www.developerscrappad.com/408/java/java-ee/ejb3- jpa-3-ways-of-generation-primary-key-through-generatedvalue /

最後に、@ Entityマークアップを持つすべてのクラス/オブジェクトをpersistence.xmlに追加することをお勧めします。これを行わないと、ランタイムの問題が発生する可能性があります。

これが、私が今尋ねたのと同じ明らかに無知な質問をすることで反対票を投じられるかもしれない他の初心者に役立つことを願っています。

于 2012-08-09T21:16:43.133 に答える