Hibernate簡單的儲存操作

來源:互聯網
上載者:User

標籤:

  1.這裡面我想先說一下session對象的建立,這個是我們操縱資料庫的核心對象,因此首先我們應該擷取相應的session對象。

public static Configuration cfg;    public static SessionFactory factory;    public static Session session = null;    static {        //用來讀取hibernate.cfg.xml的設定檔        cfg = new Configuration().configure();        //擷取工廠        factory = cfg.buildSessionFactory();        //建立對應的session對象        session = factory.openSession();    }

強調一下,這裡之所以都用static可以確保我們只產生一個session,而不會出現重複調用的情況。

2.接著就進行了儲存操作,試下了資料對象的儲存

public static void insertStudentSelection(String studentID,String teacherID){        session.beginTransaction();// 開啟事務        Studentselection st=new Studentselection(studentID,teacherID);        session.save(st);        session.getTransaction().commit();  //提交事務之後才能保證資料儲存成功        session.close();    }

這裡的開啟事務是必須的,應為如果我們沒有開啟事務和儲存事務的話,我們對應的資料庫儲存操作就會失敗,同時建立的session也應當在使用完成之後關閉,否則長期使用下去的話會造成串連池溢出等一系列問題,hibernate沒有想jdbc一樣有自動認可事務的功能,因此我們必須要進行手動的開啟和提交。

3.在進行對象提交的時候我出現了一個問題,就是Duplicate entry ‘abc‘ for key ‘PRIMARY‘錯誤,這個原因在與我插入的資料的主鍵與資料庫存在的資料重複,因此資料庫拒絕插入,下次遇到了就要注意。

4.同是我還對資料庫進行查詢操作

public static boolean select(Student stu) {        session.beginTransaction();// 開啟事務        Criteria cre = session.createCriteria(Student.class);        cre.add(Expression.eq("studentId", stu.getStudentId()));        cre.add(Expression.eq("password", stu.getPassword()));        List<Student> student = cre.list();        if (session.isOpen()) {//關閉事務            session.close();        }        // List<Student> student = session.createCriteria(Student.class).add(        // Example.create(stu)).list();        for (Student stu1 : student) {            System.out.println(stu1);        }        //當發現集合為空白的時候則證明為查詢到相應的資料        if (student.isEmpty()) {            return false;        } else {            return true;        }    }

 

通過list集合我可以擷取返回相應的對象集合,通過foreach語句進行迭代遍曆。

Hibernate簡單的儲存操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.