hibernate向Oracle写入数据step by step

说明:
1.表结构定义:

  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.     <!-- 以下是Oracle配置 -->  
  8.     <!-- Oracle驱动程序位置:D:\oracle\ora92\jdbc\lib(前提是你安装了Oracle) -->  
  9.     <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>  
  10.     <property name="connection.url">jdbc:oracle:thin:@localhost:1521:rosy</property>  
  11.     <property name="connection.username">MYLAB</property>  
  12.     <property name="connection.password">TEST</property>  
  13.     <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>  
  14.     <!-- MySQL配置,其驱动程序可以到官方网站下载 -->  
  15.         <property name="connection.driver_class">org.gjt.mm.mysql.Driver</property>  
  16.         <property name="connection.url">jdbc:mysql://localhost:3306/user</property>  
  17.         <property name="connection.username">root</property>  
  18.         <property name="connection.password">111111</property>    
  19.         <property name="dialect">org.hibernate.dialect.MySQLDialect</property>  
  20.     <!-- sql server 第三方驱动插件下载地址 -->  
  21.     <!-- "http://sourceforge.net/project/showfiles.php?group_id=33291&package_id=25350&release_id=369359" -->  
  22.         <property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>  
  23.         <property name="connection.url">jdbc:jtds:sqlserver://localhost:1433/j2eeone</property>  
  24.         <property name="connection.username">sa</property>  
  25.         <property name="connection.password">TEST</property>  
  26.     <!-- JDBC connection pool (use the built-in) -->  
  27.     <property name="connection.pool_size">1</property>  
  28.     <!-- Enable Hibernate's automatic session context management -->  
  29.     <property name="current_session_context_class">thread</property>  
  30.     <!-- Disable the second-level cache  -->  
  31.     <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>  
  32.     <!-- Echo all executed SQL to stdout -->  
  33.     <property name="show_sql">true</property>  
  34.     <!-- Drop and re-create the database schema on startup -->  
  35.     <!-- <property name="hbm2ddl.auto">create</property> -->  
  36.     <property name="myeclipse.connection.profile">mylab</property>  
  37.     <mapping resource="org/danlley/common/setting/Classes.hbm.xml" />  
  38.     <mapping resource="org/danlley/common/setting/Department.hbm.xml" />  
  39.     <mapping resource="org/danlley/common/setting/Employee.hbm.xml" />  
  40.     <mapping resource="org/danlley/common/setting/Orgunit.hbm.xml" />  
  41.     <mapping resource="org/danlley/common/setting/Speciality.hbm.xml" />  
  42.     <mapping resource="org/danlley/common/setting/Students.hbm.xml" />  
  43.     <mapping resource="org/danlley/common/setting/Subcampus.hbm.xml" />  
  44.     <mapping resource="org/danlley/common/setting/Subject.hbm.xml" />  
  45. </session-factory>  
  46. </hibernate-configuration>  

3.对象-映射文件定义:

xml 代码
  1. <!---->xml version="1.0"?>  
  2. <!---->
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  4. <!---->  
  5. <hibernate-mapping>  
  6.     <class name="org.danlley.common.dao.Classes" table="CLASSES">  
  7.         <id name="classno" type="java.lang.String">  
  8.             <column name="CLASSNO" length="32" />  
  9.             <generator class="assigned">generator>  
  10.         id>  
  11.         <property name="classname" type="java.lang.String">  
  12.             <column name="CLASSNAME" length="32" />  
  13.         property>  
  14.         <property name="gradeyear" type="java.lang.Long">  
  15.             <column name="GRADEYEAR" precision="4" scale="0" />  
  16.         property>  
  17.         <property name="classOthername" type="java.lang.String">  
  18.             <column name="CLASS_OTHERNAME" length="32" />  
  19.         property>  
  20.         <property name="balance" type="java.lang.Double">  
  21.             <column name="BALANCE" precision="11" />  
  22.         property>  
  23.         <property name="tmpclassno" type="java.lang.String">  
  24.             <column name="TMPCLASSNO" />  
  25.         property>  
  26.         <property name="departmentid" type="java.lang.String">  
  27.             <column name="DEPARTMENTID" length="32" />  
  28.         property>  
  29.     class>  
  30. hibernate-mapping>  

4.持久化类定义:

