📄 icommondao.java
字号:
package com.iplan.portal.framework.base.hibernate;
import java.io.Serializable;
import java.sql.SQLException;
import java.util.Collection;
import java.util.List;
//import jdt.domain.pojo.PaginationSupport;
import org.apache.commons.beanutils.RowSetDynaClass;
import org.hibernate.criterion.DetachedCriteria;
/**
* <p>
* 系统访问Hibernate访问数据库的接口,所有对数据库的访问都通过此类来完成。
* </p>
* <p>
* http://www.hao-se.cn
* </p>
*
* @author ws
*/
public interface ICommonDAO {
public void setCacheQueries(boolean cacheQueries);
public void setQueryCacheRegion(String queryCacheRegion);
public void save(final Object entity);
public void saveOrUpdate(final Object entity);
public void persist(final Object entity);
public void update(final Object entity);
/**
* 执行SQL语句,返回没有对象化的记录行。这个方法主要应用于查询多个表,得到多个表中的混合字段的情况。SQL语句为标准的数据库 SQL语句。
*
* @return RowSetDynaClass类型的记录集
*/
public RowSetDynaClass findBySQL(String queryString);
/**
* 执行SQL语句,返回没有对象化的记录行。这个方法主要应用于查询多个表,得到多个表中的混合字段的情况。SQL语句为标准的数据库 SQL语句。
*
* @return RowSetDynaClass类型的记录集
*/
public RowSetDynaClass findBySQL(String queryString, Object[] params);
/**
* 执行SQL语句,不返回数据库中的任何记录。只返回语句是否被成功执行的结果,SQL语句为标准的数据库 SQL语句。
*
* @return sql 语句执行是否成功
*/
public boolean executeSQLStatement(String sqlStatement, Object[] params)
throws SQLException;
/**
* 执行SQL语句,不返回数据库中的任何记录。只返回语句是否被成功执行的结果,SQL语句为标准的数据库 SQL语句。
*
* @return sql 语句执行是否成功
*/
public boolean executeSQLStatement(String sqlStatement) throws SQLException;
/**
* 删除给定的持久实体类
*
* @return 无返回
*/
public void delete(final Object entity);
/**
* 根据类名及主键值得到主键值对应记录行的实体对象
* 由于使用load可以使用内部缓存和二级缓存,同时可以实现延迟加载,所以在实体类的获取时请尽量使用load方法,而不要使用get方法。
*
* @return Object类型的对象(此对象可以被转换为对应的POJO对象)
*/
public Object load(final Class entityClass, final Serializable id);
/**
* 根据类名及主键值得到主键值对应记录行的实体对象
* 原则上不建议使用此方法得到POJO对象,但在需要直接从数据库中拿到真实数据,而不从二级缓存中获得时,可以使用此方法。
*
* @return Object类型的对象(此对象可以被转换为对应的POJO对象)
*/
public Object get(final Class entityClass, final Serializable id);
/**
* 返回给定实体类的所有实体对象,既返回表中的所有记录
*
* @return 返回包括给定的实体类对象的List集合
*/
public List findAll(final Class entityClass);
/**
* 根据在Hbm中定义的查询来获得数据,此方法原则上在HQL语句中定义参数,如果需要使用参数,请调用带参数的此方法
*
* @param queryName hbm中定义的查询名称
* @see findByNamedQuery(final String queryName, final Object parameter);
* @return 返回包括查询中定义的实体类对象的List集合
*/
public List findByNamedQuery(final String queryName);
/**
* 根据在Hbm中定义了一个查询条件的HQL查询来获得数据,其中hbm中的参数以?形式表示,如where user.name=?
*
* @param queryName hbm中定义的查询名称.
* @param parameter 参数的值,为hibernate可以接受的任何数据类型
* @return 返回包括查询中定义的实体类对象的List集合
*/
public List findByNamedQuery(final String queryName, final Object parameter);
/**
* 根据在Hbm中定义了多个固定查询条件的HQL查询来获得数据,其中hbm中的参数以?形式表示,如where user.name=? and
* user.address=?
*
* @param queryName hbm中定义的查询名称.
* @param parameters 对象数组的参数值,数组中的对象为hibernate可以接受的任何数据类型
* @return 返回包括查询中定义的实体类对象的List集合
*/
public List findByNamedQuery(final String queryName,
final Object[] parameters);
/**
* 根据HQL语句返回数据
*
* @param queryString 查询的HQL,此方法原则上不建议将where子句包括在里面,如where user.state=1等。
* 不能直接将条件及参数写在HQL中,如需要使用参数,请使用带参数的此方法
* @see find(final String queryString, final Object parameter);
* @see find(final String queryString, final Object[] parameters);
* @return 返回包括查询中定义的实体类对象的List集合
*/
public List find(final String queryString);
/**
* </h1>
* 根据HQL语句及参数返回相应的数据。HQL中的参数定义使用?来表示,如:where user.name=?
*
* @param queryString 需要查询的HQL.
* @param parameter 参数的值,为hibernate可以接受的任何数据类型
* @return 返回包括查询中定义的实体类对象的List集合
*/
public List find(final String queryString, final Object parameter);
/**
* </h1>
* 根据HQL语句及多个查询条件返回相应的数据。HQL中的参数定义使用?来表示,如:where user.name=? and
* user.address=?
*
* @param queryString 需要查询的HQL.
* @param parameters 对象数组的参数值,数组中的对象为hibernate可以接受的任何数据类型
* @return 返回包括查询中定义的实体类对象的List集合
*/
public List find(final String queryString, final Object[] parameters);
// public PaginationSupport findPageByCriteria(
// final DetachedCriteria detachedCriteria);
//
// public PaginationSupport findPageByCriteria(
// final DetachedCriteria detachedCriteria, final int startIndex);
//
// public PaginationSupport findPageByCriteria(
// final DetachedCriteria detachedCriteria, final int pageSize,
// final int startIndex);
/**
* 此方法适用于动态地组合查询某个类的实例的情况(既查询条件及查询条件为动态组合而成时)。
*
* @param detachedCriteria 包括了组合条件及条件值的Criteria
* @return 返回符合查询条件的实体类对象的List集合
*/
public List findByCriteria(final DetachedCriteria detachedCriteria);
/**
* 获得组合条件下的某类的记录数
*
* @param detachedCriteria 包括了组合条件及条件值的Criteria
* @return 返回符合查询条件的记录数
*/
public int getCountByCriteria(final DetachedCriteria detachedCriteria);
/**
* 删除多个实体类的方法
*
* @param entities 包括实体类的collection集合
* @return 无返回
*/
public void deleteAll(Collection entities);
/**
* 批量删除某表中的数据
*
* @param queryString 删除数据的HQL语句,如delete from user where state=?
* @param parameters 对象数组的参数值,数组中的对象为hibernate可以接受的任何数据类型
* @return 无返回
*/
public void bacthdelete(final String queryString, final Object[] parameters);
/**
* 批量删除某表中的数据
*
* @param queryString 删除数据的HQL语句,如update from user set address=? where
* state=?
* @param parameters 对象数组的参数值,数组中的对象为hibernate可以接受的任何数据类型
* @return 无返回
*/
public void batchupdate(final String queryString, final Object[] parameters);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -