package auh.dao;
import java.sql.SQLException;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
* GeneralDaoImpl
* @author 可可
* @param table 保存数据表名,进行操作前必须设置此属性
* @param Package 存放数据表的pojo的包,默认为"auh.model"
*/
public class GeneralDaoImpl extends HibernateDaoSupport implements GeneralDao {
private String table;
private String Package;
public GeneralDaoImpl(){
this.Package="auh.model";
}
public String getTable() {
return table;
}
public String getPackage() {
return Package;
}
public void setPackage(String package1) {
this.Package = package1;
}
public void setTable(String table) {
this.table = table;
}
public Boolean isNullTable(){
if(table==null)return true;
else return false;
}
public List<Object> FindAllDesc() {
return (List<Object>)getHibernateTemplate().find("from "+table+" a order by a.id desc");
}
public List<Object> FindAll() {
return (List<Object>)getHibernateTemplate().find("from "+table);
}
public Object FindById(int id) {
String sql="from "+table+" where id=?";
List<Object> list=getHibernateTemplate().find(sql,id);
if(list!=null)return list.get(0);
else return null;
}
/**
* 根据条件查找
* @param query 查询的逻辑表达式,例如:name=?
* @param value 将替换query中的'?'
* @return List
*/
public List<Object> FindWhere(String query, Object value) {
if(query==null||value==null)query="from "+table;
else query="from "+table+" where "+query;
return (List<Object>)getHibernateTemplate().find(query,value);
}
/**
* 根据条件查找
* @param query 查询的逻辑表达式,例如:name=? and pass=?
* @param values 将依次替换query中的所有'?'
* @return List
*/
public List<Object> FindWhere(String query, Object[] values) {
if(query==null||values==null)query="from "+table;
else query="from "+table+" where "+query;
return (List<Object>)getHibernateTemplate().find(query,values);
}
public String Save(Object ob) {
getHibernateTemplate().save(ob);
return "success";
}
public String DeleteById(int id) {
Object u=getHibernateTemplate().load(Package+"."+table, new Integer(id));
getHibernateTemplate().delete(u);
return "success";
}
public String Delete(Object ob) {
// TODO Auto-generated method stub
getHibernateTemplate().delete(ob);
return "success";
}
public String Update(Object ob) {
getHibernateTemplate().update(Package+"."+table,ob);
return "success";
}
public String SaveOrUpdate(Object ob) {
getHibernateTemplate().saveOrUpdate(ob);
return "success";
}
public int FindMaxId() {
List<Integer> list=getHibernateTemplate().find("select max(id) from "+table);
if(list!=null && list.size()>=1 && list.get(0)!=null)
return list.get(0);
return 0;
}
/**
* 根据条件统计同记录数
* @param query 查询的逻辑表达式,例如:name=?
* @param value 将替换query中的'?'
* @return int 总的记录数
*/
public int SumWhere(String query, Object value) {
// SUM(id) AS Expr1
if(query==null||value==null)query="select count(id) from "+table;
else query="select count(id) from "+table+" where "+query;
List<Long> list=getHibernateTemplate().find(query,value);
if(list!=null && list.size()>=1 && list.get(0)!=null)
return list.get(0).intValue();
return 0;
}
/**
* 根据条件分页查找
* @param hql 查询的条件,例如:from message where type =‘admin’
* @param currentPage 要查询的页数
* @param pageSize 每页大小
* @return List
*/
public List<Object> queryForPage(final String hql,final int currentPage,final int pageSize) {
// TODO Auto-generated method stub
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery(hql);
query.setFirstResult((currentPage-1)*pageSize);
query.setMaxResults(pageSize);
List list = query.list();
if(list.size()<1)
return null;
return list;
}
});
return list;
}
/**
* 根据条件统计同记录数
* @param query 查询的逻辑表达式,例如:from message uid=2
* @return int
*/
public int getAllRowCount(String hql) {
if(hql==null)return 0;
hql="select count(id) "+hql;
List<Long> list=getHibernateTemplate().find(hql);
if(list!=null && list.size()>=1 && list.get(0)!=null)
return list.get(0).intValue();
return 0;
}
/**
* 根据条件查找最上面的记录
* @param hql 查询的条件,例如 "from Lanmu where type=rule"
* @param sum 要查询的个数
* @return List
*/
public List<Object> Top(final int sum,final String hql) {
// TODO Auto-generated method stub
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery(hql);
query.setFirstResult(0);
query.setMaxResults(sum);
List list = query.list();
if(list.size()<1)return null;
return list;
}
});
return list;
}
}
分享到:
相关推荐
java ssh通用DAO另类实现示例 java ssh通用DAO另类实现示例
基本上可以在SSH中通用的dao组件 sd fs fs df sd
基于注解ssh的通用dao的crud,spring4+struts2+hibernate4
ssh通用泛型DAO 共包含3个类:BaseHibernateDAO,Page,QueryParameter
通用SSH2结构的增删查改标准代码, bean,HBM文件为自定义, service,dao接口为标准可重用 ...action 调用通用service,service调用通用dao 调用关系用spring 配址文件设置 因为上传限制问题,把lib目录下的jar文件都删掉了
再次打造SSH1整合下的通用泛型DAO+分页,基于HibernateTemplate,欢迎大家指正 - DAO - Java - JavaEye论坛_files
一个通用的基于泛型的dao层,可以减少程序的工作量,方法齐全
这个是不同类型的表单通用的dao模式,简洁明了,注释清楚,可移植性很强
NULL 博文链接:https://ap0406708.iteye.com/blog/537709
struts2 spring hibernate maven 实现 商品管理,实现增加、删除、修改、查询 通用dao实现
该模板是SSH框架的整合,是为了方便开发人员所搭建的架构,里面有自定义标签分页,还有许多通用方法。具体的代码大家下来看看,就不多说了
一、背景.........................................2 ...使用“工厂方法”模式实现DAO 工厂的策略.........................................12 使用抽象工厂模式.........................................13
使用ssh搭建框架+jpa+注解的使用 和通用Dao的使用集成SSH框架
标准的SSH项目~dao类经过了整合,继承了通用接口~并且实现了事务的配置,连接的是MYSQL数据库,程序拉下来直接能跑,首先你要有MYSQL数据库~
全自动生成Struts2 Hibernate3.6 Spring2.5 自动生成DAO,Service,Action,以及配置文件; 运行CreateSrc.java文件, 修改main()中的方法, 自定义要生成对象的名称; 运行后,请刷新工程可看到生成的文件
否则只能查看 11) Dao 操作优化 BaseDao.java 所有dao的通用方法,dao都必须继承此类 (反射泛型)实现步骤代码:1) 设计数据库:
教学-传智播客-项目视频经典之作巴巴运动网106集-28将Web层分页封装成通用模块源代码 所需要的jar文件: (一)、Hibernate: 位于 "\hibernate-distribution-3.3.2.GA" 目录下的jar文件: hibernate3.jar 位于 "\...
18.3 关于hibernate框架中一些通用类 18.4 实现hibernate分页系统前期准备 18.5 关于hibernate分页系统的具体实现 18.6 关于hibernate分页系统的表示层 18.7 多学两招——分页标签 18.8 小结 第19...
在上次的 ssh 事务配置上修改了,可以做到配置通用性,只需要在配置中把要添加事务处理的 DAO 或 Mgr添加 <br>有什么问题可以给我留言:lovealo@163.com<br>
该demo集成了spring+springmvc+hibernate框架,里面的dao、service、entity均采用注解形式,容易开发,另外该demo中dao采用注解形式,将所有实体dao需要用到的通用方法如insert,update,delete,分页查询等均采用...