baseDao 使用spring3+hibernate3方式
package cn.zk.pic.service.dao; import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
*
* @author zh
*
* @param <T>
*/
public interface IbaseDao<T extends Serializable> { void save(T t);
void update(T t);
void save(String hql,Object[] params);
void delete(T t);
void deleteById(String hql, Object[] params);
int update(String hql,Object[] params);
T get(final Serializable id);
T load(final Serializable id);
public List<T> listNotIn(String hql, Object[] params);
public List<T> getByHqlNotIn(String hql, Object[] params);
List<T> listAll();
List<T> listFenYe(int firstResult, int maxResults);
List<T> listFenYeNotIn(int firstResult, int maxResults,
String hql, Object[] params);
long getCount();
long getCount(String hql,Object[] params);
List<T> listByHql(String hql,Object[] params);
T getByHql(String hql,Object[] params);
List<T> listFenYeAddparams(int firstResult, int maxResults,String hql,Object[] params);
List<T> queryPage(Map map,int firstResult, int maxResults,String hql) ;
long getCount(String hql, Map map);
}
package cn.zk.pic.service.dao; import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.Iterator;
import java.util.List;
import java.util.Map; import javax.annotation.Resource; import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
* BaseDaoImpl不能在类型未确定前直接实例化
* @author zh
* @param <T>
*/
public class BaseDaoImpl<T extends Serializable> extends HibernateDaoSupport implements IbaseDao<T> { @Resource(name="sessionFactory")
public void setSupperSessionFactory(SessionFactory sessionFactory){
super.setSessionFactory(sessionFactory);
} @SuppressWarnings("rawtypes")
private Class Tclass;
@SuppressWarnings("rawtypes")
public BaseDaoImpl(){
Type type = this.getClass().getGenericSuperclass();
if (type.toString().indexOf("BaseDao") != -1) {
ParameterizedType type1 = (ParameterizedType) type;
Type[] types = type1.getActualTypeArguments();
setTclass((Class) types[0]);
}else{
type = ((Class)type).getGenericSuperclass();
ParameterizedType type1 = (ParameterizedType) type;
Type[] types = type1.getActualTypeArguments();
setTclass((Class) types[0]);
}
} /**
* 保存对象
*
* @param Object
*/ public void save(T t) {
//this.getHibernateTemplate().save(t)
getSession().save(t); } /**
* 更新对象内容
*
* @param Object
*/
public void update(T t) {
//this.getHibernateTemplate().update(t);
getSession().update(t);
} /**
* 删除对象
* @param t
*/
public void delete(T t){
//this.getHibernateTemplate().delete(t);
getSession().delete(t);
} public void deleteById(String hql, Object[] params){
Query query = this.getSession().createQuery(hql);
for (int i = 0; i < params.length; i++) {
query.setParameter(i, params[i]);
}
query.executeUpdate();
} /**
* ͨ通过ID 得到对象
* @param Serializable
*/
@SuppressWarnings("unchecked")
public T get(Serializable id) {
//return (T) this.getHibernateTemplate().get(getTclass(), id);
return (T)getSession().get(getTclass(), id);
} /**
* 取得所有对象
*
*/
@SuppressWarnings("unchecked")
public List<T> listAll() {
String hql = "from "+getTclass().getSimpleName();
return this.getSession().createQuery(hql).list();
} /**
* hql解决方案
*
* @param String hql
*
* @param Object[] params
* 参数列表 顺序不能颠倒
*/ @SuppressWarnings("unchecked")
public List<T> listByHql(String hql, Object[] params) {
Query query = this.getSession().createQuery(hql);
if(null == params || params.length == 0){
return query.list();
}else{
for (int i = 0; i < params.length; i++) {
query.setParameter(i, params[i]);
}
}
return query.list();
} /**
* 同类分页
*
* @param int firstResult
* 从第几条开始
* @param int maxResults
* 要取几条
*/
@SuppressWarnings({ "unchecked" })
public List<T> listFenYe(int firstResult, int maxResults) {
String hql = "from "+getTclass().getSimpleName();
Query query = this.getSession().createQuery(hql).setMaxResults(maxResults).setFirstResult(firstResult);
return query.list();
} /**
* 取得行数
*/ public long getCount() {
String hql = "select count(*) from "+getTclass().getSimpleName();
return (Long) this.getSession().createQuery(hql).uniqueResult();
}
/**
* 懒加载load
*/
@SuppressWarnings("unchecked")
public T load(Serializable id) {
//return (T) this.getHibernateTemplate().load(this.getClass(), id);
return (T) getSession().load(this.getClass(), id);
} @SuppressWarnings("rawtypes")
public Class getTclass() {
return Tclass;
}
@SuppressWarnings("rawtypes")
public void setTclass(Class tclass) {
Tclass = tclass;
} @SuppressWarnings("unchecked")
public T getByHql(String hql, Object[] params) {
Query query = this.getSession().createQuery(hql);
for (int i = 0; i < params.length; i++) {
query.setParameter(i, params[i]);
}
return (T) query.uniqueResult();
} @SuppressWarnings("unchecked")
public List<T> getByHqlNotIn(String hql, Object[] params) {
System.out.println("Tclass:"+Tclass);
Query query = this.getSession().createSQLQuery(hql).addEntity(Tclass);
List<T> list = null ;
for (int i = 0; i < params.length; i++) {
query.setParameter(i, params[i]);
}
list = query.list();
return list;
} @SuppressWarnings("unchecked")
public List<T> listFenYeAddparams(int firstResult, int maxResults,
String hql, Object[] params) {
Query query = this.getSession().createQuery(hql);
List<T> list = null ;
if(null == params || params.length == 0){
list = query.setMaxResults(maxResults).setFirstResult(firstResult).list();
}
if(null != params || params.length != 0){
for (int i = 0; i < params.length; i++) {
System.out.println("params:"+params[i]);
query.setParameter(i, params[i]);
}
list = query.setMaxResults(maxResults).setFirstResult(firstResult).list();
}
return list;
} @SuppressWarnings("unchecked")
public List<T> listFenYeNotIn(int firstResult, int maxResults,
String hql, Object[] params) {
Query query = this.getSession().createSQLQuery(hql).addEntity(Tclass);
List<T> list = null ;
if(null == params || params.length == 0){
list = query.setMaxResults(maxResults).setFirstResult(firstResult).list();
}
if(null != params || params.length != 0){
for (int i = 0; i < params.length; i++) {
System.out.println("params:"+params[i]);
query.setParameter(i, params[i]);
}
list = query.setMaxResults(maxResults).setFirstResult(firstResult).list();
}
return list;
} @SuppressWarnings("unchecked")
public List<T> listNotIn(String hql, Object[] params) {
Query query = this.getSession().createSQLQuery(hql).addEntity(Tclass);
List<T> list = null ;
if(null != params || params.length != 0){
for (int i = 0; i < params.length; i++) {
System.out.println("params:"+params[i]);
query.setParameter(i, params[i]);
}
}
list = query.list();
return list;
} public long getCount(String hql, Object[] params) {
Query query = this.getSession().createQuery(hql);
if(null != params || params.length != 0){
for (int i = 0; i < params.length; i++) {
query.setParameter(i, params[i]);
}
}
return (Long) query.uniqueResult();
}
@SuppressWarnings("unchecked")
public List<T> queryPage(Map map,int firstResult, int maxResults,
String hql) {
StringBuffer buffer = new StringBuffer(hql);
StringBuffer wherestring = new StringBuffer();
Iterator paramnames = map.keySet().iterator();
while(paramnames .hasNext())
{
String paramname = (String) paramnames.next();
String value = null;
value = String.valueOf(map.get(paramname));
if(value!=null)
{
value = value.trim();
if(value.equals(""))
{
continue;
}
}
if(wherestring.length()==0)
{
wherestring.append(" where ");
}else{
wherestring.append(" and ");
}
wherestring.append(paramname).append("=").append(value);
buffer.append(wherestring);
}
Query query = this.getSession().createQuery(buffer.toString());
System.out.println(buffer.toString());
List<T> list = query.setMaxResults(maxResults).setFirstResult(firstResult).list();
return list;
}
public long getCount(String hql, Map map) {
StringBuffer buffer = new StringBuffer(hql);
StringBuffer wherestring = new StringBuffer();
Iterator paramnames = map.keySet().iterator();
while(paramnames .hasNext())
{
String paramname = (String) paramnames.next();
String value = null;
//value = (String) map.get(paramname);
value = String.valueOf(map.get(paramname));
if(value!=null)
{
value = value.trim();
if(value.equals(""))
{
continue;
}
}
if(wherestring.length()==0)
{
wherestring.append(" where ");
}else{
wherestring.append(" and ");
}
wherestring.append(paramname).append("=").append(value);
buffer.append(wherestring);
}
System.out.println(buffer.toString());
Query query = this.getSession().createQuery(buffer.toString());
return (Long) query.uniqueResult();
} public int update(String hql, Object[] params) {
Query query = this.getSession().createQuery(hql);
if(params == null){
return query.executeUpdate();
}
for (int i = 0; i < params.length; i++) {
query.setParameter(i, params[i]);
}
return query.executeUpdate();
} public void save(String hql, Object[] params) {
Query query = this.getSession().createQuery(hql);
for (int i = 0; i < params.length; i++) {
query.setParameter(i, params[i]);
}
query.executeUpdate();
} }
baseDao 使用spring3+hibernate3方式的更多相关文章
- baseDao 使用spring3+hibernate4方式
启动异常: java.lang.ClassCastException: org.springframework.orm.hibernate4.SessionHolder cannot be cast ...
- Struts2.0+Spring3+Hibernate3(SSH~Demo)
Struts2.0+Spring3+Hibernate3(SSH~Demo) 前言:整理一些集成框架,发现网上都是一些半成品,都是共享一部分出来(确实让人很纠结),这是整理了一份SSH的测试案例,完全 ...
- SSH项目整合教学Eclipse搭建SSH(Struts2+Spring3+Hibernate3)
这篇博文的目的 尝试搭建一个完整的SSH框架项目. 给以后的自己,也给别人一个参考. 读博文前应该注意: 本文提纲:本文通过一个用户注册的实例讲解SSH的整合.创建Struts项目,整合Hiberna ...
- Flex4+Spring3+Hibernate3+BlazeDS整合笔记
普通Java Web工程流行使用ssh框架,而当前台使用Flex制作的时候,后台就不需要用Struts了,通过使用BlazeDS远程方法调用即可. 首先,新建Java Web工程,然后添加Flex项目 ...
- Struts2+Spring3+Hibernate3+Maven构建(基于Eclipse)
长时间不做后台了,整理一下资料,以便翻阅. Eclipse.JDK安装略…… Maven下载地址:http://maven.apache.org/download.cgi 版本比较新的Eclipse基 ...
- struts2+spring3+hibernate3+mysql简单登录实现
1.导入相关的jar包 2.建立数据库 1 create table account( 2 id int(10), 3 user varchar(50), 4 paw varchar(50) 5 ); ...
- 【Struts2+Spring3+Hibernate3】SSH框架整合实现CRUD_1.3
作者: hzboy192@192.com Blog: http://my.csdn.net/peng_hao1988 版本总览:http://blog.csdn.net/peng_hao1988/ar ...
- spring3+hibernate3+(dbcp+oracle+拦截器事务配置)整合(一)
1.applicationContext-base.xml文件 <?xml version="1.0" encoding="UTF-8"?>< ...
- Struts2 Spring3 Hibernate3 集成xml版本
Struts2 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互 ...
随机推荐
- JAVA虚拟机内存分配与回收机制
Java虚拟机(Java Virtual Machine) 简称JVM Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现.Java虚拟机有自己想象中的硬件,如处理器.堆栈.寄存器等 ...
- Bootstrap-select:美化原生select
官网:http://silviomoreto.github.io/bootstrap-select/ 1.下载zip 2.html代码 <select class="selectpic ...
- Java 8开发的4大顶级技巧
我使用Java 8编码已经有些年头,既用于新的应用程序,也用来迁移现有的应用,感觉是时候写一些我发现的非常有用的“最佳实践”.我个人并不喜欢“最佳实践”这个说法,因为它意味着“一刀切”的解决方案,而编 ...
- 13、NFC技术:读写非NDEF格式的数据
MifareUltralight数据格式 将NFC标签的存储区域分为16个页,每一个页可以存储4个字节,一个可存储64个字节(512位).页码从0开始(0至15).前4页(0至3)存储了NFC标签相关 ...
- mysql Access denied for user \'root\'@\'localhost\'”解决办法总结,下面我们对常见的出现的一些错误代码进行分析并给出解决办法,有需要的朋友可参考一下。
mysql Access denied for user \'root\'@\'localhost\'”解决办法总结,下面我们对常见的出现的一些错误代码进行分析并给出解决办法,有需要的朋友可参考一下. ...
- android 性能优化大纲
性能优化系列 分为三个部分:视图篇 逻辑篇 和代码规范篇 . ------2016/9/6 视图篇 主要涵盖视图树层级优化.自定义视图.图片优化,常用布局性能缺陷等多个方面 .把平常经常 ...
- 【Python学习笔记】字典操作
字典dict是Python中唯一内置的映射类型,由键值对组成,字典是无序的.字典的键必须是不变对象,如字符串.数字.元组等,而包含可变对象的列表.字典和元组则不能作为键.这里可变和不可变的意思是指这个 ...
- Flex3.0 Loader类的练习
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="h ...
- initWithSpriteFrameName和createWithSpriteFrameName
/** * Initializes a sprite with a sprite frame name. <br/> * A cc.SpriteFrame will be fetched ...
- 第三百五十五天 how can I 坚持
快一年了,三百五十五天了,等写个程序算算时间,看看日期和天数能不能对的上,哈哈. 计划还是未制定,天气预报还是没有写完,立马行动,发完这个博客,立马行动. 计划:设计模式1个月,三大框架3个月,计算机 ...