java 代码
  1. package org.danlley.common.dao;   
  2.   
  3. import java.util.HashSet;   
  4. import java.util.Set;   
  5.   
  6. /**  
  7.  * Classes generated by MyEclipse - Hibernate Tools  
  8.  */  
  9. public class Classes implements java.io.Serializable{   
  10.   
  11.     private static final long serialVersionUID=2852176058532746351L;   
  12.     private String classno;   
  13.     private String classname;   
  14.     private Long gradeyear;   
  15.     private String classOthername;   
  16.     private Double balance;   
  17.     private String tmpclassno;   
  18.     private String departmentid;   
  19.   
  20.     // Constructors   
  21.   
  22.     /** default constructor */  
  23.     public Classes(){}   
  24.   
  25.     /** minimal constructor */  
  26.     public Classes(String classno){   
  27.         this.classno=classno;   
  28.     }   
  29.   
  30.     /** full constructor */  
  31.     public Classes(String classno,String classname,Long gradeyear,String classOthername,   
  32.                     Double balance,String tmpclassno,String departmentid){   
  33.         this.classno=classno;   
  34.         this.classname=classname;   
  35.         this.gradeyear=gradeyear;   
  36.         this.classOthername=classOthername;   
  37.         this.balance=balance;   
  38.         this.tmpclassno=tmpclassno;   
  39.         this.departmentid=departmentid;   
  40.     }   
  41.   
  42.     // Property accessors   
  43.   
  44.     public String getClassno(){   
  45.         return this.classno;   
  46.     }   
  47.   
  48.     public void setClassno(String classno){   
  49.         this.classno=classno;   
  50.     }   
  51.   
  52.     public String getClassname(){   
  53.         return this.classname;   
  54.     }   
  55.   
  56.     public void setClassname(String classname){   
  57.         this.classname=classname;   
  58.     }   
  59.   
  60.     public Long getGradeyear(){   
  61.         return this.gradeyear;   
  62.     }   
  63.   
  64.     public void setGradeyear(Long gradeyear){   
  65.         this.gradeyear=gradeyear;   
  66.     }   
  67.   
  68.     public String getClassOthername(){   
  69.         return this.classOthername;   
  70.     }   
  71.   
  72.     public void setClassOthername(String classOthername){   
  73.         this.classOthername=classOthername;   
  74.     }   
  75.   
  76.     public Double getBalance(){   
  77.         return this.balance;   
  78.     }   
  79.   
  80.     public void setBalance(Double balance){   
  81.         this.balance=balance;   
  82.     }   
  83.   
  84.     public String getTmpclassno(){   
  85.         return this.tmpclassno;   
  86.     }   
  87.   
  88.     public void setTmpclassno(String tmpclassno){   
  89.         this.tmpclassno=tmpclassno;   
  90.     }   
  91.   
  92.     public String getDepartmentid(){   
  93.         return this.departmentid;   
  94.     }   
  95.   
  96.     public void setDepartmentid(String departmentid){   
  97.         this.departmentid=departmentid;   
  98.     }   
  99. }   
  100.     
  101.   
  102.     
  103.   
  104.   
  105. 4.实现数据写入   
  106.   
  107.   
  108. (1)接口定义:   
  109. package org.danlley.common.daoimpl;   
  110. import java.util.List;   
  111. import org.danlley.common.dao.Classes;   
  112. import org.danlley.common.dao.Department;   
  113. import org.danlley.common.dao.Speciality;   
  114.   
  115. public interface ClassesDAO{   
  116.     public Object addClasses(Classes classes)throws Exception;   
  117. }   
  118.   
  119. (2)实现   
  120.   
  121.     public Object addClasses(Classes classes) throws Exception{   
  122.         Session session=HibernateUtil.getSessionFactory().getCurrentSession();   
  123.         session.beginTransaction();   
  124.         session.saveOrUpdate(classes);   
  125.         session.getTransaction().commit();   
  126.         return null;   
  127.     }   
  128.     public Classes createClassesNode(String classno,String classname,Long grade){   
  129.         Classes cls=new Classes();   
  130.         cls.setClassno(classno);   
  131.         cls.setClassname(classname);   
  132.         cls.setGradeyear(new Long(2007));   
  133.         return cls;   
  134.     }   
  135.     public static void main(String[] args){   
  136.         try{   
  137.             ClassesDAOImpl classesDAOImpl=new ClassesDAOImpl();   
  138.             Session session=HibernateUtil.getSessionFactory().getCurrentSession();   
  139.             session.beginTransaction();   
  140.             //this section will begin to code the add classes   
  141.             String classno="danlley's first test!";   
  142.             String classname=classno;   
  143.             Classes cls=classesDAOImpl.createClassesNode(classno,classname,new Long(2007));   
  144.             classesDAOImpl.addClasses(cls);   
  145.         }catch(Exception e){   
  146.             e.printStackTrace();   
  147.         }   
  148.     }   


