public class NutSql extends NutStatement implements Sql
| 限定符和类型 | 字段和说明 |
|---|---|
protected SqlCallback |
callback |
protected java.util.Map<java.lang.String,ValueAdaptor> |
customValueAdaptor |
protected java.util.List<PItem> |
items |
protected VarIndex |
paramIndex |
protected VarSet |
params |
protected java.util.List<VarSet> |
rows |
protected java.lang.String |
sourceSql |
protected VarIndex |
varIndex |
protected VarSet |
vars |
| 构造器和说明 |
|---|
NutSql(java.lang.String source) |
NutSql(java.lang.String source,
SqlCallback callback) |
| 限定符和类型 | 方法和说明 |
|---|---|
protected int |
_params_count() |
void |
addBatch()
将当前的参数列表存储,以便执行批处理
|
void |
clearBatch()
清除所有的曾经设置过的参数
|
Sql |
duplicate() |
ValueAdaptor[] |
getAdaptors()
为本语句每一个参数提供一个适配器
|
Record |
getOutParams() |
java.lang.Object[][] |
getParamMatrix()
用一个矩阵描述语句的参数表。
|
java.lang.String |
getSourceSql() |
protected SqlLiteral |
literal()
若需要定制参数字符和变量字符,覆盖本方法,通过SqlLiteral的构造方法指定之
|
void |
onAfter(java.sql.Connection conn,
java.sql.ResultSet rs,
java.sql.Statement stmt)
语句执行完毕的后续操作
这个接口函数你基本不会直接使用的
|
void |
onBefore(java.sql.Connection conn)
语句执行之前的操作
这个接口函数你基本不会直接使用的
|
VarIndex |
paramIndex() |
VarSet |
params()
所谓"参数",就是当 Sql 对象转换成 PreparedStatement 对象前,会被填充成 ?
|
Sql |
setCallback(SqlCallback callback)
当前 Statement 被执行完毕后,有可能会产生一个 ResultSet。
|
Sql |
setCondition(Condition cnd)
为 SQL 增加条件,SQL 必须有 '$condition' 变量
|
Sql |
setEntity(Entity<?> entity)
设置 当前语句对应的实体
|
DaoStatement |
setPager(Pager pager)
为自定义SQL设置Pager
如果设置为非空值,那么将附加上分页语句!!
|
Sql |
setParam(java.lang.String name,
java.lang.Object value)
sql.params().set(name, value)的链式调用方式
|
void |
setSourceSql(java.lang.String sql) |
void |
setValueAdaptor(java.lang.String name,
ValueAdaptor adaptor)
手动为某个语句参数设置适配器。
|
Sql |
setVar(java.lang.String name,
java.lang.Object value)
sql.vars().set(name, value)的链式调用方式
|
java.lang.String |
toPreparedStatement()
将 Dao 语句转换为 JDBC SQL 缓冲语句
|
VarIndex |
varIndex() |
VarSet |
vars()
所谓"变量",就是当 Sql 对象转换成 Statement 对象前,预先被填充的占位符。
|
forceExecQuery, forPrint, getBoolean, getContext, getDouble, getDouble, getEntity, getFloat, getFloat, getInt, getInt, getList, getLong, getLong, getNumber, getObject, getResult, getSqlType, getString, getUpdateCount, isAlter, isCall, isCreate, isDelete, isDrop, isExec, isForceExecQuery, isInsert, isOther, isRun, isSelect, isUpdate, param2obj, param2String, setContext, setSqlType, toExampleStatement, toStatement, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitforceExecQuery, forPrint, getBoolean, getContext, getDouble, getDouble, getEntity, getFloat, getFloat, getInt, getInt, getList, getLong, getLong, getNumber, getObject, getResult, getSqlType, getString, getUpdateCount, isAlter, isCall, isCreate, isDelete, isDrop, isExec, isForceExecQuery, isInsert, isOther, isRun, isSelect, isUpdate, toStringprotected java.lang.String sourceSql
protected VarSet vars
protected java.util.List<VarSet> rows
protected VarSet params
protected SqlCallback callback
protected VarIndex varIndex
protected VarIndex paramIndex
protected java.util.Map<java.lang.String,ValueAdaptor> customValueAdaptor
protected java.util.List<PItem> items
public NutSql(java.lang.String source)
public NutSql(java.lang.String source,
SqlCallback callback)
public void setSourceSql(java.lang.String sql)
setSourceSql 在接口中 Sqlprotected int _params_count()
public ValueAdaptor[] getAdaptors()
DaoStatementgetAdaptors 在接口中 DaoStatementpublic java.lang.Object[][] getParamMatrix()
DaoStatement矩阵的每一行相当于执行一条语句
参数表的下标意义为: Object[行][列]
getParamMatrix 在接口中 DaoStatementpublic java.lang.String toPreparedStatement()
DaoStatementtoPreparedStatement 在接口中 DaoStatementpublic void onBefore(java.sql.Connection conn)
throws java.sql.SQLException
DaoStatement这个接口函数你基本不会直接使用的
onBefore 在接口中 DaoStatementconn - 当前执行语句的连接java.sql.SQLExceptionpublic void onAfter(java.sql.Connection conn,
java.sql.ResultSet rs,
java.sql.Statement stmt)
throws java.sql.SQLException
DaoStatement这个接口函数你基本不会直接使用的
onAfter 在接口中 DaoStatementconn - 当前执行语句的连接rs - 当前语句执行的结果集stmt - TODOjava.sql.SQLException - 回调函数抛出的异常public DaoStatement setPager(Pager pager)
DaoStatementsetPager 在接口中 DaoStatementpublic VarSet vars()
Sql这个集合允许你为 SQL 的变量占位符设值
public VarSet params()
Sql
集合是一个个的名值对,你设置了值的地方,会在执行时,被设置到 PreparedStatement中。
这样省却了你一个一个计算 ? 位置的烦恼
public void setValueAdaptor(java.lang.String name,
ValueAdaptor adaptor)
Sql
默认的,Sql 的实现类会自动根据你设置的值,自动为所有的参数设置适配器。
但是,有些时候,你可能传入了 null 值或者其他的特殊对象,
这里允许你主动为其设置一个适配器,这样你就有了终极手段最合理的适配你的参数对象
setValueAdaptor 在接口中 Sqlname - 对应参数的名称adaptor - 适配器实例public VarIndex paramIndex()
paramIndex 在接口中 Sqlpublic void clearBatch()
SqlclearBatch 在接口中 Sqlpublic Sql setEntity(Entity<?> entity)
DaoStatementsetEntity 在接口中 DaoStatementsetEntity 在接口中 SqlsetEntity 在类中 NutStatemententity - 实体public Sql setCallback(SqlCallback callback)
Sql
当然如果不是 SELECT 语句,那么你依然可以设置一个回调,
当你的语句执行完毕后, 会调用它(Connection 不会被 commit),但是 ResultSet 参数会是 null
setCallback 在接口中 Sqlcallback - 回调函数public Sql setCondition(Condition cnd)
SqlsetCondition 在接口中 Sqlcnd - 条件public java.lang.String getSourceSql()
getSourceSql 在接口中 Sqlprotected SqlLiteral literal()
public Sql setParam(java.lang.String name, java.lang.Object value)
SqlsetParam 在接口中 Sqlname - 参数名称value - 参数值Sql.params()public Sql setVar(java.lang.String name, java.lang.Object value)
SqlsetVar 在接口中 Sqlname - 变量名称value - 变量值Sql.vars()public Record getOutParams()
getOutParams 在接口中 Sql