今天終于搞了個簡單的Hibernate的入門,這個Hibernate使用過程大概如下,DB建表->JavaBean->創建映射文件->Hibernate配置文件->編寫代碼。
建表和JavaBean就不說了,還是說說配置文件吧,下面是一個映射文件的標準配置文件(Standard.hbm.xml):
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <!--
4 所有的XML映射文件都需要定義如下所示的DOCTYPE。
5 Hibernate會先在它的類路徑(classpath)中搜索DTD文件
6 -->
7 <!DOCTYPE hibernate-mapping PUBLIC
8 "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
9 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
10
11 <!--
12 hibernate-mapping有如下可選屬性:
13 1.Schema 屬性指明了這個映射的表所在的schema名稱
14 2.default-cascade屬性指定了默認的級聯風格 可取值有none、save、update
15 3.auto-import屬性默認讓我們在查詢語言中可以使用非全限定的類名 可取值有true、false.
16 4.package屬性指定一個包前綴。
17 -->
18
19 <hibernate-mapping schema="schemaName" default-cascade="none"
20 auto-import="true" package="packageName">
21
22 <!-- 用class元素來定義一個持久化類 -->
23 <class name="People" table="person">
24 <!-- id元素定義了屬性到數據庫表主鍵字段的映射 -->
25 <id name="id">
26 <!-- 用來為持久化類的實例生成唯一的標識 -->
27 <generator class="navive" />
28 </id>
29
30 <!-- discriminator識別器 是一種定義繼承關系的映射方法 -->
31 <discriminator column="subclass" type="character" />
32
33 <!-- property 元素為類聲明了一個持久化的、JavaBean風格的屬性-->
34 <property name="name" type="String">
35 <column name="name" length="64" not-null="true" />
36 </property>
37
38 <property name="sex" not-null="true" update="false" />
39
40 <!-- 多對一映射關系 -->
41 <many-to-one name="friend" column="friend_id" update="false" />
42
43 <!-- 設置關聯關系 -->
44 <set name="friends" inverse="true" order-by="id">
45 <key column="friend_id" />
46 <!-- 一對多映射 -->
47 <one-to-many class="Cat" />
48 </set>
49
50 </class>
51
52 </hibernate-mapping>
53
Hibernate的配置文件分為兩種:一種為hibernate.cfg.xml,還有一種為hibernate.properties文件,下面分別給出標準配置
hibernate.cfg.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"http://Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 顯示執行的SQL語句 -->
<property name="show_sql">true</property>
<!-- 連接字符串 -->
<property name="connection.url">
jdbc:mysql://localhost3306/stu
</property>
<!-- 數據庫用戶名 -->
<property name="connection.username">root</property>
<!-- 數據庫用戶密碼 -->
<property name="connection.password">password</property>
<!-- 數據庫驅動-->
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<!-- 選擇使用的方言 -->
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<!-- 映射文件 -->
<mapping resource="com/stuman/domain/Admin.hbm.xml" />
<mapping resource="com/stuman/domain/Student.hbm.xml" />
</session-factory>
</hibernate-configuration>
hibernate.properties:
#指定數據庫使用的驅動類
hibernate.connection.driver_class=com.mysql.jbc.Driver r
#指定數據庫連接串
hibernate.connection.url=jdbc:mysql://localhost:3306/db
#指定數據庫連接的用戶名
hibernate.connection.username=username
#指定數據庫連接的密碼
hibernate.connection.password=password
#指定數據庫使用的方言
hibernate.dialect=net.sf.hibernate.dialect.MySQLDialect
#指定是否打印SQL語句
hibernate.show_sql=true/false
下面是一個測試類,HOHO
1 package Hibernate;
2
3 import org.hibernate.*;
4 import org.hibernate.cfg.*;
5
6 public class Test {
7 public static void main(String args[]) {
8 try {
9 //常見session工廠
10 SessionFactory sf=new Configuration().configure().buildSessionFactory();
11 //獲取session實例
12 Session session=sf.openSession();
13 //開始事務
14 Transaction tx=session.beginTransaction();
15 //創建一個User對象
16 User user=new User();
17 //為對象賦值
18 user.setUsername("Hibernate");
19 user.setPassword("123");
20 //調用save()方法保存user實例到DB
21 session.save(user);
22 tx.commit();
23 //關閉Session
24 session.close();
25 }catch (HibernateException e) {
26 e.printStackTrace();
27 }
28 }
29 }
30
MSN:
posted on 2007-12-17 21:20
kylixlu 閱讀(165)
評論(0) 編輯 收藏