my first hibernate practice

博客介绍了使用hibernate 3.1 alpha1、mysql4.1和jdk1.5.0004搭建往数据库存储客户信息程序的方法。包含目录结构,列出所需库文件,展示客户实体类、映射文件、测试类和配置文件,还说明了在MySQL中建立数据库和表的操作。

hibernate 3.1 alpha1+mysql4.1+jdk1.5.0004

1.目录结构
+My1stHibernate
   --build.xml
   +lib
      所需要的库:asm.jar,cglib-2.1.1.jar,commons-collections-2.1.1.jar,commons-logging-1.0.4.jar,dom4j-1.6.jar,ehcache-1.1.jar,hibernate3.jar,jta.jar,log4j-1.2.9.jar,mysql-connector-java-3.1.10-bin.jar
   +src
      --Customer.java
      --Customer.hbm.xml
      --Test.java
      --hibernate.cfg.xml
      --log4j.properties
    
2. 一个往数据库中存储客户信息的简单程序
客户实体类
<Customer.java>

ExpandedBlockStart.gifContractedBlock.gifpublic class Customer dot.gif{
InBlock.gif    
private int id;
InBlock.gif    
private String username;
InBlock.gif    
private String password;
InBlock.gif    
InBlock.gif    
public int getId()
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
return id;
ExpandedSubBlockEnd.gif    }

InBlock.gif    
InBlock.gif    
public void setId(int id)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
this.id=id;
ExpandedSubBlockEnd.gif    }

InBlock.gif    
InBlock.gif    
public String getPassword()
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
return password;
ExpandedSubBlockEnd.gif    }

InBlock.gif    
InBlock.gif    
public void setPassword(String password)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
this.password=password;
ExpandedSubBlockEnd.gif    }

InBlock.gif    
InBlock.gif    
public String getUsername()
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
return username;
ExpandedSubBlockEnd.gif    }

InBlock.gif    
InBlock.gif    
public void setUsername(String username)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
this.username=username;
ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

客户实体类对应的Hibernate映射文件
<Customer.hbm.xml>

None.gif<?xml version="1.0"?>
None.gif
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
None.gif
<hibernate-mapping>
None.gif
<class name="Customer" table="CUSTOMER">
None.gif    
<id name="id" column="CID">
None.gif        
<generator class="increment"/>
None.gif    
</id>
None.gif    
<property name="username" column="USERNAME"/>
None.gif    
<property name="password" column="PASSWORD"/>
None.gif
</class>
None.gif
</hibernate-mapping>


测试类
<Test.java>

None.gifimport org.hibernate.*;
None.gifimport org.hibernate.cfg.
*;
None.gif
None.gif
public class Test
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif    
public static void main(String[] args)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
try
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            SessionFactory sf
=new Configuration().configure().buildSessionFactory();
InBlock.gif            Session session
=sf.openSession();
InBlock.gif            Transaction tx
=session.beginTransaction();
InBlock.gif            
for(int i=0; i<10; i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                Customer customer
=new Customer();
InBlock.gif                customer.setUsername(
"customer" + i);
InBlock.gif                customer.setPassword(
"customer");
InBlock.gif                session.save(customer);
ExpandedSubBlockEnd.gif            }

InBlock.gif            tx.commit();
InBlock.gif            session.close();
ExpandedSubBlockEnd.gif        }

InBlock.gif        
catch(HibernateException e)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            e.printStackTrace();
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

Hibernate的配置文件
<hibernate.cfg.xml>

None.gif<?xml version="1.0" encoding="utf-8" ?> 
None.gif
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"   
None.gif"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
>
None.gif
<hibernate-configuration>
None.gif    
<session-factory name="java:/hibernate/HibernateFactory"> 
None.gif        
<property name="show_sql">true</property> 
None.gif        
<property name="connection.driver_class">
None.gif            org.gjt.mm.mysql.Driver 
None.gif        
</property> 
None.gif        
<property name="connection.url">
None.gif            jdbc:mysql://localhost:3306/test
None.gif        
</property>  
None.gif        
<property name="connection.username">    
None.gif            root 
None.gif        
</property> 
None.gif        
<property name="connection.password">
None.gif            root  
None.gif        
</property>
None.gif        
<property name="dialect"> 
None.gif            org.hibernate.dialect.MySQLDialect 
None.gif        
</property>  
None.gif        
<mapping resource="Customer.hbm.xml" /> 
None.gif    
</session-factory> 
None.gif
</hibernate-configuration>


