`
- 浏览:
250669 次
- 性别:
- 来自:
上海
-
package org.huy.fram.hibernate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
/** *//**
*
* <p>
* Title:[Hibernate Data Access Object Support]
* </p>
* <p>
* Description: [操作数据库支持类,其它DAO可能继承该类]
* </p>
* <p>
* Copyright 2009 Huyvanpull Co., Ltd.
* </p>
* <p>
* All right reserved.
* </p>
*
* @version 1.0
*
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
*/
public class HibDAOSupport
{
/** *//** DAO的操作po的类型 */
private Class<?> claz = null;
/** *//** 构造方法,且只应提供此种构造方法 */
public HibDAOSupport(Class<?> claz)
{
this.claz = claz;
}
/** *//**
*
* <p>
* Description:[加载对象,返回代理实例]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
* @param id
* @return
*/
public Object load(Serializable id)
{
Object entity = null;
try
{
Session session = HibernateSessionFactory.getSession();
entity = session.load(this.claz, id);
}
catch (RuntimeException re)
{
throw re;
}
return entity;
}
/** *//**
*
* <p>
* Description:[得到对象,返回实体类]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
* @param id
* @return
*/
public Object get(Serializable id)
{
Object entity = null;
try
{
Session session = HibernateSessionFactory.getSession();
entity = session.get(this.claz, id);
}
catch (RuntimeException re)
{
throw re;
}
return entity;
}
/** *//**
*
* <p>
* Description:[把实例保存到数据库]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
* @param entity
* @return
*/
public Object save(Object entity)
{
try
{
/** *//** 如果entity不是claz的实例,此处会抛出异常,下面代码不会执行 */
this.isInstance(entity);
Session session = HibernateSessionFactory.getSession();
session.save(entity);
}
catch (RuntimeException re)
{
throw re;
}
return entity;
}
/** *//**
*
* <p>
* Description:[把实例保存到数据库]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
* @param entity
* @return
*/
public Object update(Object entity)
{
try
{
/** *//** 如果entity不是claz的实例,此处会抛出异常,下面代码不会执行 */
this.isInstance(entity);
Session session = HibernateSessionFactory.getSession();
session.update(entity);
}
catch (RuntimeException re)
{
throw re;
}
return entity;
}
/** *//**
*
* <p>
* Description:[根据实列删除对象]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
* @param object
* @return
*/
public Object delete(Object entity)
{
try
{
/** *//** 如果entity不是claz的实例,此处会抛出异常,下面代码不会执行 */
this.isInstance(entity);
Session session = HibernateSessionFactory.getSession();
session.delete(entity);
}
catch (RuntimeException re)
{
throw re;
}
return entity;
}
/** *//**
*
* <p>
* Description:[根据id删除对象]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
* @param id
*/
public void deleteById(Serializable id)
{
delete(load(id));
}
/** *//**
*
* <p>
* Description:[不附加条件查询所有对象]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
* @return
*/
public List<?> findAll()
{
String hsql = "from ".concat(this.getEntityClassName());
return this.find(hsql, 0, 0);
}
/** *//**
*
* <p>
* Description:[根据hsql查询数据]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 30, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
* @param hsql
* HSQL
* @param beginIndex
* 查询起始位置
* @param pageSize
* 每页长度
* @return
*/
public List<?> find(final String hsql, final int beginIndex,
final int pageSize)
{
List<?> entityLst = null;
try
{
Session session = HibernateSessionFactory.getSession();
Query query = session.createQuery(hsql);
if (beginIndex != 0)
{
query.setFirstResult(beginIndex);
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
开发HIBERNATE,只要继承...继承的DAO类可一行代码实行增,删,改. 另外也支持查询.分页查询. 在事务方面还不完善. 代码是我自己写的.资源分要使用5点. 但大家可以在下载后点评一下.这样5点的积分就返回了.并多加了一点
`HibernateDao.java`是Hibernate框架中一个常见的数据访问对象(DAO,Data Access Object)类,它的主要职责是封装对数据库的操作,提供一套面向对象的接口,使得业务逻辑层可以无需关心底层SQL语句,直接通过对象...
标题中的“vc生成hibernate的dao类”指的是在Visual C++(vc6.0)环境下,利用特定工具或插件来自动化生成基于Hibernate框架的Data Access Object(DAO)类。DAO模式是软件设计中常用的一种模式,它将业务逻辑与数据...
8. **测试与集成**:生成的DAO类需要进行单元测试,确保其功能正常。然后将这些DAO集成到应用的业务逻辑层,通过调用DAO方法进行数据操作。 9. **优化与扩展**:生成的代码可能需要根据项目需求进行一些定制化修改...
hibernateDao工具类
HibernateDao 是一种基于 Hibernate ORM(对象关系映射)框架的通用数据访问对象,它简化了对数据库的操作,提供了更高级别的抽象,使开发者能够更加专注于业务逻辑而不是底层的数据操作。在Java开发中,Hibernate...
本文将深入探讨如何使用代理来实现Hibernate Dao层的自动事务管理,以提高代码的可维护性和事务处理的效率。 首先,理解Dao(Data Access Object)层的作用至关重要。Dao层是应用与数据库之间的一层抽象,它封装了...
《深入理解HibernateDAO的写法》 在Java企业级开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。而HibernateDAO则是基于Hibernate进行数据访问的对象,是业务逻辑层和持久层之间...
创建一个DAO接口,定义所有需要的方法,然后创建一个实现该接口的类,如`UserDaoImpl`,在这个实现类中使用Hibernate API完成实际的数据库操作。 5. **泛型DAO**: 为了进一步提高代码的复用性,可以使用泛型来...
这些DAO类包含了根据Hibernate的配置文件自动创建的CRUD(Create、Read、Update、Delete)方法,使得开发者可以直接调用,简化了代码编写工作,同时减少了潜在的错误。 **三、使用Hibernate DAO生成器的步骤** 1. ...
**Hibernate原生通用DAO**是基于Hibernate框架设计的一种简化数据访问操作的方式,它模仿了Spring框架中的`HibernateTemplate`类,旨在提供一个简单易用的DAO(Data Access Object)层,方便开发人员进行数据库操作...
然后,针对每一种具体的数据实体,可以创建一个实现了`BaseDao<T>`接口的DAO类,如`UserDaoImpl`,并在其实现中利用Hibernate Session进行数据库操作。 在实现过程中,通常会使用Spring的`@Repository`注解来标记...
它强调了该DAO类是通用的,意味着它可以被应用于多种不同的实体类型上,而不需要针对每种实体都编写特定的DAO类。 - **作用**:通过创建一个通用的DAO类,可以减少代码重复,提高代码的可维护性和可扩展性。 #### ...
而"generated-src"可能是编译后生成的源代码,这些代码可能包含了使用Java 5新特性和设计模式实现的DAO类。 结合使用设计模式和Java 5的新特性,可以创建出更高效、更易于理解和维护的Hibernate DAO层。这有助于...
首先,`HibernateBaseDao.java`是基础的Hibernate DAO类,它提供了对Hibernate操作的基本封装。这个类通常会包含如打开和关闭Session、事务管理等通用功能。例如,它可能包含以下方法: 1. `getSessionFactory()`:...
- **DAO(Data Access Object)模式**:Spring通常结合DAO模式来处理数据访问,DAO接口定义了业务逻辑,而其实现类则利用Hibernate进行数据库操作。 - **事务管理**:Spring的PlatformTransactionManager接口用于...
这是一个DAO代码生成工具,只需要配置好数据库连接信息,和按照你的需求配置要生成到的路径,运行BAT文件就会生成操作数据库的代码,可以完成增加,删除,修改,查询等操作,不需要写SQL语句,生成完全面向对象的代码....
spring集成hibernate通用dao,泛型,server都可以调用