实用hibernate时候,构建DetachedCriteria查询对象(能够跨对象)就能满足很多的查询需要,推荐使用。
把通用的一些查询方法放入BaseDao,使用非常方便,举例如下:
(1)接收DetachedCriteria对象的查询
@SuppressWarnings("unchecked")
private List<Object> doExecute(final DetachedCriteria detachedCriteria, final Integer start, final Integer limit) {
DetachedCriteria dcriteria = detachedCriteria;
Criteria criteria = dcriteria.getExecutableCriteria(this.getSession());
criteria.setProjection(null);// 避免先做了统计查询,使得统计的sql仍然存在,就象缓存一样,清空!!
if (start != null) {
criteria.setFirstResult(start);
}
if (limit != null) {
criteria.setMaxResults(limit);
}
criteria.setResultTransformer(Criteria.ROOT_ENTITY);
return criteria.list();
}
(2)直接支持HQL查询
/**
* 使用占位符的方式填充值 请注意:like对应的值格式:"%"+username+"%" Hibernate Query
*
* @param hibernateTemplate
* @param hql
* @param valus 占位符号?对应的值,顺序必须一一对应 可以为空对象数组,但是不能为null
* @return 2008-07-19 add by liuyang
*/
public List<?> executeQuery(final String hql, final Object[] values) {
Query query = getSession().createQuery(hql);
// query.setCacheable(true);
for (int i = 0; values != null && i < values.length; i++) {
query.setParameter(i, values[i]);
}
return query.list();
}
分享到:
相关推荐
基于hibernate的baseDao,注释很详细,方便实用
基于hibernate封装的BaseDao,有完整的增删改查,分页,执行hql sql 方法 约 20个方法,详情地址 https://blog.csdn.net/qq_41861261/article/details/85595872
hibernate的BaseDAO源代码
对dao中的基础的增删改查和分页功能进行了封装,可以通用,代码复用性提高了
NULL 博文链接:https://zhaoshijie.iteye.com/blog/2003209
涵盖通过hibernate进行数据库操作的通用方法
hibernate中使用到的BASEDAO类,有所有方法的详细说明以及代码参考,欢迎下载
Spring整合hibernate(4)之BaseDao的编写示例 说明:因为我们在实际编码中会编写一些重复的数据库操作方法CRUD,每个类都写一次感觉很繁琐,因此可以考虑考虑把所有公共的方法都写在BaseDao中,这个时候,让所有的...
spring4+hibernate4 整合,封装BaseDao增删改查以及分页,,支持jdk1.7,不支持jdk1.8,数据源使用c3p0
BaseDao代码通用Dao
NULL 博文链接:https://uule.iteye.com/blog/941483
利用泛型编写的hibernate basedao,涵盖几乎所有数据库操作方法,需导入spring相关jar包
使用baseDao封装基本的增删改查的方法,包括分页查询等功能
NC65通过BaseDAO操作数据库,包含接口类及接口实现类: /** * 获取baseDAO * @return */ public BaseDAO getBaseDAO() { if(baseDAO == null){ baseDAO = new BaseDAO(); } return baseDAO; } public ...
自定义通用DAO实现基本的CRUD,比如: public interface BaseDao<T> { int insert(T obj) throws Exception; int update(T obj) throws Exception; int deleteByPrimaryKey(Object key) throws Exception; int ...
这是一个非常通用的数据库连接的方法,MyEclipse和sql得连接,当我们在做程序的时候有一些代码总是重复的如果你把这些重复的文件打成一个jar包就好像用sun公司提供的那些Java包一样,这样会节省你很多的时间和精力,...
hibernate dao 操作(一个basedao全部搞定) 两种配置:oracle mysql,切换数据库只要把SessionFactory的配置文件改成对应就可以了 c3p0配置:mysql调试通过,oracle由于存在问题,未配置 spring配置式事务管理...
Java通用的BaseDao(我是用连接池做的你把里面代码换一下就行了)
最全的javaJDBC技术的BaseDao,相当于框架封装了,引用之后直接调用其中的方法传递参数以及sql语句就可以使用了。
JDBC连接数据库BaseDao通用类(可以调用存储过程)