Hibernate第二天

今天是2018年9月17日

在浪費了很多時間之后……又回過頭來寫Hibernate的基礎(chǔ)內(nèi)容,加上今天學(xué)校的課很多,所以只能用了一些課堂的時間來寫一下之前的內(nèi)容。

整個框架的搭建

搭建一個Hibernate框架的開發(fā)環(huán)境在上一篇已經(jīng)說過了,其中包括:
1.創(chuàng)建*.hbm.xml文件描述有關(guān)連接數(shù)據(jù)庫的底層內(nèi)容
  • connection.username:數(shù)據(jù)庫用戶名
  • connection.password:數(shù)據(jù)庫密碼
  • connection.diriver_class:數(shù)據(jù)庫的驅(qū)動(對應(yīng)jdbc中的映射方式獲取類驅(qū)動)
  • connection.url:描述數(shù)據(jù)庫的主機號端口號以及庫名稱,其中localhost:3306可以簡寫成單斜杠/
  • dialect:數(shù)據(jù)庫方言,我注意到在org.hibernate.dialect.*中很多各種版本的數(shù)據(jù)庫方言,但事實上目前為止我的使用中都只允許使用MySQL5InnoDBDialect這個類文件
  • hibernate.show_sql:數(shù)據(jù)庫語句的顯示信息,我們通常是指為True以在控制臺輸出Hibernate框架為我們生成的sql 語句。
  • hibernate.format_sql:與上者相似,設(shè)置為 True后可以使控制臺輸出的內(nèi)容具有規(guī)定的格式。
  • hbm2ddl.auto:該屬性常用的有create,update兩種,對應(yīng)每一次執(zhí)行時對表的修改操作,前者會刪除已有的表重新創(chuàng)建,后者在已有的基礎(chǔ)上增加新的內(nèi)容。(其中也包括了列)
2.編寫實體類,與javaBeans的基本思想無異,不做過多的贅述
3.創(chuàng)建*.cfg.xml文件完成實體類的映射,此處也是對于Hibernate秒描述中“映射”二字的詮釋。需要注意的是,在生成了這個文件之后,需要在*.hbm.xml文件中添加對應(yīng)的映射標(biāo)簽
<mapping resource="Students.hbm.xml"/>
4.編寫測試類用于測試
......導(dǎo)入相關(guān)的包
public class JunitTest {
    //預(yù)先定義需要使用的類對象
    SessionFactory sessionFactory=null;
    Session session=null;
    Transaction transaction=null;
    
    @Before
    public void init() {
        //1.生成配置文件
        Configuration config=new Configuration().configure();
        //注冊服務(wù)
        ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
        //創(chuàng)建會話工廠
        sessionFactory=config.buildSessionFactory(serviceRegistry);
        //開啟會話
        session=sessionFactory.openSession();
        //開啟事務(wù)
        transaction=session.beginTransaction();
    }
    
    @Test
    public void test() {
            iStudents s=new Students("0001","小明","男",new Date());
                        session.save(s);
            }
    }
    
//關(guān)閉連接
    @After
    public void destory() {
        transaction.commit();
        session.close();
        sessionFactory.close();
    }
}

5.這樣就完成了一個基本的使用Hibernate框架對表進行操作了。然而如果對數(shù)據(jù)庫不能進行基本的增刪改查,似乎并不能解決什么實際問題。

增刪改查操作

之前已經(jīng)寫過增刪改查主要使用的是save(),delete(),update(),get()/load()方法,這里需要將的是查,也就是get()/load()
之前在視頻中老師只是講解了一個查詢單條記錄的操作方法,而我們往往要查詢更多的記錄,因此我們需要使用到Hql來完成指定的查找。
String hql="from Students";
List<Students> students=session.createQuery(hql).list();
for (Students s : students) {
    System.out.println(s.toString());
}
如上就使用hql完成了多記錄查詢,因為我重寫了Students.toString()這個方法,可以看到如下圖運行結(jié)果。
結(jié)果
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容