org.nutz.dao.sql
接口 DaoStatement

所有已知子接口:
Pojo, Sql
所有已知实现类:
ElFieldMacro, NutPojo, NutSql, NutStatement, SqlFieldMacro

public interface DaoStatement

抽象 Dao 语句

向调用者隔离了 Pojo 和 自定义 Sql 两种方式的差异

作者:
zozoh(zozohtnt@gmail.com)

方法摘要
 ValueAdaptor[] getAdaptors()
          为本语句每一个参数提供一个适配器
 boolean getBoolean()
          无结果的话,会抛NPE
 SqlContext getContext()
          获取 SQL 执行的上下文对象,以便做更多的操作
 Entity<?> getEntity()
           
 int getInt()
          无结果的话,会抛NPE
<T> java.util.List<T>
getList(java.lang.Class<T> classOfT)
          一个 getResult() 函数的变种,将当前对象的 Result 转换成 List 返回。
<T> T
getObject(java.lang.Class<T> classOfT)
          转换结果对象到你想要的类型
 java.lang.Object[][] getParamMatrix()
          用一个矩阵描述语句的参数表。
 java.lang.Object getResult()
          你可以通过 setCallback 函数为本语句设置一个回调。
 SqlType getSqlType()
           
 java.lang.String getString()
           
 int getUpdateCount()
           
 void onAfter(java.sql.Connection conn, java.sql.ResultSet rs)
          语句执行完毕的后续操作 这个接口函数你基本不会直接使用的
 void onBefore(java.sql.Connection conn)
          语句执行之前的操作 这个接口函数你基本不会直接使用的
 DaoStatement setEntity(Entity<?> entity)
          设置 当前语句对应的实体
 DaoStatement setPager(Pager pager)
           
 java.lang.String toPreparedStatement()
          将 Dao 语句转换为 JDBC SQL 缓冲语句
 java.lang.String toString()
          输出打印字符串
 

方法详细信息

getEntity

Entity<?> getEntity()
返回:
当前语句所关联的实体

setEntity

DaoStatement setEntity(Entity<?> entity)
设置 当前语句对应的实体

参数:
entity - 实体
返回:
自身

getSqlType

SqlType getSqlType()
返回:
返回执行的语句的类型

getAdaptors

ValueAdaptor[] getAdaptors()
为本语句每一个参数提供一个适配器

返回:
JDBC 缓冲语句的参数适配器

getParamMatrix

java.lang.Object[][] getParamMatrix()
用一个矩阵描述语句的参数表。
这个参数矩阵将同 getAdaptors() 的返回组合使用

矩阵的每一行相当于执行一条语句

参数表的下标意义为: Object[行][列]

返回:
语句参数表

toPreparedStatement

java.lang.String toPreparedStatement()
将 Dao 语句转换为 JDBC SQL 缓冲语句

返回:
JDBC SQL 缓冲语句

toString

java.lang.String toString()
输出打印字符串

覆盖:
java.lang.Object 中的 toString
返回:
日志打印字符串

getResult

java.lang.Object getResult()
你可以通过 setCallback 函数为本语句设置一个回调。

在回调中,你可以返回一个对象。这个对象会存储在本语句中。
当本语句 执行完毕,你可以通过这个函数获得回调函数生成的返回。

一般的情况,回调函数是用来从 ResultSet 生成对象的。
即,如果 本语句不是 SELECT XXXX, 一般不会被设置回调

返回:
执行结果。
另请参见:
SqlCallback

getInt

int getInt()
无结果的话,会抛NPE

返回:
将结果对象作为 int 返回

getString

java.lang.String getString()
返回:
将结果对象作为 String 返回

getBoolean

boolean getBoolean()
无结果的话,会抛NPE

返回:
将结果对象作为 boolean 返回

getList

<T> java.util.List<T> getList(java.lang.Class<T> classOfT)
一个 getResult() 函数的变种,将当前对象的 Result 转换成 List 返回。
如果 Result 本身就是一个列表,如果第一个元素的类型和参数相符,则直接返回,
否则会被用 Castors 智能转换 如果不是列表,则会强制用 ArrayList 包裹

类型参数:
T - 列表容器內的元素类型
参数:
classOfT - 列表容器內的元素类型
返回:
列表

getObject

<T> T getObject(java.lang.Class<T> classOfT)
转换结果对象到你想要的类型

类型参数:
T - 对象类型
参数:
classOfT - 对象类型
返回:
对象

getUpdateCount

int getUpdateCount()
返回:
如果当前语句为 DELETE | UPDATE | INSERT,返回执行后所影响的记录数。否则返回 -1
另请参见:
SqlType

getContext

SqlContext getContext()
获取 SQL 执行的上下文对象,以便做更多的操作

返回:
SQL 上下文对象

onBefore

void onBefore(java.sql.Connection conn)
              throws java.sql.SQLException
语句执行之前的操作

这个接口函数你基本不会直接使用的

参数:
conn - 当前执行语句的连接
抛出:
java.sql.SQLException

onAfter

void onAfter(java.sql.Connection conn,
             java.sql.ResultSet rs)
             throws java.sql.SQLException
语句执行完毕的后续操作

这个接口函数你基本不会直接使用的

参数:
conn - 当前执行语句的连接
rs - 当前语句执行的结果集
抛出:
java.sql.SQLException - 回调函数抛出的异常

setPager

DaoStatement setPager(Pager pager)