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隨機