一个Hibernate程序的配置过程

第一步:准备hibernate.cfg.xml文件(也可以找到log4j.properties,它与Hibernate配置文件在同一个目录中),可以在源码中找个模板(路径为:hibernate-3.2.0.ga\hibernate-3.2\doc\tutorial\src\..)

第二步:准备表对象和映射文件(也就是类和相应的*.hbm.xml文件,在同一个包下),源代码中的模板路径为:\hibernate-3.2.0.ga\hibernate-3.2\doc\tutorial\src\events\..

第三步:准备程序入口即main函数,并导入需要用到的包,下面是一个精简的列表(只需要11个包):

 antlr.jar

 asm.jar

 cglib-2.1.3.jar

 commons-collections-2.1.1.jar

 commons-logging-1.0.4.jar

 dom4j-1.6.1.jar

 hibernate3.jar

 jta.jar

 junit-3.8.1.jar

 log4j-1.2.14.jar

 ojdbc14.jar

 

下面是一个例子的源代码:

 1,配置文件hibernate.cfg.xml

  1 <?xml version='1.0' encoding='utf-8'?>

 2  <! DOCTYPE hibernate-configuration PUBLIC
 3          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 4          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" >
 5 
 6  < hibernate-configuration >
 7 
 8       < session-factory >
 9 
10           <!--  Database connection settings  -->
11           < property  name ="connection.driver_class" > oracle.jdbc.driver.OracleDriver </ property >
12           < property  name ="connection.url" > jdbc:oracle:thin:@127.0.0.1:1521:orcl </ property >
13           < property  name ="connection.username" > scott </ property >
14           < property  name ="connection.password" > tiger </ property >
15 
16           <!--  SQL dialect  -->
17           < property  name ="dialect" > org.hibernate.dialect.Oracle9Dialect </ property >
18 
19           <!--  Enable Hibernate's automatic session context management  -->
20           < property  name ="current_session_context_class" > thread </ property >
21 
22           <!--  Echo all executed SQL to stdout  -->
23           < property  name ="show_sql" > true </ property >
24 
25           <!--  Drop and re-create the database schema on startup  -->
26           < property  name ="hbm2ddl.auto" > create </ property >
27 
28           < mapping  resource ="com/klein/Animal.hbm.xml" />
29 
30       </ session-factory >
31 
32  </ hibernate-configuration >

  log4j.properties

 1  ### direct log messages to stdout ###
 2  log4j.appender.stdout=org.apache.log4j.ConsoleAppender
 3  log4j.appender.stdout.Target=System.out
 4  log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
 5  log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
 6 
 7  ### direct messages to file hibernate.log ###
 8  #log4j.appender.file=org.apache.log4j.FileAppender
 9  #log4j.appender.file.File=hibernate.log
10  #log4j.appender.file.layout=org.apache.log4j.PatternLayout
11  #log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
12 
13  ### set log levels - for more verbose logging change 'info' to 'debug' ###
14 
15  log4j.rootLogger=warn, stdout
16 
17  log4j.logger.org.hibernate=info
18  #log4j.logger.org.hibernate=debug
19 
20  ### log HQL query parser activity
21  #log4j.logger.org.hibernate.hql.ast.AST=debug
22 
23  ### log just the SQL
24  #log4j.logger.org.hibernate.SQL=debug
25 
26  ### log JDBC bind parameters ###
27  log4j.logger.org.hibernate.type=info
28  #log4j.logger.org.hibernate.type=debug
29 
30  ### log schema export/update ###
31  log4j.logger.org.hibernate.tool.hbm2ddl=debug
32 
33  ### log HQL parse trees
34  #log4j.logger.org.hibernate.hql=debug
35 
36  ### log cache activity ###
37  #log4j.logger.org.hibernate.cache=debug
38 
39  ### log transaction activity
40  #log4j.logger.org.hibernate.transaction=debug
41 
42  ### log JDBC resource acquisition
43  #log4j.logger.org.hibernate.jdbc=debug
44 
45  ### enable the following line if you want to track down connection ###
46  ### leakages when using DriverManagerConnectionProvider ###
47  #log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace
48 

 

 2, 映射文件Animal.hbm.xml

  1 <?xml version="1.0"?>

 2  <! DOCTYPE hibernate-mapping PUBLIC
 3          "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 4          "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
 5 
 6  < hibernate-mapping >
 7       < class  name ="com.klein.Animal"  table ="t_animal" >
 8           < id  name ="id" >
 9               < generator  class ="native" />
10           </ id >
11           < property  name ="name" />
12       </ class >
13  </ hibernate-mapping >

 

 表对象Animal

  1 package com.klein;

 2 
 3  public   class  Animal {
 4       private   int  id;
 5 
 6       private  String name;
 7 
 8       public   int  getId() {
 9           return  id;
10      }
11 
12       public   void  setId( int  id) {
13           this .id  =  id;
14      }
15 
16       public  String getName() {
17           return  name;
18      }
19 
20       public   void  setName(String name) {
21           this .name  =  name;
22      }

 

 3, 程序入口

 1  package  com.klein;
 2 
 3  import  org.hibernate.Session;
 4  import  org.hibernate.SessionFactory;
 5  import  org.hibernate.Transaction;
 6  import  org.hibernate.cfg.Configuration;
 7  public   class  Client {
 8      
 9       public   static   void  main(String[] args) {
10          
11          Configuration configuration  =   new  Configuration().configure();
12          SessionFactory factory  =  configuration.buildSessionFactory();
13          Session session  =  factory.getCurrentSession();
14          
15          Transaction transaction  =  session.beginTransaction();
16          
17          Animal animal  =   new  Animal();
18          animal.setName( " Tiger " );
19          session.save(animal);
20          
21          transaction.commit();
22      }
23  }

 

 

 

你可能感兴趣的:(Hibernate)