posts - 66,comments - 41,trackbacks - 0
   今天终于搞了个简单的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)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: