10、HibernateTemplate原理

import org.hibernate.Session;
public class MyHibernateTemplate {

    public void executeWithNativeSession(MyHibernateCallback callback) {
        Session s = null;
        try {
            s = getSession();
            s.beginTransaction();
            // 要使用MyHibernateTemplate 對自定義的方法生成前后的模板,需要 對外發(fā)布一個接口MyHibernateCallback,并給調用方法一個 session,讓他自己去定義要實現的邏輯。
            callback.doInHibernate(s);
            s.getTransaction().commit();
        } catch (Exception e) {
            s.getTransaction().rollback();
        } finally {
            //...
        }
    }

    private Session getSession() {
        // TODO Auto-generated method stub
        return null;
    }
    
    public void save(final Object o) {
        new MyHibernateTemplate().executeWithNativeSession(new MyHibernateCallback() {
            public void doInHibernate(Session s) {
                s.save(o);
            }
        });
    }
  
    public static void main(String[] args) {
        new MyHibernateTemplate().executeWithNativeSession(new MyHibernateCallback() {
            public void doInHibernate(Session s) {
                s.save(null);
            }
        });
     }
}
import org.hibernate.Session;
public interface MyHibernateCallback {
    public void doInHibernate(Session s);
}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容