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

📄 javafishhibernatedao.java

📁 struts+hiernate+spring分页
💻 JAVA
字号:
/**
 * 
 */
package javafish.dao.hibernate;

import java.util.List;
import java.sql.SQLException;

import javafish.model.JavaFish;
import javafish.dao.IJavaFishDAO;

import net.sf.hibernate.type.*;
import net.sf.hibernate.Query;
import net.sf.hibernate.Session;
import net.sf.hibernate.Hibernate;
import net.sf.hibernate.HibernateException;


import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate.HibernateCallback;
import org.springframework.orm.hibernate.support.HibernateDaoSupport;

/**
 * @author longjiang
 * @version 1.0
 * 这个类是持久层DAO接口的具体实现类,这个类将在Spring的applicationContext.xml文件定义,
 * 并且作为一个属性在业务层中注入,具体可参照applicationContext.xml文件和JavaFishServiceImpl类
 * 利用Sring提供的HibernateDaoSupport让程序代码继续减少
 */
public class JavaFishHibernateDAO extends HibernateDaoSupport implements IJavaFishDAO
{
	private static final Log logger = LogFactory.getLog(JavaFishHibernateDAO.class);

    private static final String LOAD_USERNAME="from JavaFish as fish where fish.username= ? " ;
    private static final String LOAD_UNAMEPASS="from JavaFish as fish where fish.username=? and fish.password=? ";
    private static final String LOAD_COUNT="select count(*) from JavaFish as fish";
	public JavaFish findById(Long id)
	{
		// TODO Auto-generated method stub
		return (JavaFish)getHibernateTemplate().get(JavaFish.class,id);
	}

	public JavaFish findByUserName(String username)
	{
		// TODO Auto-generated method stub
		return (JavaFish)getHibernateTemplate().find(LOAD_USERNAME,username);
	}

	public JavaFish findByUserNamePassWord(String username, String password)
	{
		// TODO Auto-generated method stub
		Object up[]={username,password};
		List l=getHibernateTemplate().find(LOAD_UNAMEPASS,up);
		if(l.size()==0)
		{
			return null;
		}
		else
		{
			return(JavaFish)l.get(0);
		}
	}
    //注意此方法的形式参数必须是final
	public List findJavaFishInList(final String orderby,final String ascordesc,final int firstResult, final int maxResults)
	{
		// TODO Auto-generated method stub
		return getHibernateTemplate().executeFind(new HibernateCallback(){
			public Object doInHibernate(Session s)throws HibernateException ,SQLException{
				String q="from JavaFish as fish order by fish." +orderby+ " "+ascordesc;
				Query query=s.createQuery(q);
				query.setFirstResult(firstResult);
		        query.setMaxResults(maxResults);
		        List list = query.list();
		        return list;
			}
		});
	}

	public int getAllNum()
	{
		// TODO Auto-generated method stub
		try
		{
			List l=getHibernateTemplate().find(LOAD_COUNT);
			if(!l.isEmpty())
			{
				return ((Integer) l.get(0)).intValue();
			}
			else
			{
				return 0;
			}
		}
		catch(DataAccessException ex)
		{
			logger.equals(ex);
			return 0;
		}
	}
	
	public JavaFish getJavaFish(long id) {
	    String q = "from JavaFish" +
	        " bm where bm.id = ?";
	    Object[] o = {
	        new Long(id)};
	    List l = this.getHibernateTemplate().find(q, o);
	    if (l.size() == 0) {
	      return null;
	    }
	    else {
	      return (JavaFish) l.get(0);
	    }
	  }
	
	 /*
		  此方法就是根据id号删除一个持久化对象 
	       此方法需要注意 1:void 方法不需要 return
		  2:我们通过getHibernateTemplate()调用的是execute()方法,
		  并没有通过getHibernateTemplate()调用executeFind()方法。
	 */
	public void removeJavaFish(final long id)
	{
		// TODO Auto-generated method stub
		getHibernateTemplate().execute(new HibernateCallback(){
			public Object doInHibernate(Session s) throws HibernateException,SQLException{
				String q="from JavaFish as fish where fish.id= ? ";
				Object[] o = {new Long(id)};
				Type[] t = {Hibernate.LONG};
				s.delete(q,o,t);
				return null;
			}
		});
	}
	

	public JavaFish saveJavaFish(JavaFish javafish)
	{
		// TODO Auto-generated method stub
		try
		{
			getHibernateTemplate().saveOrUpdate(javafish);
			return javafish;
		}
		catch(DataAccessException ex)
		{
			return null;
		}
	}
    
}

⌨️ 快捷键说明

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