1. 程式人生 > >java web的hibernate使用

java web的hibernate使用

1.怎麼匯入,下載上面的資源,匯入libs目錄下全部資源到相同目錄

這個不好描述,官網不能登入,找了好久才找到一個可以用的完整包,總之可以直接用,是hibernate5版本的。

2.幹嘛用

用於簡化資料庫操作,不然總要jdbc寫複雜sql

3.原理

就是通過配置實體類,操作hibernate時間接操作資料庫。

4.配置

說實話因為自學,配置檔案幹什麼用,怎麼用,放在哪個目錄的問題很頭痛,這裡講解一下:
hibernate.cfg.xml:配置sql驅動以及各個子配置檔案位置,我這裡用的mysql,各種驅動方式請自行百度。這個放在src的根目錄,不要放在包裡面,放在最外面。

xx.hbm.xml:用於配置實體類和資料表對映,這個可以任意,放哪裡都行,要和hibernate.cfg.xml配置的位置匹配。
hibernate.cfg.xml結構

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration> <session-factory> <property name="connection.username">root</property> <property name="connection.password">root</property> <property name="connection.url">jdbc:mysql://localhost:12001/jspdb</property> <property
name="connection.driver_class">
com.mysql.jdbc.Driver</property> <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property> <mapping resource="com/a/bean/News.hbm.xml" /> </session-factory> </hibernate-configuration>

username標籤內對應資料庫使用者名稱,password對應資料庫密碼,
url對應jdbc,這裡列舉部分:

Microsoft SQL Server

jdbc:microsoft:sqlserver://<server_name>:<port>

Microsoft SQL Server 2005

jdbc:sqlserver://<server_name>:<port>

Oracle

jdbc:oracle:thin:@//<host>:<port>/ServiceName

MySQL(預設埠3306):

jdbc:mysql://<host>:<port>/<database_name>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>

這兩句固定,不用配置

這個對應實體類對資料表的對映,簡單說就是有多少個表,這裡就要寫多少條,注意前面包名的格式要用斜線分開,不能用點。

<mapping resource="com/a/bean/News.hbm.xml" />

根據上面對映位置,此檔案放在com.a.bean.News.hbm.xml
News.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2017-3-6 16:03:59 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<!-- 對映到資料庫news表-->
    <class name="com.a.bean.News" table="news">
        <id name="id" type="int">
            <column name="id" />
            <generator class="native" />
        </id>
        <property name="title" type="java.lang.String">
            <column name="title" />
        </property>
        <property name="content" type="java.lang.String">
            <column name="content" />
        </property>
    </class>
</hibernate-mapping>

此處注意type,基本資料型別可直接寫,引用資料型別要寫全包名。name對應實體類的名稱,column的name對應資料表名稱,主鍵要寫native(跨資料庫)標註,也可設定為identity,如果oracle要設定為sequence。如不要自增,請設定為assigned或者uuid.hex,uuid.string隨機.

5.實體類

[email protected]標註主鍵
[email protected]標註主鍵get
3.註解要用javax註解不要用hibernate的
4.實際資料庫表要設定為主鍵時此欄位,並設定為自增
5.如不要自增,請設定為assigned或者uuid.hex,uuid.string隨機