manager.getTransaction().begin();「トランザクション」は、一連の処理を一括して実行するためのものです。特にデータの書き換えを要するような操作を行う際に利用します。例えば大勢がサイトにアクセスしている場合、データベースに同時に複数がアクセスするようなことだって考えられます。
new MyDataEntity("taro", "taro@yamada", "090-999-999")保存するエンティティを用意します。これは、newでエンティティクラスのインスタンスを作るだけです。MyDataEntityでは、名前、メールアドレス、電話番号の3つの引数を持つコンストラクタを用意していますので、これらを指定してインスタンスを作成します。
manager.persist(……エンティティ……);作成したエンティティは、EntityManagerの「persist」メソッドを使います。引数にエンティティを指定して呼び出すことで、エンティティが永続化(要するにデータベースにレコードとして保存)されます。ただし! トランザクションでは、すべての処理は一括して実行されるので、実はまだこの段階では保存はされていません。
manager.getTransaction().commit();すべての作業(ここではpersistによる保存)が終わったところで、トランザクションをコミットします。これは、EntityTransactionクラスの「commit」メソッドで行います。これにより、それまで実行されていた処理を一括して実行します。
manager.close();作業が終わったら、最後にエンティティマネージャを開放して作業終了です。トランザクションという枠を用意して、その中で処理をする、という考え方さえわかれば、そう難しいことではありません。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
@Override public void init() throws ServletException { super.init(); EntityManager manager = factory.createEntityManager(); try { manager.getTransaction().begin(); manager.persist( new MyDataEntity("taro", "taro@yamada", "090-999-999") ); manager.persist( new MyDataEntity("hanako", "hanako@flower", "080-888-888") ); manager.persist( new MyDataEntity("sachiko", "sachiko@happy", "070-777-777") ); manager.getTransaction().commit(); } finally { manager.close(); } }
<< 前へ | 次へ >> |