hibernatefacade.java
来自「社区文章采用的是平板、树形自由选择的两种展示方式」· Java 代码 · 共 351 行
JAVA
351 行
/*
* Created on 2007-1-20
* Last modified on 2008-1-7
* Powered by YeQiangWei.com
*/
package com.yeqiangwei.club.dao.hibernate.support;
import java.util.Iterator;
import java.util.List;
import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.yeqiangwei.club.dao.hibernate.ConnectionManager;
import com.yeqiangwei.club.exception.DAOException;
public class HibernateFacade<Item> implements HibernateProvider<Item>{
private static final Logger logger = Logger.getLogger(HibernateFacade.class);
private Session session;
private Transaction tran;
private Query query;
public HibernateFacade() throws DAOException{
try{
session = ConnectionManager.getSession();
}catch(HibernateException e){
throw new DAOException(e.toString());
}
}
public Session getSession() throws DAOException{
if(session==null){
try{
session = ConnectionManager.getSession();
}catch(HibernateException e){
throw new DAOException(e.toString());
}
}
return session;
}
public void flush() throws DAOException{
try{
this.getSession().flush();
}catch(HibernateException e){
throw new DAOException(e.toString());
}
}
public HibernateFacade(Object o){
if(session==null){
try{
session = ConnectionManager.getSession();
} catch (DAOException e) {
logger.error(e.toString());
}
}
}
public HibernateFacade(String sql){
if(session==null){
logger.debug("session insteance:"+sql);
session = ConnectionManager.getSession();
}
this.query = this.createQuery(sql);
}
public void commitTransaction() throws DAOException{
if(tran!=null){
try{
ConnectionManager.commitTransaction();
}catch(HibernateException e){
logger.error(e.toString());
throw new DAOException(e.toString());
}
}else{
logger.error("Transaction is Null");
}
}
public void rollback() throws DAOException{
if(tran!=null){
try{
ConnectionManager.rollbackTransaction();
}catch(HibernateException e){
logger.error(e.toString());
throw new DAOException(e.toString());
}
}else{
logger.error("Transaction is Null");
}
}
public Transaction beginTransaction() throws DAOException{
try{
return tran = ConnectionManager.beginTransaction();
}catch(HibernateException e){
logger.error(e.toString());
throw new DAOException(e.toString());
}
}
public void save(Item item) throws DAOException{
logger.debug("save:"+item.getClass().getName());
try{
this.getSession().save(item);
this.getSession().flush();
}catch(HibernateException e){
logger.error(e.toString());
throw new DAOException(e.toString());
}
}
public void saveOrUpdate(Item item) throws DAOException{
logger.debug("saveOrUpdate:"+item.getClass().getName());
try{
this.getSession().saveOrUpdate(item);
this.getSession().flush();
}catch(HibernateException e){
logger.error(e.toString());
throw new DAOException(e.toString());
}
}
public void update(Item item) throws DAOException{
logger.debug("update:"+item.getClass().getName());
try{
this.getSession().update(item);
this.getSession().flush();
}catch(HibernateException e){
logger.error(e.toString());
throw new DAOException(e.toString());
}
}
public Query setFirstResult(int i){
try{
return query.setFirstResult(i);
}catch(HibernateException e){
logger.error(e.toString());
throw new DAOException(e.toString());
}
}
public Query setFetchSize(int i){
try{
return query.setFetchSize(i);
}catch(HibernateException e){
logger.error(e.toString());
throw new DAOException(e.toString());
}
}
public Query setMaxResults(int c){
try{
return query.setMaxResults(c);
}catch(HibernateException e){
logger.error(e.toString());
throw new DAOException(e.toString());
}
}
@SuppressWarnings("unchecked")
public Item uniqueResult(){
try{
return (Item)query.uniqueResult();
}catch(HibernateException e){
logger.error(e.toString());
throw new DAOException(e.toString());
}
}
@SuppressWarnings("unchecked")
public List<Item> executeQuery(){
try{
return query.list();
}catch(HibernateException e){
logger.error(e.toString());
throw new DAOException(e.toString());
}
}
@SuppressWarnings("unchecked")
public long resultTotal(){
long c = 0;
try{
Iterator<Long> it = query.iterate();
while(it.hasNext()){
Long results = (Long) it.next();
c = results.longValue();
}
}catch(HibernateException e){
logger.error(e.toString());
throw new DAOException(e.toString());
}
return c;
}
@SuppressWarnings("unchecked")
public int resultTotalInteger(){
int c = 0;
try{
Iterator it = query.iterate();
while(it.hasNext()){
Integer results = (Integer) it.next();
c = results.intValue();
}
}catch(HibernateException e){
logger.error(e.toString());
throw new DAOException(e.toString());
}
return c;
}
@SuppressWarnings("unchecked")
public Iterator iterate(){
try{
return query.iterate();
}catch(HibernateException e){
logger.error(e.toString());
throw new DAOException(e.toString());
}
}
public int executeUpdate() throws DAOException{
try{
return query.executeUpdate();
}catch(HibernateException e){
logger.error(e.toString());
throw new DAOException(e.toString());
}
}
public Query createQuery(String sql){
logger.debug("createQuery:"+sql);
try{
return query = session.createQuery(sql);
}catch(HibernateException e){
logger.error(e.toString());
throw new DAOException(e.toString());
}
}
public Query createQuery(StringBuffer sql){
return createQuery(sql.toString());
}
public void setCacheable(boolean bea){
query.setCacheable(bea);
}
public void setCacheRegion(String str){
query.setCacheRegion(str);
}
public void setByte(String name, Byte value){
query.setByte(name,value);
}
public void setByte(int name, Byte value){
query.setByte(name,value);
}
public void setShort(String name, Short value){
query.setShort(name,value);
}
public void setShort(int name, Short value){
query.setShort(name,value);
}
public void setBoolean(String name, Boolean value){
query.setBoolean(name,value);
}
public void setBoolean(int name, Boolean value){
query.setBoolean(name,value);
}
public void setString(String name, String value){
query.setString(name,value);
}
public void setString(int name, String value){
query.setString(name,value);
}
public void setLong(String name, long value){
query.setLong(name, value);
}
public void setLong(int name, long value){
query.setLong(name,value);
}
public void setInt(String name, int value){
query.setInteger(name, value);
}
public void setInt(int name, int value){
query.setInteger(name,value);
}
public void setInt(String name, Integer value){
query.setInteger(name, value);
}
public void setInt(int name, Integer value){
query.setInteger(name,value);
}
public void setParameterList(String name, Object[] obj){
query.setParameterList(name, obj);
}
@SuppressWarnings("unchecked")
public void setParameterList(String name, List list){
query.setParameterList(name, list);
}
public Query getQuery() {
return query;
}
public void setQuery(Query query) {
this.query = query;
}
public Transaction getTransaction() {
return tran;
}
public void setTransaction(Transaction tran) {
this.tran = tran;
}
public SQLQuery createSQLQuery(String hql) throws DAOException {
try {
return this.getSession().createSQLQuery(hql);
} catch (HibernateException e) {
throw new DAOException(e.toString());
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?