import java.io.Serializable;
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;
/***
* BaseDao 继承至HibernateDaoSuport类;
* @author wangxiuwei
*
*/
public class BaseDao extends HibernateDaoSupport {
/***
* 添加方法;
*/
public void add(Object obj){
super.getHibernateTemplate().save(obj);
}
/***
* 修改方法;
*/
public void update(Object obj){
super.getHibernateTemplate().update(obj);
}
/***
* 根据对象删除;
*/
public void deleteByObj(Object obj){
super.getHibernateTemplate().update(obj);
}
/***
* 根据主键删除;
* @param id
*/
public void deleteById(Class c,Serializable id){
this.deleteByObj(this.queryById(c, id));
}
/***
* 查询全部;
* @param c
* @return
*/
public List queryAll(Class c){
return super.getHibernateTemplate().find("from "+c.getName());
}
/***
* 按主键查询;
* @param c
* @return
*/
public Object queryById(Class c,Serializable id){
return super.getHibernateTemplate().load(c, id);
}
/***
* 按条件删除或者修改;
* @return
*/
public boolean updateOrDelete(String hql,Object...objects){
int result=super.getHibernateTemplate().bulkUpdate(hql, objects);
return result>0;
}
/***
* 保存或者更新;
* @param obj
*/
public void saveOrUpdate(Object obj){
super.getHibernateTemplate().saveOrUpdate(obj);
}
/***
* 分页查询;
* @return
*/
public List queryPage(final String hql,final Integer page,final Integer size,final Object...objects){
return super.getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
// TODO Auto-generated method stub
Query query=session.createQuery(hql);
if(objects!=null){
for (int i=0;i<objects.length;i++) {
query.setParameter(i,objects[i]);
}
}
if(page!=null && size!=null){
query.setFirstResult((page-1)*size).setMaxResults(size);
}
return query.list();
}});
}
}
分享到:
相关推荐
"Hibernate封装DAO层"就是将Hibernate的功能整合到DAO设计模式中,以实现更加高效、规范的数据库操作。 1. **DAO设计模式**: DAO模式是软件设计模式的一种,它的核心思想是创建一个独立于具体数据库操作的对象,...
使用Dao封装类的好处在于,开发人员可以专注于业务逻辑,而不必关心底层数据库的细节,同时,由于所有数据库操作集中在Dao层,便于进行性能优化和维护。在大型项目中,这种封装方式尤为重要,因为它使得团队成员可以...
Mybatis通用DAO设计封装主要涉及的是在Java开发中如何高效地使用Mybatis框架进行数据库操作。Mybatis是一款轻量级的持久层框架,它避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。通过提供自定义SQL、存储...
在这个"dao封装包"中,我们通常会找到一系列与数据库交互的接口和实现类,它们负责对数据进行增删查改(CRUD)操作。 在Java开发中,DAO接口定义了各种数据库操作的方法,比如查询、插入、更新和删除数据。这些方法...
通过将公共通用操作写进父类简化代码,提高代码的复用。 面向接口 使用继承 泛型 引入JPA API查询 以及 元数据 提高代码的安全性.
自己封装的dao层,自我感觉很牛逼。可以下下来看看,提点优化建议
在`DataBaseDemo`项目中,你可以看到如何结合以上步骤实现一个简单的Android应用,展示如何创建用户、查询所有用户、更新用户信息以及删除用户等功能。该项目将帮助你更好地理解和实践Android中的ORM封装。 总结来...
本主题主要探讨的是如何使用泛型和反射技术来实现Hibernate对DAO的封装,从而创建一个通用的DAO模板,减少开发者重复编写CRUD(Create、Read、Update、Delete)操作的工作。 首先,我们需要理解DAO(Data Access ...
Spring Data为DAO层提供了强大的抽象,使得开发者可以通过简单的注解来实现复杂的数据库操作。 3. Spring Data MongoDB Spring Data对MongoDB的支持体现在Spring Data MongoDB模块中,它允许开发者通过Java的...
以下是关于MongoTemplate及它在 Dao 层中使用的一些关键知识点: 1. **MongoTemplate的引入**: - 在Java项目中,我们需要添加Spring Data MongoDB的依赖库,以便使用MongoTemplate。通常这会通过Maven或Gradle的...
ifunsu封装基于springjdbc的dao层,具体用法请看本站博客http://blog.csdn.net/ifunsu 。
GenericHibernateDao 继承 HibernateDao,简单封装 HibernateTemplate 各项功能,简化基于Hibernate Dao 的编写。
SpringMVC+Mybatis整合及dao、service强封装:一、SPringMVC与Mybatis框架整合,其中SpringMVC主要采用注解方式实现,Mybatis采用xml为主,对数据库开发、测试、部署环境进行分离配置;二、在封装上针对Mybatis进行...
用JDBC做一个简易的购物车。主要的实现功能有:1....2.进入购物界面,选择商品以及数量,...使用到的方法有Dao封装,数据库连接的封装,jq的事件绑定,session的各种方法等。 方便理解,JDBC小白的第一个简易购物车项目。
本篇将围绕“Spring3 JDBC通用DAO封装”这一主题展开,介绍如何实现一个高效的DAO层,并分享相关代码示例。 1. **Spring3 JDBC概述** Spring3 JDBC通过提供JdbcTemplate和SimpleJdbcInsert等工具类,帮助开发者...
springMvc+Mybatis 最新版+Dao 层封装; 使用了 2016-07-28 maven 上下载的当前最新版本jar包 4.3.2 搭建的 springMVC + Mybatis +DAO 层封装..仅供参考学习...
S3H3 注解 DAO封装 自动创建表 在过去几年里,Hibernate不断发展,几乎成为Java数据库持久性的事实标准。它非常强大、灵活,而且具备了优异的性能。在本文中,我们将了解如何使用Java 5 注释来简化Hibernate代码,并...
标题"ifunsu封装基于springjdbc的dao层api"指的是一个特定的项目或库,名为ifunsu,它已经对Spring JDBC进行了封装,以创建更易用的数据访问对象(DAO)层API。DAO层是应用程序中负责与数据库进行交互的部分,通常...
在这个基于Annotation并对DAO层封装具有分页功能的S2SH整合实例中,我们将探讨如何利用这些技术的特性来提高开发效率和代码可维护性。 首先,让我们深入了解一下Struts2。Struts2是基于MVC模式的开源Web应用框架,...
以下是一个基本的DAO封装示例: ```javascript const MongoClient = require('mongodb').MongoClient; const assert = require('assert'); class MongoDBDAO { constructor(url) { this.url = url; this.db = ...