⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 icommondao.java

📁 SSH示范
💻 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 + -