`

hibernate应用

 
阅读更多
/**
 * 
 */
package hibernate.test;

import java.util.Date;

/**
 * @author huang
 *
Oct 18, 2013
3:01:08 PM
User.java
 */
public class UserTest {  
	  
    private Integer id;  
      
    private String name;  
      
    private String password;  
      
    private Date createTime;  
      
    private Date expireTime;



	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public Date getExpireTime() {
		return expireTime;
	}

	public void setExpireTime(Date expireTime) {
		this.expireTime = expireTime;
	}
}

 

package hibernate.test;


import java.util.Date;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;


public class Client {  
	  
    public static void main(String[] args) {  
    	query(10);
          
        //读取hibernate.cfg.xml文件  
        Configuration cfg = new Configuration().configure();  
        
//        SchemaExport export = new SchemaExport(cfg);  
//        export.create(true, true);  
          
        //建立SessionFactory  
        SessionFactory factory = cfg.buildSessionFactory();  
          
        //取得session  
        Session session = null;  
        try {  
            session = factory.openSession();  
            //开启事务  
            session.beginTransaction();  
            UserTest user = new UserTest();  
            user.setName("张三121");  
            user.setPassword("121123");  
            user.setCreateTime(new Date());  
            user.setExpireTime(new Date());  
              
            //保存User对象  
            session.save(user);  
              
            //提交事务  
            session.getTransaction().commit();  
        }catch(Exception e) {  
            e.printStackTrace();  
            //回滚事务  
            session.getTransaction().rollback();  
        }finally {  
            if (session != null) {  
                if (session.isOpen()) {  
                    //关闭session  
                    session.close();  
                }  
            }  
        }  
    } 
    
    static void query(int i){
    	  Session s=null;
    	  try{
    		  s = HibernateUtil.currentSession();
    	   
    	   //from后面是对象,不是表名
    	   String hql="from UserTest as ut where ut.id=:id";//使用命名参数,推荐使用,易读。
    	   Query query=s.createQuery(hql);
    	   query.setInteger("id", i);
    	   
    	   List<UserTest> list=query.list();
    	   
    	   for(UserTest ut:list){
    	    System.out.println(ut.getName());
    	   }
    	  }finally{
    	   if(s!=null)
    	   s.close();
    	  }
    	 }
    
} 

 

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
    
<hibernate-mapping>


<class name="hibernate.test.UserTest">

<id name="id" column="id" type="java.lang.Integer">
  <generator class="sequence">
  	<param name="sequence">SEQ_SO</param>
  </generator>
</id>
        
<property name="name" />
<property name="password" />
<property name="createTime" />
<property name="expireTime" />

</class>
</hibernate-mapping>

 

<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
	<property name="show_sql">true</property>

	<property name="hibernate.connection.driver_class">
		oracle.jdbc.driver.OracleDriver
	</property>
	<property name="hibernate.connection.url">
		jdbc:oracle:thin:@10.101.2.3:1521:develope
	</property>
	<property name="hibernate.connection.username">dpcds_newnew</property>
	<property name="hibernate.connection.password">dpcds_newnew</property>


	<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
	

	<mapping resource="test.hbm.xml" />

</session-factory>
</hibernate-configuration>

 操作数据库太方便了,记录一下,目前只有单表。

package hibernate.test;

import org.hibernate.*;
import org.hibernate.cfg.*;

import java.io.File;

/**
 * 
 * <p>
 * Title: WMDS
 * </p>
 * <p>
 * Description:
 * </p>
 * <p>
 * Copyright: Copyright (c) 2005
 * </p>
 * <p>
 * Company: ECLINK
 * </p>
 * 
 * @author 
 * @version 1.0
 */

public class HibernateUtil {
	private static final SessionFactory sessionFactory;

	static {
		try {
			// Create the SessionFactory
//			System.out.println("-----------------------------");
			// File f = new File(
			sessionFactory = new Configuration().configure()
					.buildSessionFactory();
		} catch (Throwable ex) {
			ex.printStackTrace();
			// log.error("Initial SessionFactory creation failed.", ex);
			throw new ExceptionInInitializerError(ex);
		}
	}

	public static final ThreadLocal session = new ThreadLocal();

	public static Session currentSession() {
		Session s = (Session) session.get();
		// Open a new Session, if this Thread has none yet
		if (s == null) {
			s = sessionFactory.openSession();
			session.set(s);
		}
		return s;
	}

	public static void closeSession() {
		Session s = (Session) session.get();
		if (s != null)
			s.close();
		session.set(null);
	}

	public static void save(Object object) throws Exception {
		// 开始 获得hibernate环境 sessioin
		Session session = HibernateUtil.currentSession();
		// 开始 获得hibernate环境 transaction 事物
		Transaction tx = session.beginTransaction();
		try {
			session.save(object);
			// 事物提交
			tx.commit();
			// 关闭环境
			HibernateUtil.closeSession();
		} catch (Exception ex) {
			tx.rollback();
			HibernateUtil.closeSession();
			throw ex;

		}

	}

	public static Object load(Class class0, String id) throws Exception {
		// 开始 获得hibernate环境 sessioin
		Session session = HibernateUtil.currentSession();
		// 开始 获得hibernate环境 transaction 事物
		Transaction tx = session.beginTransaction();
		try {
			Object o = session.load(class0, id);

			// 事物提交
			tx.commit();
			// 关闭环境
			HibernateUtil.closeSession();
			return o;
		} catch (Exception ex) {
			tx.rollback();
			HibernateUtil.closeSession();
			throw ex;

		}

	}

	public static void delete(Object object) throws Exception {
		// 开始 获得hibernate环境 sessioin
		Session session = HibernateUtil.currentSession();
		// 开始 获得hibernate环境 transaction 事物
		Transaction tx = session.beginTransaction();
		try {
			session.delete(object);
			// 事物提交
			tx.commit();
			// 关闭环境
			HibernateUtil.closeSession();
		} catch (Exception ex) {
			tx.rollback();
			HibernateUtil.closeSession();
			throw ex;

		}

	}

	public static void update(Object object) throws Exception {
		// 开始 获得hibernate环境 sessioin
		Session session = HibernateUtil.currentSession();
		// 开始 获得hibernate环境 transaction 事物
		Transaction tx = session.beginTransaction();
		try {
			session.update(object);
			// 事物提交
			tx.commit();
			// 关闭环境
			HibernateUtil.closeSession();
		} catch (Exception ex) {
			tx.rollback();
			HibernateUtil.closeSession();
			throw ex;
		}

	}

	public static void saveOrUpdate(Object object) throws Exception {
		// 开始 获得hibernate环境 sessioin
		Session session = HibernateUtil.currentSession();
		// 开始 获得hibernate环境 transaction 事物
		Transaction tx = session.beginTransaction();
		try {
			session.saveOrUpdate(object);
			// 事物提交
			tx.commit();
			// 关闭环境
			HibernateUtil.closeSession();
		} catch (Exception ex) {
			tx.rollback();
			HibernateUtil.closeSession();
			throw ex;
		}

	}

	/**
	 * 调用例子
	 * 
	 * @param arg
	 *            String[]
	 */
	public static void main(String[] arg) {
		try {

		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics