All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.openthinks.libs.sql.dao.BaseDao Maven / Gradle / Ivy

The newest version!
/**
 * 数据库实体访问包
 */
package com.openthinks.libs.sql.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.List;

import org.apache.log4j.Logger;

import com.openthinks.libs.sql.data.Row;
import com.openthinks.libs.sql.entity.Entity;
import com.openthinks.libs.sql.lang.Condition;
import com.openthinks.libs.sql.lang.Configurator;

/**
 * 数据库实体访问基本接口
 * 
 * @author dmj
 * @version 2010/11/15
 */
public interface BaseDao {

	/**
	 * 数据库连接是否是通过池管理
	 * @return boolean 
	 */
	public boolean isUsePool();

	/**
	 * 取得数据库连接
	 * 
	 * @throws Exception ClassNotFoundException, SQLException
	 * @return Connection 连接对象
	 */
	public Connection getConn() throws Exception;

	/**
	 * 设置数据连接
	 * 
	 * @param connection
	 *            Connection连接对象
	 */
	public void setConn(Connection connection);

	/**
	 * 执行增删改标准sql语句
	 * 
	 * @param sql
	 *            增删改标准sql语句
	 * @return int 执行后影响的行数
	 */
	public int executeSql(String sql);

	/**
	 * 执行增删改标准sql语句
	 * 
	 * @param sql
	 *            增删改标准sql语句
	 * @param params
	 *            依赖的具体参数数组
	 * @return int 执行后影响的行数
	 */
	public int executeSql(String sql, String[] params);

	/**
	 * 根据条件类实例所生成的标准sql语句执行增删改
	 * 
	 * @param condition
	 *            专用于生成带条件的sql语句的对象
	 * @return int 执行后影响的行数
	 */
	public int executeSql(Condition condition);

	/**
	 * 执行查询单个值的标准查询语句
	 * 
	 * @param sql
	 *            标准查询单个值的语句
	 * @return Object 查询的结果
	 */
	public Object executeScalar(String sql);

	/**
	 * 执行查询单个值的标准查询语句
	 * 
	 * @param sql
	 *            标准查询单个值的语句
	 * @param params
	 *            依赖的具体参数数组
	 * @return Object 查询的结果
	 */
	public Object executeScalar(String sql, String[] params);

	/**
	 * 执行查询单个值的标准查询语句
	 * 
	 * @param condition
	 *            专用于生成带条件的sql语句的对象
	 * @return Object 查询的结果
	 */
	public Object executeScalar(Condition condition);

	/**
	 * 执行标准查询sql语句
	 * 
	 * @param sql
	 *            标准查询sql语句
	 * @return ResultSet 查询结果集
	 */
	public ResultSet executeQuery(String sql);

	/**
	 * 执行标准查询sql语句
	 * 
	 * @param sql
	 *            标准查询sql语句
	 * @param params
	 *            依赖的具体参数数组
	 * @return ResultSet 查询结果集
	 */
	public ResultSet executeQuery(String sql, String[] params);

	/**
	 * 执行标准查询sql语句
	 * 
	 * @param condition
	 *            专用于生成带条件的sql语句的对象
	 * @return ResultSet 查询结果集
	 */
	public ResultSet executeQuery(Condition condition);