5.log4j.properties

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. log4j.rootLogger=warn, stdout   
  8.   
  9. log4j.logger.org.hibernate=info   
  10. #log4j.logger.org.hibernate=debug   
  11.   
  12. ### log JDBC bind parameters ###   
  13. log4j.logger.org.hibernate.type=info   
  14. #log4j.logger.org.hibernate.type=debug   
  15.   
  16. ### log schema export/update ###   
  17. log4j.logger.org.hibernate.tool.hbm2ddl=debug   

6.编写ant脚本:

xml 代码
  1. <project name="hibernate-tutorial" basedir="." default="build">  
  2.  <property name="src.dir" value="src/main/java" />  
  3.  <property name="web.dir" value="webroot" />  
  4.  <property name="build.dir" value="${web.dir}/WEB-INF/classes" />  
  5.  <path id="master-classpath">  
  6.   <fileset dir="lib">  
  7.    <include name="*.jar" />  
  8.   fileset>  
  9.   <pathelement path="${build.dir}" />  
  10.  path>  
  11.  <path id="client.class.path">  
  12.   <fileset dir="lib">  
  13.    <include name="*.jar" />  
  14.   fileset>  
  15.   <pathelement location="${build.dir}/classes" />  
  16.  path>  
  17.  <target name="clean" description="Clean output directories">  
  18.   <delete>  
  19.    <fileset dir="${build.dir}">  
  20.     <include name="**/*.class" />  
  21.     <include name="**/*.xml" />  
  22.     <include name="**/*.properties" />  
  23.    fileset>  
  24.   delete>  
  25.  target>  
  26.  <target name="prepare">  
  27.   <mkdir dir="${build.dir}" />  
  28.   <copy todir="${build.dir}">  
  29.    <fileset dir="${src.dir}">  
  30.     <include name="**/*.hbm.xml" />  
  31.    fileset>  
  32.   copy>  
  33.   <copy todir="${build.dir}">  
  34.    <fileset dir="${src.dir}">  
  35.     <include name="**/*.cfg.xml" />  
  36.     <include name="**/*.properties" />  
  37.    fileset>  
  38.   copy>  
  39.  target>  
  40.  <target name="build" depends="prepare" description="">  
  41.   <javac destdir="${build.dir}" target="1.5" debug="true" deprecation="false" optimize="false" failonerror="false">  
  42.    <src path="${src.dir}" />  
  43.    <classpath refid="master-classpath" />  
  44.   javac>  
  45.  target>  
  46.  <target name="run.client" depends="build">  
  47.   <java classname="org.danlley.common.daoimpl.ClassesDAOImpl" classpathref="master-classpath">  
  48.    <<span class="tag-na

  1. CREATE TABLE CLASSES   
  2. (   
  3.   CLASSNO          VARCHAR2(32 BYTE)            NOT NULL,   
  4.   CLASSNAME        VARCHAR2(32 BYTE),   
  5.   SUBCAMPUSID      VARCHAR2(32 BYTE),   
  6.   SPECIALITYID     VARCHAR2(32 BYTE)            NOT NULL,   
  7.   GRADEYEAR        NUMBER(4),   
  8.   MONITOR_ID       VARCHAR2(32 BYTE),   
  9.   CLASS_OTHERNAME  VARCHAR2(32 BYTE),   
  10.   CLASS_CHARGEID   VARCHAR2(32 BYTE),   
  11.   BALANCE          NUMBER(11,2),   
  12.   TMPCLASSNO       VARCHAR2(255 BYTE),   
  13.   DEPARTMENTID     VARCHAR2(32 BYTE)   
  14. )  

2.配置文件:我用的Oracle数据库,如果大家是其他数据库的话可以参考我的注释部分。

xml 代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值