说明:
1.表结构定义:
- <?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>
- <!-- 以下是Oracle配置 -->
- <!-- Oracle驱动程序位置:D:\oracle\ora92\jdbc\lib(前提是你安装了Oracle) -->
- <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
- <property name="connection.url">jdbc:oracle:thin:@localhost:1521:rosy</property>
- <property name="connection.username">MYLAB</property>
- <property name="connection.password">TEST</property>
- <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
- <!-- MySQL配置,其驱动程序可以到官方网站下载 -->
- <property name="connection.driver_class">org.gjt.mm.mysql.Driver</property>
- <property name="connection.url">jdbc:mysql://localhost:3306/user</property>
- <property name="connection.username">root</property>
- <property name="connection.password">111111</property>
- <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
- <!-- sql server 第三方驱动插件下载地址 -->
- <!-- "http://sourceforge.net/project/showfiles.php?group_id=33291&package_id=25350&release_id=369359" -->
- <property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
- <property name="connection.url">jdbc:jtds:sqlserver://localhost:1433/j2eeone</property>
- <property name="connection.username">sa</property>
- <property name="connection.password">TEST</property>
- <!-- JDBC connection pool (use the built-in) -->
- <property name="connection.pool_size">1</property>
- <!-- Enable Hibernate's automatic session context management -->
- <property name="current_session_context_class">thread</property>
- <!-- Disable the second-level cache -->
- <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
- <!-- Echo all executed SQL to stdout -->
- <property name="show_sql">true</property>
- <!-- Drop and re-create the database schema on startup -->
- <!-- <property name="hbm2ddl.auto">create</property> -->
- <property name="myeclipse.connection.profile">mylab</property>
- <mapping resource="org/danlley/common/setting/Classes.hbm.xml" />
- <mapping resource="org/danlley/common/setting/Department.hbm.xml" />
- <mapping resource="org/danlley/common/setting/Employee.hbm.xml" />
- <mapping resource="org/danlley/common/setting/Orgunit.hbm.xml" />
- <mapping resource="org/danlley/common/setting/Speciality.hbm.xml" />
- <mapping resource="org/danlley/common/setting/Students.hbm.xml" />
- <mapping resource="org/danlley/common/setting/Subcampus.hbm.xml" />
- <mapping resource="org/danlley/common/setting/Subject.hbm.xml" />
- </session-factory>
- </hibernate-configuration>
3.对象-映射文件定义:
xml 代码
- xml version="1.0"?>
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <hibernate-mapping>
- <class name="org.danlley.common.dao.Classes" table="CLASSES">
- <id name="classno" type="java.lang.String">
- <column name="CLASSNO" length="32" />
- <generator class="assigned">generator>
- id>
- <property name="classname" type="java.lang.String">
- <column name="CLASSNAME" length="32" />
- property>
- <property name="gradeyear" type="java.lang.Long">
- <column name="GRADEYEAR" precision="4" scale="0" />
- property>
- <property name="classOthername" type="java.lang.String">
- <column name="CLASS_OTHERNAME" length="32" />
- property>
- <property name="balance" type="java.lang.Double">
- <column name="BALANCE" precision="11" />
- property>
- <property name="tmpclassno" type="java.lang.String">
- <column name="TMPCLASSNO" />
- property>
- <property name="departmentid" type="java.lang.String">
- <column name="DEPARTMENTID" length="32" />
- property>
- class>
- hibernate-mapping>
4.持久化类定义:
java 代码
- package org.danlley.common.dao;
- import java.util.HashSet;
- import java.util.Set;
- /**
- * Classes generated by MyEclipse - Hibernate Tools
- */
- public class Classes implements java.io.Serializable{
- private static final long serialVersionUID=2852176058532746351L;
- private String classno;
- private String classname;
- private Long gradeyear;
- private String classOthername;
- private Double balance;
- private String tmpclassno;
- private String departmentid;
- // Constructors
- /** default constructor */
- public Classes(){}
- /** minimal constructor */
- public Classes(String classno){
- this.classno=classno;
- }
- /** full constructor */
- public Classes(String classno,String classname,Long gradeyear,String classOthername,
- Double balance,String tmpclassno,String departmentid){
- this.classno=classno;
- this.classname=classname;
- this.gradeyear=gradeyear;
- this.classOthername=classOthername;
- this.balance=balance;
- this.tmpclassno=tmpclassno;
- this.departmentid=departmentid;
- }
- // Property accessors
- public String getClassno(){
- return this.classno;
- }
- public void setClassno(String classno){
- this.classno=classno;
- }
- public String getClassname(){
- return this.classname;
- }
- public void setClassname(String classname){
- this.classname=classname;
- }
- public Long getGradeyear(){
- return this.gradeyear;
- }
- public void setGradeyear(Long gradeyear){
- this.gradeyear=gradeyear;
- }
- public String getClassOthername(){
- return this.classOthername;
- }
- public void setClassOthername(String classOthername){
- this.classOthername=classOthername;
- }
- public Double getBalance(){
- return this.balance;
- }
- public void setBalance(Double balance){
- this.balance=balance;
- }
- public String getTmpclassno(){
- return this.tmpclassno;
- }
- public void setTmpclassno(String tmpclassno){
- this.tmpclassno=tmpclassno;
- }
- public String getDepartmentid(){
- return this.departmentid;
- }
- public void setDepartmentid(String departmentid){
- this.departmentid=departmentid;
- }
- }
- 4.实现数据写入
- (1)接口定义:
- package org.danlley.common.daoimpl;
- import java.util.List;
- import org.danlley.common.dao.Classes;
- import org.danlley.common.dao.Department;
- import org.danlley.common.dao.Speciality;
- public interface ClassesDAO{
- public Object addClasses(Classes classes)throws Exception;
- }
- (2)实现
- public Object addClasses(Classes classes) throws Exception{
- Session session=HibernateUtil.getSessionFactory().getCurrentSession();
- session.beginTransaction();
- session.saveOrUpdate(classes);
- session.getTransaction().commit();
- return null;
- }
- public Classes createClassesNode(String classno,String classname,Long grade){
- Classes cls=new Classes();
- cls.setClassno(classno);
- cls.setClassname(classname);
- cls.setGradeyear(new Long(2007));
- return cls;
- }
- public static void main(String[] args){
- try{
- ClassesDAOImpl classesDAOImpl=new ClassesDAOImpl();
- Session session=HibernateUtil.getSessionFactory().getCurrentSession();
- session.beginTransaction();
- //this section will begin to code the add classes
- String classno="danlley's first test!";
- String classname=classno;
- Classes cls=classesDAOImpl.createClassesNode(classno,classname,new Long(2007));
- classesDAOImpl.addClasses(cls);
- }catch(Exception e){
- e.printStackTrace();
- }
- }
5.log4j.properties
properties 代码
- ### direct log messages to stdout ###
- log4j.appender.stdout=org.apache.log4j.ConsoleAppender
- log4j.appender.stdout.Target=System.out
- log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
- log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
- log4j.rootLogger=warn, stdout
- log4j.logger.org.hibernate=info
- #log4j.logger.org.hibernate=debug
- ### log JDBC bind parameters ###
- log4j.logger.org.hibernate.type=info
- #log4j.logger.org.hibernate.type=debug
- ### log schema export/update ###
- log4j.logger.org.hibernate.tool.hbm2ddl=debug
6.编写ant脚本:
xml 代码
- <project name="hibernate-tutorial" basedir="." default="build">
- <property name="src.dir" value="src/main/java" />
- <property name="web.dir" value="webroot" />
- <property name="build.dir" value="${web.dir}/WEB-INF/classes" />
- <path id="master-classpath">
- <fileset dir="lib">
- <include name="*.jar" />
- fileset>
- <pathelement path="${build.dir}" />
- path>
- <path id="client.class.path">
- <fileset dir="lib">
- <include name="*.jar" />
- fileset>
- <pathelement location="${build.dir}/classes" />
- path>
- <target name="clean" description="Clean output directories">
- <delete>
- <fileset dir="${build.dir}">
- <include name="**/*.class" />
- <include name="**/*.xml" />
- <include name="**/*.properties" />
- fileset>
- delete>
- target>
- <target name="prepare">
- <mkdir dir="${build.dir}" />
- <copy todir="${build.dir}">
- <fileset dir="${src.dir}">
- <include name="**/*.hbm.xml" />
- fileset>
- copy>
- <copy todir="${build.dir}">
- <fileset dir="${src.dir}">
- <include name="**/*.cfg.xml" />
- <include name="**/*.properties" />
- fileset>
- copy>
- target>
- <target name="build" depends="prepare" description="">
- <javac destdir="${build.dir}" target="1.5" debug="true" deprecation="false" optimize="false" failonerror="false">
- <src path="${src.dir}" />
- <classpath refid="master-classpath" />
- javac>
- target>
- <target name="run.client" depends="build">
- <java classname="org.danlley.common.daoimpl.ClassesDAOImpl" classpathref="master-classpath">
- <<span class="tag-na
- CREATE TABLE CLASSES
- (
- CLASSNO VARCHAR2(32 BYTE) NOT NULL,
- CLASSNAME VARCHAR2(32 BYTE),
- SUBCAMPUSID VARCHAR2(32 BYTE),
- SPECIALITYID VARCHAR2(32 BYTE) NOT NULL,
- GRADEYEAR NUMBER(4),
- MONITOR_ID VARCHAR2(32 BYTE),
- CLASS_OTHERNAME VARCHAR2(32 BYTE),
- CLASS_CHARGEID VARCHAR2(32 BYTE),
- BALANCE NUMBER(11,2),
- TMPCLASSNO VARCHAR2(255 BYTE),
- DEPARTMENTID VARCHAR2(32 BYTE)
- )
2.配置文件:我用的Oracle数据库,如果大家是其他数据库的话可以参考我的注释部分。
xml 代码