`

Hibernate 数据库操作 模板基类 GenericDao

阅读更多

package com.ddhome.dao;

import java.io.Serializable;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.LockMode;
import org.hibernate.criterion.DetachedCriteria;

/**
*
* @author txc
*/
public abstract interface GenericDao {
    // -------------------- 基本检索、增加、修改、删除操作 --------------------

    // 根据主键获取实体。如果没有相应的实体,返回 null。
    public T get(PK id);

    // 根据主键获取实体并加锁。如果没有相应的实体,返回 null。
    public T getWithLock(PK id, LockMode lock);

    // 根据主键获取实体。如果没有相应的实体,抛出异常。
    public T load(PK id);

    // 根据主键获取实体并加锁。如果没有相应的实体,抛出异常。
    public T loadWithLock(PK id, LockMode lock);

    // 获取全部实体。
    public List loadAll();

    // loadAllWithLock() ?

    // 更新实体
    public void update(T entity);

    // 更新实体并加锁
    public void updateWithLock(T entity, LockMode lock);

    // 存储实体到数据库
    public void save(T entity);

    // saveWithLock()

    // 增加或更新实体
    public void saveOrUpdate(T entity);

    // 增加或更新集合中的全部实体
    public void saveOrUpdateAll(Collection entities);

    // 删除指定的实体
    public void delete(T entity);

    // 加锁并删除指定的实体
    public void deleteWithLock(T entity, LockMode lock);

    // 根据主键删除指定实体
    public void deleteByKey(PK id);

    // 根据主键加锁并删除指定的实体
    public void deleteByKeyWithLock(PK id, LockMode lock);

    // 删除集合中的全部实体
    public void deleteAll(Collection entities);

    // -------------------- HSQL ----------------------------------------------

    // 使用HSQL语句直接增加、更新、删除实体
    public int bulkUpdate(String queryString);

    // 使用带参数的HSQL语句增加、更新、删除实体
    public int bulkUpdate(String queryString, Object[] values);

    // 使用HSQL语句检索数据
    public List find(String queryString);
   
  // 使用HSQL语句检索数据 ,分页
    public List find(String queryString, Object[] values,int start,int limit);
   
    public int getRow(final String queryString, final Object[] values);

    // 使用带命名的参数的HSQL语句检索数据
    public List findByNamedParam(String queryString, String[] paramNames,
            Object[] values);

    // 使用命名的HSQL语句检索数据
    public List findByNamedQuery(String queryName);

    // 使用带参数的命名HSQL语句检索数据
    public List findByNamedQuery(String queryName, Object[] values);

    // 使用带命名参数的命名HSQL语句检索数据
    public List findByNamedQueryAndNamedParam(String queryName,
            String[] paramNames, Object[] values);

    // 使用HSQL语句检索数据,返回 Iterator
    public Iterator iterate(String queryString);

    // 使用带参数HSQL语句检索数据,返回 Iterator
    public Iterator iterate(String queryString, Object[] values);

    // 关闭检索返回的 Iterator
    public void closeIterator(Iterator it);

    // -------------------------------- Criteria ------------------------------

    // 创建与会话无关的检索标准对象
    public DetachedCriteria createDetachedCriteria();

    // 创建与会话绑定的检索标准对象
    public Criteria createCriteria();

    // 使用指定的检索标准检索数据
    public List findByCriteria(DetachedCriteria criteria);

    // 使用指定的检索标准检索数据,返回部分记录
    public List findByCriteria(DetachedCriteria criteria, int firstResult,
            int maxResults);

    // 使用指定的实体及属性检索(满足除主键外属性=实体值)数据
    public List findEqualByEntity(T entity, String[] propertyNames);
    public T       findUniqueEqualByEntity(T entity, String[] propertyNames);
    public T       findUniqueByCriteria(DetachedCriteria criteria);
    public List findEqualByEntity(T entity, String[] propertyNames,int fromIdx,int fetchCount);

    // 使用指定的实体及属性(非主键)检索(满足属性 like 串实体值)数据
    public List findLikeByEntity(T entity, String[] propertyNames);

    // 使用指定的检索标准检索数据,返回指定范围的记录
    public Integer getRowCount(DetachedCriteria criteria);

    // 使用指定的检索标准检索数据,返回指定统计值
    public Object getStatValue(DetachedCriteria criteria, String propertyName,
            String StatName);

    // -------------------------------- Others --------------------------------

    // 加锁指定的实体
    public void lock(T entity, LockMode lockMode);

    // 强制初始化指定的实体
    public void initialize(Object proxy);

    // 强制立即更新缓冲数据到数据库(否则仅在事务提交时才更新)
    public void flush();

}

分享到:
评论

相关推荐

    MFC数据库基类模板

    MFC数据库基类模板是开发者常用的一种工具,它帮助程序员快速地创建数据库相关的类,以实现对数据库的增、删、改、查等基本操作,从而避免重复编写大量繁琐的代码。 MFC数据库支持的主要库有两个:ODBC(Open ...

    C# 数据库操作基类

    C# 数据库操作基类 包括存储过程和事务处理

    基于连接池数据库操作基类

    首先,"基于连接池数据库操作基类"是指设计一个基类,该基类使用数据库连接池技术来管理数据库连接。数据库连接池是一种管理数据库连接的机制,它可以重复使用已打开的连接,而不是每次需要时都创建新的连接,这样...

    C#数据库操作基类

    c#数据操作基类如何将Sql Server 表的结构导出到Word或Excel

    vc数据库操作基类ADO C++

    **VC++数据库操作基类ADO C++** 在微软的Visual C++(VC++)环境中,进行数据库操作时,我们常常会使用ActiveX Data Objects (ADO) 技术。ADO是.NET框架的一部分,允许开发者通过简单易用的接口访问各种数据库系统...

    数据库操作基类

    数据库操作基类是编程中一个重要的设计模式,它通常用于封装数据库访问的通用逻辑,提供一个统一的接口供其他类使用。这样的设计可以提高代码的可重用性、可维护性和可扩展性,同时降低耦合度。在这个基类中,我们...

    C# ADO.NET数据库操作基类(不好用你拿砖头拍)

    总的来说,"SqlHelper.cs"类作为数据库操作的基类,封装了数据库连接、命令执行、参数处理等常见任务,简化了C#应用中的数据库交互。开发者可以根据实际需求扩展此类,增加更多的功能,如事务处理、数据分页等。在...

    数据库访问基类(access和MSSQL)

    数据库访问基类是软件开发中一个重要的设计模式,主要用于封装数据库操作,降低代码的耦合度,提高可维护性和可扩展性。在这个特定的案例中,我们有一个名为"数据库访问基类(access和MSSQL)"的基类,它支持两种常见...

    C# 数据库连接基类 DataBas

    在本主题中,"C# 数据库连接基类 DataBas" 涉及到创建一个基础类来处理数据库连接、查询以及数据操作,如增删改查(CRUD)操作。"PageDataSource" 提到了数据分页功能,这是在显示大量数据时常用的一种优化方法。 ...

    PHP基于单例模式实现的数据库操作基类

    本文实例讲述了PHP基于单例模式实现的数据库操作基类。分享给大家供大家参考,具体如下: 配置文件: <?php $db = array( 'host'=>'localhost', 'user'=>'root', 'password'=>'', 'database'=>'test', ) ?&...

    .Net数据库操作基类 - 通用于Windows及Linux的Mono环境

    1、.Net数据库操作基类,支持Mysql、Sql Server、Oracle等多种数据库; 2、同一项目可以支持调用不同数据库,只需在调用前调用DataBaseOperator.Init方法; 3、采用绑定变量调用,参数通过ParamCollections对象实现...

    SQLserver数据库开发文档模板

    《SQL Server数据库开发文档模板详解》 在数据库开发过程中,一套规范、详尽的文档是至关重要的。"SQL Server数据库开发文档模板"提供了一个全面的框架,帮助开发者系统地记录和规划数据库的设计、实现和维护过程。...

    cshapr连接数据库--SqlHelper基类

    在C#中,为了简化数据库操作,开发者通常会创建一个名为`SqlHelper`的基类,它提供了一种方便的方式来执行SQL命令,如查询、插入、更新和删除等操作。本文将深入探讨`SqlHelper`基类及其在C#中连接和操作SQL数据库的...

    orcal连接数据库的基类for vs

    本教程将详细讲解如何在C#中使用基类来实现Oracle数据库的连接,以及如何进行JSON数据的处理和数据库操作。 一、Oracle数据库连接基础 在C#中连接Oracle数据库,我们需要引用Oracle提供的ODP.NET(Oracle Data ...

    Hibernate操作持久化对象

    Hibernate的核心在于提供对象-关系映射(ORM)服务,使得开发者能够以面向对象的方式来管理和操作数据库中的数据,从而减少了直接使用JDBC进行数据操作时的复杂性和错误。 为什么需要Hibernate? 在传统的JDBC编程中...

    安卓数据库基类

    "安卓数据库基类"通常指的是为Android应用程序创建一个基础数据库操作类,它提供了一系列通用的方法来执行CRUD(Create, Read, Update, Delete)操作,使开发者可以更加便捷地进行数据库交互。这种基类的实现通常...

    再发一个基于Hibernate+Spring 泛型GenericDao 的工程源码.

    在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者用Java对象来操作数据库,而无需直接编写SQL语句。Spring框架则是一个全面的企业级应用开发框架,提供了依赖注入、事务管理、AOP(面向切...

    Net连接数据库基类 SQLHelper

    Net连接数据库基类 SQLHelper

Global site tag (gtag.js) - Google Analytics