2-1.HibernateのSessionの保存や削除について

2020-10-25

こんにちは管理人(@vip___p)です。

今回はHibernateのSessionの取得から保存や削除について
簡単に触れていこうと思います。
備忘録です。

下記のような方は是非参考にしてください。

  • Hibernateの理解について浅い方
  • HibernateのSessionの取得方法

HibernateのExpressionの代わり

HibernateのcreateCriteriaの代案や苦労点について

Hibernate/cfg.xml/hbm.xml/propertiesの設定

HibernateのSessionの保存や削除について

Hibernate

Sessionについて触れていこうと思います。

Sessionの取得から始まり削除保存について触れていきます。

興味がある方は参考にしてください。

Sessionの取得方法について

Sessionを使用するには取得する必要があります。

まずはSessionの取得方法について記述しています。

Configuration config = new Configuration();
// 設定の読み込み
config = config.configure();
// セッションファクトリーの作成
SessionFactory sessions = cfg.buildSessionFactory();
// セッションオープン
Session session = sessions.openSession();

これでSessionが取得されます。

削除について

トランザクションがないとエラーが出るので注意してください。

DTO(永続クラス)に値をセット削除します。

それでは確認していきましょう。

Transaction tx = null;

       try {
            Configuration config = new Configuration();
            config = config.configure(); 
            SessionFactory sessions = cfg.buildSessionFactory();
            Session session = sessions.openSession();
            
            tx = session.beginTransaction();
            SampleDTO dto = new SampleDTO();
            // DTOに値をセット
            dto.setName("name")
            // 削除
            session.delete(dto);
            tx.commit();
        }
        catch (HibernateException he) {
            if (tx!=null) tx.rollback();
            throw he;
        }
        finally {
            session.close();
        }

保存について

続いては保存について確認していきます。

Transaction tx = null;

      try {
            
            Configuration config = new Configuration();
            config = config.configure(); 
            SessionFactory sessions = cfg.buildSessionFactory();
            Session session = sessions.openSession();
            
            tx = session.beginTransaction();
            SampleDTO dto = new SampleDTO();
            // DTOに値をセット
            dto.setName("name")
            // 保存
            session.save(dto);
            tx.commit();
        }
        catch (HibernateException he) {
            if (tx!=null) tx.rollback();
            throw he;
        }
        finally {
            session.close();
        }

まとめ

まとめ

今回のまとめです。

Sessionについて触れました。
削除と保存についてです。

Transactionを記述することを忘れないでください。
皆さんの参考になれば幸いです。