⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hibernateutil.java

📁 由于跟踪客户的购物意向
💻 JAVA
字号:
package com.relationinfo.customertrace.daoimpl;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Date;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {

	private static  SessionFactory sessionFactory;

	private static  ThreadLocal session = new ThreadLocal();

	static {
		try {
			sessionFactory = new Configuration().configure()
					.buildSessionFactory();
		} catch (Throwable ex) {
			System.err.println("Initial SessionFactory creation failed." + ex);
			throw new ExceptionInInitializerError(ex);
		}
	}

	/**
	 * 获得当前会话
	 * 
	 * @return
	 * @throws HibernateException
	 */
	public static Session currentSession() throws HibernateException {
		Session s = (Session) session.get();
		if (s == null) {
			s = sessionFactory.openSession();
			session.set(s);
		}
		return s;
	}

	/**
	 * 关闭会话
	 * 
	 * @param session2
	 * @throws HibernateException
	 */
	public static void closeSession(Session session2) throws HibernateException {
		Session s = (Session) session.get();
		session.set(null);
		if (s != null) {
			s.close();
		}
	}

	/**
	 * 执行SQL查询
	 * 
	 * @param tableName
	 * @param theClass
	 * @param where
	 * @param arg
	 * @return
	 */
	public static List executeSQLQuery(String tableName, Class theClass,
			String where, Object arg[]) {
		Session session = currentSession();
		SQLQuery q = session.createSQLQuery("select {" + tableName
				+ ".*} from " + tableName + " where " + where);
		q.addEntity(tableName, theClass);
		for (int i = 0; i < arg.length; i++) {
			if (arg[i] instanceof Integer) {
				q.setInteger(i, ((Integer) arg[i]).intValue());
			} else if (arg[i] instanceof Short) {
				q.setShort(i, ((Short) arg[i]).shortValue());
			} else if (arg[i] instanceof Long) {
				q.setLong(i, ((Long) arg[i]).longValue());
			} else if (arg[i] instanceof Double) {
				q.setDouble(i, ((Double) arg[i]).doubleValue());
			} else if (arg[i] instanceof Float) {
				q.setFloat(i, ((Float) arg[i]).floatValue());
			} else if (arg[i] instanceof BigDecimal) {
				q.setBigDecimal(i, (BigDecimal) arg[i]);
			} else if (arg[i] instanceof BigInteger) {
				q.setBigInteger(i, (BigInteger) arg[i]);
			} else if (arg[i] instanceof String) {
				q.setString(i, (String) arg[i]);
			} else if (arg[i] instanceof Boolean) {
				q.setBoolean(i, ((Boolean) arg[i]).booleanValue());
			} else if (arg[i] instanceof Date) {
				q.setDate(i, (Date) arg[i]);
			} else if (arg[i] instanceof Date) {
				q.setDate(i, (Date) arg[i]);
			} else {
				throw new IllegalStateException("bad type");
			}
		}

		List list = q.list();
		closeSession(session);

		return list;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -