📄 daofactory.java
字号:
package com.newsoft.hibernate;
import java.util.Collection;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.newsoft.util.Convert;
public class DaoFactory extends Convert {
// LOG4J 日志
private static Log log = LogFactory.getLog(DaoFactory.class);
Query query = null;
Collection col = null;
Session session = null;
Criteria crit;
public void currentSession() {
this.session = HibernateSessionFactory.currentSession();
}
public void closeSession() {
HibernateSessionFactory.closeSession();
}
/**
* hql查询并返回记录集
*
* @param hql
* @return
*/
public Collection getResults(String hql) {
return getResults(hql, null);
}
public Collection getResults(String hql, Object params) {
return getResults(hql, params, true);
}
public Collection getResults(String hql, Object params, boolean f) {
try {
query = this.session.createQuery(hql);
if (params != null) {
if (f) {
query = this.getParams(query, (String[][]) params);
} else {
query = this.getParams(query, (String[]) params);
}
}
col = query.list();
// this.session.flush();
} catch (HibernateException e) {
e.printStackTrace();
log.error("读取页面数据发生错误" + e.getMessage());
} finally {
}
return col;
}
/**
* 增加 obj
*/
public boolean isInsert(Object obj) {
boolean isOk;
Transaction transaction = null;
isOk = false;
if (obj == null)
return isOk;
try {
transaction = this.session.beginTransaction();
this.session.save(obj);
transaction.commit();
isOk = true;
} catch (HibernateException e) {
if (transaction != null) {
try {
e.printStackTrace();
transaction.rollback();
} catch (HibernateException e1) {
e1.printStackTrace();
}
}
e.printStackTrace();
} finally {
}
return isOk;
}
/**
* 加载
*
* @param clazz
* @param key
* @return
*/
public Object findById(Class clazz, String key) {
Object obj;
obj = null;
try {
obj = this.session.get(clazz, key);
} catch (HibernateException e) {
e.printStackTrace();
// log.error("显示" + clazz + ":key=" + key + "失败");
} finally {
}
return obj;
}
/**
* 修改
*
* @param obj
* @return
*/
public boolean isUpdate(Object obj) {
boolean isOk = false;
Transaction transaction = null;
if (obj == null)
return isOk;
try {
transaction = this.session.beginTransaction();
this.session.update(obj);
transaction.commit();
isOk = true;
log.debug("修改" + obj + "success!");
} catch (HibernateException e) {
if (transaction != null) {
try {
transaction.rollback();
} catch (HibernateException e1) {
e1.printStackTrace();
log.error("修改" + obj + "error!");
}
}
e.printStackTrace();
} finally {
}
return isOk;
}
/**
* @param hql
* @param 查询参数
* @param 参数类型
* true:二维数组 false:一维数组
* @return 记录数
*/
public int infoCount(String hql) {
return infoCount(hql, null);
}
public int infoCount(String hql, Object params) {
return infoCount(hql, params, true);
}
public int infoCount(String hql, Object params, boolean f) {
int total = 0;
try {
hql = hql.substring(hql.indexOf("from"));
query = this.session.createQuery(hql);
if (f) {
query = this.getParams(query, (String[][]) params);
} else {
query = this.getParams(query, (String[]) params);
}
List l = query.list();
if (!l.isEmpty()) {
total = l.size();
}
log.debug("计数成功!");
} catch (Exception e) {
log.fatal(e.getMessage());
log.error("计数失败:\n" + hql);
} finally {
}
return total;
}
/**
* @param hql
* @param 起始行
* @param 记录数/页
* @param 查询参数
* @return 记录集
*/
public Collection getAllInfo(String hql, int pageStart, int pageSize) {
return getAllInfo(hql, pageStart, pageSize, null);
}
public Collection getAllInfo(String hql, int pageStart, int pageSize,
String[][] params) {
try {
query = this.session.createQuery(hql);
query = this.getParams(query, params);
query.setFirstResult(pageStart);
query.setMaxResults(pageSize);
col = query.list();
} catch (HibernateException e) {
e.printStackTrace();
log.error("读取页面数据发生错误" + e.getMessage());
} finally {
}
return col;
}
/**
* 删除
*
* @param key
*/
public boolean isDelete(Class clazz, String[] key) {
boolean isOK = false;
Transaction transaction = null;
if (key == null)
return isOK;
try {
transaction = this.session.beginTransaction();
for (int i = 0; i < key.length; i++) {
this.session.delete(this.session.get(clazz, key[i]));
}
transaction.commit();
isOK = true;
} catch (HibernateException e) {
isOK = false;
if (transaction != null) {
try {
transaction.rollback();
} catch (HibernateException e1) {
e1.printStackTrace();
}
}
e.printStackTrace();
} finally {
}
return isOK;
}
public boolean isDelete(Class clazz, String key) {
boolean isOK = false;
Object object = null;
Transaction transaction = null;
if ("".equals(key) && (null == key))
return isOK;
try {
transaction = this.session.beginTransaction();
object = this.session.get(clazz, key);
this.session.delete(object);
transaction.commit();
isOK = true;
log.debug("删除 " + clazz + ":key=" + key + "成功");
} catch (HibernateException e) {
isOK = false;
if (transaction != null) {
try {
transaction.rollback();
} catch (HibernateException e1) {
e1.printStackTrace();
}
}
e.printStackTrace();
log.error("删除 " + clazz + ":key=" + key + "失败");
} finally {
}
return isOK;
}
public static void main(String[] args) {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -