1. 程式人生 > >學習Hibernate的第一部分(筆者一共會寫四部分)

學習Hibernate的第一部分(筆者一共會寫四部分)

  今天開始學習SSH框架,雖然在網上看到有人評論說SSH不火了,學習SSM吧。 但是,我這個人比較老實(哈哈哈)  先從SSH開始吧(一起學習,一起努力)

  1、今天學習了Hibernate的環境配置(我不知道為什麼那些網上下載jar包什麼的還需要CSDN積分(很煩).......)

      先分享一下在後來我們需要用到的東西(網上找的)    其中作者只用到了裡邊的jar包 如果對下邊部落格內容有什麼問題的可以發訊息或者私聊我,我會回覆的。

      連結: https://pan.baidu.com/s/1QmLyMyFAVpNI0pwqBtQbrg

提取碼: ww3k

開始今天的學習之路吧

--------------------------------------------------------------------------

首先,我們要知道兩個xml檔案的配置

第一個是: 類名+hbm+.xml 這個xml檔案應該放在與你要實現的那個類同一目錄下

    比如(Customer與Customer.hbm.xml是同一目錄下)

(1)Customer.hbm.xml檔案下的內容是用來與資料庫中的資訊進行配對的(我在下面貼上Customer的程式碼)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2
<!DOCTYPE hibernate-mapping PUBLIC 3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 4 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 5 <hibernate-mapping> 6 <!-- 建立類與表的對映 --> 7 <class name="Nuc.Test.Customer" table="cst_customer"> 8 <!-- id標籤建立類中的屬性與表中的主鍵對應 --> 9
<id name="cust_id" column="cust_id"> 10 <generator class="native"/> <!-- 主鍵生成策略 --> 11 </id> 12 13 <!-- 建立類中的普通屬性和表的欄位的對應 --> 14 <property name="cust_name" column="cust_name"></property> 15 <property name="cust_source" column="cust_source"></property> 16 <property name="cust_industry" column="cust_industry"></property> 17 <property name="cust_level" column="cust_level"></property> 18 <property name="cust_phone" column="cust_phone"></property> 19 <property name="cust_mobile" column="cust_mobile"></property> 20 21 </class> 22 </hibernate-mapping>
Customer.hbm.xml

 在上邊Customer.hbm.xml的檔案配置中我們需要用到約束(我在下邊以圖片的形式展出<有點簡陋>)

------->

----->----->

在這裡邊你就找到你的約束了

 

(2)下邊我們來介紹hibernate.cfg.xml檔案,在這個檔案我們也用到了約束,只不過我們這次用的是下邊這個檔案下的

cfg與configuration對應(與上邊給出的一樣)

 這個檔案是對資料庫中的url,username,password進行配置的

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE hibernate-configuration PUBLIC
 3     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 4     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
 5 <hibernate-configuration>
 6     <session-factory>
 7         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
 8         <property name="hibernate.connection.url">jdbc:mysql:///hibernate_day01</property>
 9         <property name="hibernate.connection.username">root</property>
10         <property name="hibernate.connection.password">123456</property>
11         <!-- 第二部分: 配置hibernate資訊  可選的-->
12         <!-- 輸出底層sql語句 -->
13         <property name="hibernate.show_sql">true</property>
14         <!-- 輸出底層sql語句格式 -->
15         <property name="hibernate.format_sql">true</property>
16         <!-- hibernate幫建立表,需要配置之後 
17             update: 如果已經有表,更新,如果沒有,建立
18         -->
19         <property name="hibernate.hbm2ddl.auto">update</property>
20         <!-- 配置資料庫方言
21             在mysql裡面實現分頁 關鍵字 limit,只能使用mysql裡面
22             在oracle資料庫,實現分頁rownum
23             讓hibernate框架識別不同資料庫的自己特有的語句
24          -->
25         <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
26         
27         <mapping resource="Nuc/Test/Customer.hbm.xml"/>
28         
29     </session-factory>
30 </hibernate-configuration>
hibernate.cfg.xml

在寫完這兩個xml檔案之後,我們就可以開始寫我們的程式碼了

(3)我們可以開始寫我們的HibernateDemo1類了  下邊附上程式碼(程式碼裡邊有解釋)

 1 package Nuc.Test;
 2 
 3 import org.hibernate.Session;
 4 import org.hibernate.SessionFactory;
 5 import org.hibernate.Transaction;
 6 import org.hibernate.cfg.Configuration;
 7 import org.junit.Test;
 8 
 9 /*
10  * Hibernate的入門案例
11  * @autor zsz
12  * */
13 public class HibernateDemo1 {
14     @Test
15     //儲存客戶的案例
16     public void demo1(){
17         //1.載入Hibernate的核心配置檔案
18         Configuration configuration = new Configuration().configure();
19         
20         //2.建立SessionFactory物件,類似JDBC中的連線池
21         SessionFactory sessionFactory = configuration.buildSessionFactory();
22         
23         //3.通過SessionFactory獲取Session物件,獲取JDBC中的Connection
24         Session session = sessionFactory.openSession();
25         
26         //4.手動開啟事務
27         Transaction transaction = session.beginTransaction();
28         
29         //5.編寫程式碼
30         
31         Customer customer = new Customer();
32         customer.setCust_name("張三");
33         
34         session.save(customer);
35         
36         //6.事務提交
37         transaction.commit();
38         
39         //7.資源釋放
40         session.close();
41     }
42 }
HibernateDemo1

  寫到這,已經晚上21.37了 今天開始學習的時間並不長,大概晚上8.30開始學習的(其中遇到好幾個BugQ=Q),不管怎麼說,自己收穫也很多

(4)說一下自己的Bug問題

     4.1、我在寫程式碼過程中比較著急,沒有把類中的屬性與資料中的匹配好

     4.2、還有在建立資料庫的時候主鍵如果是Int型別,一定要設定自動增加,一定要設定自動增加,一定要設定自動增加。

     4.3、寫的時候一定要仔細,仔細,仔細

(5)貼一下自己的專案圖片,這樣有助於大家理解(是不是在這裡邊還能發現我的學校(嘻嘻) 說不定是一個學校的哦)

 

//2018.11.24   博主會持續更新的。