📄 hibernateutil.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 + -