3. 建立数据库
在MySQL中建立一个名为test的数据库, 再在test中建一个表customer:

None.gifCREATE TABLE CUSTOMER
None.gif(
None.gif CID 
INTEGER NOT NULL PRIMARY KEY, USERNAME VARCHAR(12NOT NULL, PASSWORD VARCHAR(12
None.gif);

4. 还要增加一个文件
<log4j.properties>
None.gif### direct log messages to stdout ###
None.giflog4j.appender.stdout=org.apache.log4j.ConsoleAppender
None.giflog4j.appender.stdout.Target=System.out
None.giflog4j.appender.stdout.layout=org.apache.log4j.PatternLayout
None.giflog4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
None.gif
None.gif### direct messages to file hibernate.log ###
None.gif#log4j.appender.file=org.apache.log4j.FileAppender
None.gif#log4j.appender.file.File=hibernate.log
None.gif#log4j.appender.file.layout=org.apache.log4j.PatternLayout
None.gif#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
None.gif
None.gif### set log levels - for more verbose logging change 'info' to 'debug' ###
None.gif
None.giflog4j.rootLogger=warn, stdout
None.gif
None.giflog4j.logger.org.hibernate=info
None.gif#log4j.logger.org.hibernate=debug
None.gif
None.gif### log HQL query parser activity
None.gif#log4j.logger.org.hibernate.hql.ast.AST=debug
None.gif
None.gif### log just the SQL
None.gif#log4j.logger.org.hibernate.SQL=debug
None.gif
None.gif### log JDBC bind parameters ###
None.giflog4j.logger.org.hibernate.type=info
None.gif#log4j.logger.org.hibernate.type=debug
None.gif
None.gif### log schema export/update ###
None.giflog4j.logger.org.hibernate.tool.hbm2ddl=debug
None.gif
None.gif### log HQL parse trees
None.gif#log4j.logger.org.hibernate.hql=debug
None.gif
None.gif### log cache activity ###
None.gif#log4j.logger.org.hibernate.cache=debug
None.gif
None.gif### log transaction activity
None.gif#log4j.logger.org.hibernate.transaction=debug
None.gif
None.gif### log JDBC resource acquisition
None.gif#log4j.logger.org.hibernate.jdbc=debug
None.gif
None.gif### enable the following line if you want to track down connection ###
None.gif### leakages when using DriverManagerConnectionProvider ###
None.gif#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

5. 最后便是编写build文件用以ant编译运行
None.gif<?xml version="1.0"?>
None.gif
<project name="My1stHibernate" default="build" basedir=".">
None.gif    
<property name="base.dir" value="."/>
None.gif    
<property name="src.dir" value="src" />
None.gif    
<property name="lib.dir" value="lib" />
None.gif    
<property name="build.dir" value="classes" />  
None.gif    
<path id="myclasspath"> 
None.gif        
<fileset dir="${lib.dir}"> 
None.gif            
<include name="**/*.jar" />
None.gif        
</fileset>  
None.gif        
<pathelement location="${build.dir}" /> 
None.gif    
</path> 
None.gif    
<target name="init">     
None.gif        
<mkdir dir="${build.dir}" />  
None.gif    
</target>       
None.gif    
<target name="build" depends="init" description="compile the source files">
None.gif        
<javac classpathref="myclasspath" srcdir="${src.dir}" destdir="${build.dir}" />  
None.gif        
<copy todir="${build.dir}" > 
None.gif            
<fileset dir="${src.dir}" >
None.gif                
<exclude name="**/*.java"/> 
None.gif            
</fileset> 
None.gif        
</copy>    
None.gif    
</target>   
None.gif    
<target name="run" depends="build">  
None.gif        
<java classpathref="myclasspath" classname="Test" fork="true" />
None.gif    
</target>   
None.gif    
<target name="clean"> 
None.gif        
<delete includeEmptyDirs="true">
None.gif            
<fileset dir="${build.dir}" />
None.gif        
</delete>    
None.gif    
</target>
None.gif
</project>

转载于:https://www.cnblogs.com/dbzou/archive/2005/07/31/204059.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值