	/**
	 * 返回满足查询条件的所有行的集合列表
* * @param sql * 标准查询sql语句,支持跨表查询 * @param params * sql语句依赖的具体参数数组 * @return List 实现Row接口类型的集合列表 */ public List list(String sql, String[] params); /** * 返回满足查询条件的所有行的集合列表
* * @param sql * 标准查询sql语句,支持跨表查询 * @return List 实现Row接口类型的集合列表 */ public List list(String sql); /** * 返回满足查询条件的所有行的集合列表
* * @param condition * 专用于生成带条件的sql语句的对象 * @return List 实现Row接口类型的集合列表 */ public List list(Condition condition); /** * 返回满足查询条件的实体类的集合列表
*
遵循实体类模板反射,可选择配置映射. *
    *
  1. 外表映射文件
  2. *
  3. 实体类重写父类Entity的get,set方法
  4. *
  5. 无配置默认实体类中的各属性字段与数据库表中的字段名称相同,区分大小写.
  6. *
*
* NOTE:
* 查询的实体Class类型,需是Entity的子类型
* 标准查询sql语句,不支持跨表查询
* @deprecated * please use: {@link #list(Class, String)} * @param entity child class * @param clz * 查询的实体Class类型,需是Entity的子类型 * @param sql * 标准查询sql语句,不支持跨表查询 * @return List 实体类Entity或其子类的集合列表 * @see Entity */ @Deprecated public List listEntity(Class clz, String sql); /** * 返回满足查询条件的实体类的集合列表
*
遵循实体类模板反射,可选择配置映射. *
    *
  1. 外表映射文件 *
  2. 实体类重写父类Entity的get,set方法 *
  3. 无配置默认实体类中的各属性字段与数据库表中的字段名称相同,区分大小写. *
* NOTE:
* 查询的实体Class类型,需是Entity的子类型
* 标准查询sql语句,不支持跨表查询
* @deprecated * please use: {@link #list(Class, String, String[])} * @param entity child class * @param clz * 查询的实体Class类型,需是Entity的子类型 * @param sql * 标准查询sql语句,不支持跨表查询 * @param params * sql语句依赖的具体参数数组 * @return List 实体类Entity或其子类的集合列表 * @see Entity */ @Deprecated public List listEntity(Class clz, String sql, String[] params); /** * 返回满足查询条件的实体类的集合列表
*
遵循实体类模板反射,可选择配置映射. *
    *
  1. 外表映射文件 *
  2. 实体类重写父类Entity的get,set方法 *
  3. 无配置默认实体类中的各属性字段与数据库表中的字段名称相同,区分大小写. *
* NOTE:
* 查询的实体Class类型,需是Entity的子类型
* @deprecated * please use: {@link #list(Class, Condition)} * @param entity child class * @param clz * 查询的实体Class类型,需是Entity的子类型 * @param condition * 专用于生成带条件的sql语句的对象 * @return List 实体类Entity或其子类的集合列表 * @see Entity */ @Deprecated public List listEntity(Class clz, Condition condition); /** * 返回所有相应实体类的集合列表
*
遵循数据库表结构反射. 实体类中的各属性字段与数据库表中的字段名称相同,区分大小写.
* * * * * * * * * * * * * * * * * * *
Data Type
数据库表字段类型整数布尔bit浮点数字符文本时间(datetime)
Java实体类属性类型int
* Integer
boolean
* Boolean
double
* Double
Stringjava.util.Date
*
* * @param the entity class type * @param clz * 查询的实体Class类型,可以不是Entity的子类
* 1.Entity子类
* 2.JPA注解方式 * @return List 任何实体类的集合列表 * @since 2010/11/17 */ public List list(Class clz); /** * 返回满足查询条件的实体类的集合列表
*
遵循数据库表结构反射. 实体类中的各属性字段与数据库表中的字段名称相同,区分大小写.
* * * * * * * * * * * * * * * * * * *
Data Type
数据库表字段类型整数布尔bit浮点数字符文本时间(datetime)
Java实体类属性类型int
* Integer
boolean
* Boolean
double
* Double
Stringjava.util.Date
*
* * @param the entity class type * @param clz * 查询的实体Class类型,可以不是Entity的子类 * @param sql * 标准查询sql语句 * @since 2010/11/17 * @return List 任何实体类的集合列表 */ public List list(Class clz, String sql); /** * 返回满足查询条件的实体类的集合列表
*
遵循数据库表结构反射. 实体类中的各属性字段与数据库表中的字段名称相同,区分大小写.
* * * * * * * * * * * * * * * * * * *
Data Type
数据库表字段类型整数布尔bit浮点数字符文本时间(datetime)
Java实体类属性类型int
* Integer
boolean
* Boolean
double
* Double
Stringjava.util.Date
*
* * @param the entity class type * @param clz * 查询的实体Class类型,可以不是Entity的子类 * @param sql * 标准查询sql语句 * @param params * sql依赖的具体参数数组 * @return List 任何实体类的集合列表 */ public List list(Class clz, String sql, String[] params); /** * 返回满足查询条件的实体类的集合列表
*
遵循数据库表结构反射. 实体类中的各属性字段与数据库表中的字段名称相同,区分大小写.
* * * * * * * * * * * * * * * * * * *
Data Type
数据库表字段类型整数布尔bit浮点数字符文本时间(datetime)
Java实体类属性类型int
* Integer
boolean
* Boolean
double
* Double
Stringjava.util.Date
*
* * @param the entity class type * @param clz * 查询的实体Class类型,可以不是Entity的子类 * @param condition * 专用于生成带条件的sql语句的对象 * @return List 任何实体类的集合列表 * @since 2010/11/17 */ public List list(Class clz, Condition condition); /** * 释放所有资源 * * @param conn * 数据库连接 * @param st * 状态集 * @param rs * 结果集 */ public void closeAll(Connection conn, Statement st, ResultSet rs); /** * 释放与结果集相关的所有资源 * * @param rs * 结果集 */ public void closeAll(ResultSet rs); /** * 释放数据库连接 * * @param conn * 数据库连接 */ public void closeConnection(Connection conn); /** * 释放st状态集 * * @param st * 状态集 */ public void closeStatement(Statement st); /** * 释放rs结果集 * * @param rs * 结果集 */ public void closeResultSet(ResultSet rs); /** * 设置日志记录器 * * @param logger * 日志记录器 */ public void setLogger(Logger logger); /** * 设置日志记录器 * * @return Logger * 日志记录器 */ public Logger getLogger(); /** * 设置数据库连接参数配置器 * * @param configurator * 数据库连接参数配置器 */ public void setConfigurator(Configurator configurator); /** * 取得数据库连接配置器 configurator * * @return 数据库连接配置器configurator */ public Configurator getConfigurator(); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy