通過Hibernate實現添加功能


package com.demo.dao;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.demo.Login;

public class LoginDAO {
    
    private Session session=null;
    private Transaction tran=null;
    
    public LoginDAO(){
        //創建Configuration對象
        Configuration config = new Configuration().configure();
        //創建Session工廠
        SessionFactory sessionFactory = config.buildSessionFactory();
        //得到Session對象
        session = sessionFactory.openSession();
    }
    
    public void save(Login login){
        try {
            //開啟事務
            tran=session.beginTransaction();
            //將傳遞進來的login對象存入數據庫
            session.save(login);
            //提交事務
            tran.commit();
            //提示信息
            System.out.println("用戶信息保存成功!");
        } catch (RuntimeException e) {
       //捕獲並處理異常
       if(null!=tran){tran.rollback;}
throw e; }finally{ //關閉Session對象 session.close(); } } }

  在這個類中用到了Session和Transaction對象,這里的Session對象是hibernate3.jar包中的Session對象,對數據庫的所有操作都要通過Session來完成。Transaction對象用來處理對數據庫操作的事務。

  在構造方法中實例化Session對象。實例化的過程是,首先找到Hibernate配置,然后從配置中取出SessionFactory,也就是Session工廠,最后從SessionFactory中取出Session。向login表中添加數據的save()方法是將Login類型的對象login作為形參傳入方法中。在對數據庫操作的時候有可能會拋出運行時異常,所有用try-catch結構來捕獲異常。然后進行login 表的添加操作。

  進行添加操作時,首先實例化Transaction對象,就是開啟事務。然后調用Session對象的save()方法,並將Login類型的對象傳入該方法。接下來就是調用事務對象的commit()方法提交到數據庫,並關閉Session對象。如果出現異常,就會將事務進行回滾。

  回顧實現添加的功能,總結一下在Hibernate中執行持久化操作的步驟:

  1> 讀取並解析配置文件:

  Configuration config = new Configuration().configure();

  2> 讀取並解析映射信息,創建SessionFactory:

  SessionFactory sessionFactory = config.buildSessionFactory();

  3> 打開Session:

  session = sessionFactory.openSession();

  4> 開啟事務(增,刪,改操作必須有,查詢操作可選):

  tran = session.beginTransaction();

  5> 持久化操作:

  session.save(login);

  6> 提交事務:

  tran.commit();

  7> 關閉Session:

  session.close();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM