public class NutSql extends NutStatement implements Sql
限定符和类型 | 字段和说明 |
---|---|
protected SqlCallback |
callback |
protected Map<String,ValueAdaptor> |
customValueAdaptor |
protected List<PItem> |
items |
protected VarIndex |
paramIndex |
protected VarSet |
params |
protected List<VarSet> |
rows |
protected String |
sourceSql |
protected VarIndex |
varIndex |
protected VarSet |
vars |
expert
构造器和说明 |
---|
NutSql(String source) |
NutSql(String source,
SqlCallback callback) |
限定符和类型 | 方法和说明 |
---|---|
protected int |
_params_count() |
void |
addBatch()
将当前的参数列表存储,以便执行批处理
|
void |
clearBatch()
清除所有的曾经设置过的参数
|
Sql |
duplicate() |
ValueAdaptor[] |
getAdaptors()
为本语句每一个参数提供一个适配器
|
Record |
getOutParams() |
Object[][] |
getParamMatrix()
用一个矩阵描述语句的参数表。
|
String |
getSourceSql() |
protected SqlLiteral |
literal()
若需要定制参数字符和变量字符,覆盖本方法,通过SqlLiteral的构造方法指定之
|
void |
onAfter(Connection conn,
ResultSet rs,
Statement stmt)
语句执行完毕的后续操作
这个接口函数你基本不会直接使用的
|
void |
onBefore(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(String name,
Object value)
sql.params().set(name, value)的链式调用方式
|
void |
setSourceSql(String sql) |
void |
setValueAdaptor(String name,
ValueAdaptor adaptor)
手动为某个语句参数设置适配器。
|
Sql |
setVar(String name,
Object value)
sql.vars().set(name, value)的链式调用方式
|
String |
toPreparedStatement()
将 Dao 语句转换为 JDBC SQL 缓冲语句
|
VarIndex |
varIndex() |
VarSet |
vars()
所谓"变量",就是当 Sql 对象转换成 Statement 对象前,预先被填充的占位符。
|
forceExecQuery, forPrint, getAdapterBy, 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, setExpert, setSqlType, toExampleStatement, toStatement, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
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, setExpert, toString
protected String sourceSql
protected VarSet vars
protected VarSet params
protected SqlCallback callback
protected VarIndex varIndex
protected VarIndex paramIndex
protected Map<String,ValueAdaptor> customValueAdaptor
public NutSql(String source)
public NutSql(String source, SqlCallback callback)
public void setSourceSql(String sql)
setSourceSql
在接口中 Sql
protected int _params_count()
public ValueAdaptor[] getAdaptors()
DaoStatement
getAdaptors
在接口中 DaoStatement
public Object[][] getParamMatrix()
DaoStatement
矩阵的每一行相当于执行一条语句
参数表的下标意义为: Object[行][列]
getParamMatrix
在接口中 DaoStatement
public String toPreparedStatement()
DaoStatement
toPreparedStatement
在接口中 DaoStatement
public void onBefore(Connection conn) throws SQLException
DaoStatement
这个接口函数你基本不会直接使用的
onBefore
在接口中 DaoStatement
conn
- 当前执行语句的连接SQLException
public void onAfter(Connection conn, ResultSet rs, Statement stmt) throws SQLException
DaoStatement
这个接口函数你基本不会直接使用的
onAfter
在接口中 DaoStatement
conn
- 当前执行语句的连接rs
- 当前语句执行的结果集stmt
- TODOSQLException
- 回调函数抛出的异常public DaoStatement setPager(Pager pager)
DaoStatement
setPager
在接口中 DaoStatement
public VarSet vars()
Sql
这个集合允许你为 SQL 的变量占位符设值
public VarSet params()
Sql
集合是一个个的名值对,你设置了值的地方,会在执行时,被设置到 PreparedStatement中。
这样省却了你一个一个计算 ? 位置的烦恼
public void setValueAdaptor(String name, ValueAdaptor adaptor)
Sql
默认的,Sql 的实现类会自动根据你设置的值,自动为所有的参数设置适配器。
但是,有些时候,你可能传入了 null 值或者其他的特殊对象,
这里允许你主动为其设置一个适配器,这样你就有了终极手段最合理的适配你的参数对象
setValueAdaptor
在接口中 Sql
name
- 对应参数的名称adaptor
- 适配器实例public VarIndex paramIndex()
paramIndex
在接口中 Sql
public void clearBatch()
Sql
clearBatch
在接口中 Sql
public Sql setEntity(Entity<?> entity)
DaoStatement
setEntity
在接口中 DaoStatement
setEntity
在接口中 Sql
setEntity
在类中 NutStatement
entity
- 实体public Sql setCallback(SqlCallback callback)
Sql
当然如果不是 SELECT 语句,那么你依然可以设置一个回调,
当你的语句执行完毕后, 会调用它(Connection 不会被 commit),但是 ResultSet 参数会是 null
setCallback
在接口中 Sql
callback
- 回调函数public Sql setCondition(Condition cnd)
Sql
setCondition
在接口中 Sql
cnd
- 条件public String getSourceSql()
getSourceSql
在接口中 Sql
protected SqlLiteral literal()
public Sql setParam(String name, Object value)
Sql
setParam
在接口中 Sql
name
- 参数名称value
- 参数值Sql.params()
public Sql setVar(String name, Object value)
Sql
setVar
在接口中 Sql
name
- 变量名称value
- 变量值Sql.vars()
public Record getOutParams()
getOutParams
在接口中 Sql
Copyright © 2017. All rights reserved.