Hibernate開発スペア


Hibernate開発スペア
 
普段は小测试用にしていますが、少し修正すれば本格的な开発环境に使えます.
 
 
一、構成ファイル
br>        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "[url]http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd[/url]">
   
       
        true
       
       
            jdbc:mysql://localhost:3306/testdb
       
       
        root
       
        leizhimin
       
       
            com.mysql.jdbc.Driver
       
       
       
            org.hibernate.dialect.MySQLDialect
       
       
        thread
       
        1
       
       
       
       
            org.hibernate.transaction.JDBCTransactionFactory
       
       
       
       
       
   
 
 
二、HibernateUtil.java
package org.lavasoft.domain.common;
import org.hibernate.Session;
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
/**
 * Created by IntelliJ IDEA.
 * User: leizhimin
 * Date: 2007-7-18
 * Time: 10:18:44
*Hibernateツールクラス
 */
public class HibernateUtil {
    private static String CONFIG_FILE_LOCATION = "hibernate.cfg.xml";
    private static final ThreadLocal threadLocal = new ThreadLocal();
    private static Configuration configuration = new Configuration();
    private static SessionFactory sessionFactory;
    private static String configFile = CONFIG_FILE_LOCATION;
    static {
        try {
            configuration.configure(configFile);
            sessionFactory = configuration.buildSessionFactory();
        } catch (Exception e) {
            System.err.println("%%%% Error Creating SessionFactory %%%%");
            e.printStackTrace();
        }
    }
    private HibernateUtil() {
    }
   /**
     * Returns the ThreadLocal Session instance.  Lazy initialize
     * the SessionFactory if needed.
     *
     * @return Session
     * @throws HibernateException
     */
    public static Session getSession() throws HibernateException {
        Session session = (Session) threadLocal.get();
        if (session == null || !session.isOpen()) {
            if (sessionFactory == null) {
                rebuildSessionFactory();
            }
            session = (sessionFactory != null) ? sessionFactory.openSession() : null;
            threadLocal.set(session);
        }
        return session;
    }
   /**
*SessionFactoryの再構築
     */
    public static void rebuildSessionFactory() {
        try {
            configuration.configure(configFile);
            sessionFactory = configuration.buildSessionFactory();
        } catch (Exception e) {
            System.err.println("%%%% Error Creating SessionFactory %%%%");
            e.printStackTrace();
        }
    }
   /**
     * Close the single hibernate session instance.
     *
     * @throws HibernateException
     */
    public static void closeSession() throws HibernateException {
        Session session = (Session) threadLocal.get();
        threadLocal.set(null);
        if (session != null) {
            session.close();
        }
    }
   /**
     * return session factory
     */
    public static org.hibernate.SessionFactory getSessionFactory() {
        return sessionFactory;
    }
   /**
     * return session factory
     *
     * session factory will be rebuilded in the next call
     */
    public static void setConfigFile(String configFile) {
        HibernateUtil.configFile = configFile;
        sessionFactory = null;
    }
   /**
     * return hibernate configuration
     */
    public static Configuration getConfiguration() {
        return configuration;
    }
}
 
 
三、xdoclet-build.xml
   
   
   
   
   
   
   
   
   
   
   
   
   
       
           
               
           
           
               
           
       
                    classname="xdoclet.modules.hibernate.HibernateDocletTask"
            classpathref="xdoclet.task.classpath"/>
   
   
       
           
               
           
           
       
   
   
                    force="true">
           
               
           
                            dialect="${hibernate.cfg.dialect}"
                driver="${hibernate.cfg.driver}"
                username="${hibernate.cfg.username}"
                password="${hibernate.cfg.password}"
                jdbcurl="${hibernate.cfg.jdbcurl}"
                showsql="${hibernate.cfg.showsql}"
                destdir="${project.resources.dir}"xmlencoding="gb2312"/>
       
   
   
                    classname="org.hibernate.tool.hbm2ddl.SchemaExportTask"
            classpathref="xdoclet.task.classpath"/>
       
       
       
                    output="${project.sql.dir}/hb_test1.sql">
           
               
           
       
   
   
                    classname="org.hibernate.tool.hbm2ddl.SchemaExportTask"
            classpathref="xdoclet.task.classpath"/>
       
       
       
                    output="${project.sql.dir}/hb_test2.sql">