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