今天终于搞了个简单的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
"//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) 编辑 收藏