Hibernate写代码流程小结

这篇博客总结了使用Hibernate进行数据库操作的流程,包括创建SQL序列和表结构,以及配置Hibernate映射文件和配置文件,展示了如何在Java应用中利用Hibernate进行数据持久化。
摘要由CSDN通过智能技术生成
在 eclipse(软件,IBM) 开发平台上写。
1. 先new一个带src目录的Java Project,因为src代表class_path!  hibernatev.cfg.xml 、vlog4j.properties(配置文件)就放在其下,这两个文件必须放在class_path下。
2. add一个User Library,名字自己取,添加所需要的12个.jar包(最好所有jar包全部导入,保证不会错)。
3. 在src下new自己所需要的package,在package下写***.java  、***.hbm.xml 、***.sql  代码
4  写程序代码的顺序:写 JavaBean----sql文件(数据库建相关表)----***.hbm.xml映射文件------hibernate.cfg.xml(或者修改mapping标签的映射资源)------写相关测试Java程序(调用hibernate API,进行数据操作)。注意各代码文件放的位置。
5  配置文件hibernate.cfg.xml只需要写一次,以后用到的时候,基本是修改mapping标签;映射文件***.hbm.xml需要天天写,用一次写一次。
下面是 :   ***.sql  、***.hbm.xml 、hibernatev.cfg.xml 、vlog4j.properties、测试Java程序

--------***.sql----------

  1. create sequence jdbc_car_seq;
  2. create sequence jdbc_license_seq;
  3. create table jdbc_car_pk
  4. ( cid number(7) primary key,
  5.   manufactory varchar2(15) not null,
  6.   producttype varchar2(15) not null
  7. );
  8. create table jdbc_license_pk
  9. ( lid number(7) primary key references jdbc_car_pk(cid),
  10.   serialnum varchar2(15) not null,
  11.   licensetype varchar2(15) not null 
  12. );

---------User.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. <hibernate-mapping package="com.kettas.hibernate.day1">
  6.    <class name="Users" table="jdbc_users" dynamic-update="true">
  7.      <id name="id" column="id" unsaved-value="null">
  8.         <generator class="sequence">
  9.             <param name="sequence">jdbc_users_seq</param>
  10.         </generator>
  11.      </id>
  12.      <property name="name" column="name"></property>
  13.      <property name="passwd"></property>
  14.      <property name="phone" column="phone"/>
  15.      <property name="email"/>
  16.    </class>
  17. </hibernate-mapping>

-----------hibernatev.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. <hibernate-configuration>
  6.     <session-factory>
  7.       <!-- 显示SQL -->
  8.       <property name="show_sql">true</property>
  9.       <property name="format_sql">true</property>
  10.       
  11.       <!-- 配置数据库方言 -->
  12.       <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
  13.       
  14.       <!-- 配置数据库连接 -->
  15.       <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
  16.       <property name="connection.username">cksd0804</property>
  17.       <property name="connection.password">cksd0804</property>
  18.       <property name="connection.url">jdbc:oracle:thin:@192.168.0.200:1521:ORADB10G</property>
  19.      
  20.       <!-- 配置连接池 -->
  21.       <property name="c3p0.max_size">2</property>
  22.       <property name="c3p0.min_size">2</property>
  23.       <property name="c3p0.timeout">5000</property>
  24.       <property name="c3p0.max_statements">100</property>
  25.       <property name="c3p0.idle_test_period">3000</property>
  26.       <property name="c3p0.acquire_increment">2</property>
  27.       <property name="c3p0.validate">false</property>
  28.       
  29.       <!-- 指定hibernate管理的映射文件 -->
  30.       <!--<mapping resource="com/kettas/hibernate/day1/Users.hbm.xml"/>-->
  31.        <!--<mapping resource="com/kettas/hibernate/day1/Account.hbm.xml"/>-->
  32.      <!--<mapping resource="com/kettas/hibernate/orm/o2o/fkuk/CarLicense.hbm.xml"/>-->
  33.      <mapping resource="com/kettas/hibernate/orm/o2m/CompanyEmployee.hbm.xml"/>
  34.       
  35.     </session-factory>
  36. </hibernate-configuration>

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

------------测试Java程序------------

 

  1. import org.hibernate.Session;
  2. import org.hibernate.SessionFactory;
  3. import org.hibernate.Transaction;
  4. import org.hibernate.cfg.Configuration;
  5. public class TestCar {
  6.     public static void main(String[] args) {
  7.         Configuration cfg=new Configuration().configure();      //创建配置,启动Hibernate读xml文件
  8.         SessionFactory sf=null;
  9.         Session sess=null;
  10.         Transaction ta=null;
  11.         try{
  12.             sf=cfg.buildSessionFactory();                                     //构造会话工厂SessionFactory
  13.             sess=sf.openSession();                                                //打开会话Session
  14.             ta=sess.beginTransaction();                                         //启动事物
  15.             Car c=new Car("qq","111");                                                  
  16.             License license=new License("6666","minyong");       //持久化操作
  17.             c.addLicense(license);
  18.             sess.save(license);                                                         
  19.             ta.commit();                                                                   //提交事务
  20.         }catch(Exception e){
  21.             e.printStackTrace();
  22.             ta.rollback();                                                                   //回滚事务
  23.         }finally{
  24.             sess.close();                                                                    //释放资源
  25.             sf.close();
  26.         }
  27.     }
  28. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值