package com.bing.core;
import java.io.Serializable;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
* DAO接口的实现类
*
* @author David.Zhai
*
* @param <Entity>
* @param <ID>
*/
public class DAOImpl<Entity, ID extends Serializable> extends
HibernateDaoSupport implements DAO<Entity, ID> {
// 具体的实体类型
private Class<Entity> entityClass;
// HQL查询语句,可通过getter setter获取或设置其值
private String hql;
/**
* 构造方法,Entity是具体的实体名,如 DaoImpl(Class<SysUser> userClass)
* 会构造一个SysUser的DAO实现类
*
* @param entityClass
*
*/
public DAOImpl(Class<Entity> entityClass) {
this.entityClass = entityClass;
this.hql = "FROM " + entityClass.getClass();
}
public DAOImpl() {
}
@SuppressWarnings("unchecked")
public List<Entity> findAll() {
String hql = "from " + entityClass.getName();
return (List<Entity>) this.getHibernateTemplate().find(hql);
}
@SuppressWarnings("unchecked")
public Entity get(ID id) {
Object o = this.getHibernateTemplate().get(entityClass, id);
return (Entity) o;
}
public void update(Entity entity) {
this.getHibernateTemplate().update(entity);
}
public void saveOrUpdate(Entity entity) {
this.getHibernateTemplate().saveOrUpdate(entity);
}
public void delete(Entity entity) {
this.getHibernateTemplate().delete(entity);
}
public void delete(ID id) {
this.getHibernateTemplate().delete(get(id));
}
public void deleteAll(Collection<Entity> entities) {
this.getHibernateTemplate().deleteAll(entities);
}
@SuppressWarnings("unchecked")
public ID save(Entity entity) {
return (ID) this.getHibernateTemplate().save(entity);
}
/**
* 执行普通查询语句(返回结果集中指定范围的记录 分页用)
*
* @param hql
* @param args
* @return
*/
public List executeQuery(String hql, int fromIdx, int fetchCount,
Object... args) {
Session ssn = getSession();
Query q = ssn.createQuery(hql);
for (int i = 0; i < args.length; i++) {
q.setParameter(i, args[i]);
}
if (fromIdx > 0)
q.setFirstResult(fromIdx);
if (fetchCount > 0)
q.setMaxResults(fetchCount);
return q.list();
}
public int executeStatAsInt(String hql, Object... args) {
return (executeStat(hql, args)).intValue();
}
public int getTotalCount(String hql, Map map) {
try {
Query query = this.getSession().createQuery(hql);
Iterator it = map.keySet().iterator();
while (it.hasNext()) {
Object key = it.next();
query.setParameter(key.toString(), map.get(key));
}
Long i = (Long) query.list().get(0);
return Integer.parseInt(String.valueOf(i));
} catch (RuntimeException re) {
throw re;
}
}
public int executeUpdate(String hql, Object... args) {
Session ssn = getSession();
Query q = ssn.createQuery(hql);
for (int i = 0; i < args.length; i++) {
q.setParameter(i, args[i]);
}
return q.executeUpdate();
}
public List findAll(String hql, Object... args) {
return executeQuery(hql, 0, -1, args);
}
public Object uniqueResult(String hql, Object... args) {
Session ssn = getSession();
Query q = ssn.createQuery(hql);
for (int i = 0; i < args.length; i++) {
q.setParameter(i, args[i]);
}
q.setMaxResults(1);
return q.uniqueResult();
}
public Number executeStat(String hql, Object... args) {
return (Number) uniqueResult(hql, args);
}
public List executeQuery(String hql, Map map, int index, int pageSize) {
// TODO Auto-generated method stub
List<Object> result = null;
try {
Query query = this.getSession().createQuery(hql);
Iterator it = map.keySet().iterator();
while (it.hasNext()) {
Object key = it.next();
query.setParameter(key.toString(), map.get(key));
}
query.setFirstResult(index * pageSize);
query.setMaxResults(pageSize);
result = query.list();
} catch (RuntimeException re) {
throw re;
}
return result;
}
public List executeQuery(String hql) {
// TODO Auto-generated method stub
List<Object> result = null;
try {
Query query = this.getSession().createQuery(hql);
result = query.list();
} catch (RuntimeException re) {
throw re;
}
return result;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Module4.zip (65个子文件)
Module4
var
log
kernel.log 0B
src
log4j.properties 1KB
com
bing
core
DAO.java 2KB
DAOImpl.java 4KB
dao
UserDaoBean.java 220B
UserDao.java 144B
action
UserAction.java 1010B
test
UserServiceTest.java 1KB
service
UserServiceImpl.java 626B
UserService.java 223B
entity
User.java 894B
struts.xml 518B
spring-services.xml 425B
spring-hibernate.xml 3KB
spring-context.xml 292B
spring-actions.xml 284B
.project 1KB
WebRoot
META-INF
MANIFEST.MF 39B
WEB-INF
web.xml 1KB
classes
log4j.properties 1KB
com
bing
core
DAO.class 1KB
DAOImpl.class 7KB
dao
UserDaoBean.class 483B
UserDao.class 236B
action
UserAction.class 2KB
test
UserServiceTest.class 2KB
service
UserService.class 260B
UserServiceImpl.class 2KB
entity
User.class 1KB
struts.xml 518B
spring-services.xml 425B
spring-hibernate.xml 3KB
spring-context.xml 292B
spring-actions.xml 284B
lib
success.jsp 352B
index.jsp 834B
regiest.jsp 525B
.mymetadata 294B
.classpath 2KB
lib
freemarker-2.3.15.jar 859KB
commons-collections-3.1.jar 546KB
hibernate-annotations.jar 273KB
dom4j.jar 307KB
commons-logging-1.0.4.jar 37KB
dom4j-1.6.1.jar 307KB
spring.jar 2.81MB
ejb3-persistence.jar 49KB
ognl-2.7.3.jar 234KB
mysql-connector-java-5.0.8-bin.jar 528KB
javassist-3.9.0.GA.jar 583KB
hibernate-commons-annotations.jar 65KB
aspectjweaver.jar 1.47MB
struts2-spring-plugin-2.1.8.1.jar 16KB
commons-pool-1.3.jar 61KB
commons-dbcp-1.2.2.jar 119KB
aspectjrt.jar 112KB
xwork-core-2.1.6.jar 1.49MB
slf4j-log4j12-1.5.6.jar 9KB
commons-fileupload-1.2.1.jar 56KB
slf4j-api-1.5.8.jar 23KB
struts2-core-2.1.8.1.jar 738KB
log4j-1.2.15.jar 383KB
jta-1.1.jar 13KB
antlr-2.7.6.jar 433KB
hibernate3.jar 2.31MB
.myeclipse
共 65 条
- 1
资源评论
- sys20062014-03-25很不错,适合初学者
- StevenSHC2013-11-27下下来研究一下,蛮简单的例子
BingDuang
- 粉丝: 29
- 资源: 76
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功