类 DataConnection
java.lang.Object
com.gdxsoft.easyweb.datasource.DataConnection
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明voidaddSqlParameter(com.gdxsoft.easyweb.utils.msnet.MListStr parameters, PreparedStatement pst) 设置SQL参数voidaddStatementParameter(PreparedStatement cst, String parameterName, int index) voidbatchUpdate(List<String> sqls, boolean transcation) 批处理导入数据static booleancheckIsProcdure(String sql) 检查是否为 存储过程,例如 CALL pr_batAdd(@a)static booleancheckIsSelect(String sql) 检查是否为 select语句
或标记为-- EWA_IS_SELECT
或with block语句static booleancheckStartWord(String sql, String word) 判断 特定字符出现在非注释的SQL的0位置,多行的SQL只进行第一次判断voidClear the errorvoid清除所有返回的 resultSet,当长期执行查询的时,会造成内存占用过高 关闭连接会自动执行清除voidclose()关闭所有连接,包括ResultSet,Cst,PstcloseStatment(Statement stmt) booleanconnect()convertToList(String[] sqlArray) createSqlByEwaBlockTest(String orignalSql) 根据逻辑判断组合SQL, 判断条件是 "-- ewa_block_test"createSqlByEwaTest(String orignalSql) 根据逻辑判断组合SQL, 判断条件是 "-- ewa_test"
SELECT A.*, B.GRP
FROM TABLE1 A
INNER JOIN TABLE2 B ON A.ID = B.ID
WHERE A.STATUS = 'USED'
-- ewa_test @tag is not null
and A.tag = @tag
-- ewa_test @abc is not null
and A.tag = 'TAG_CAR'
and B.GRP = 'CAR0'
-- ewa_test
order by A.ID, B.GRP desc执行带自动返回值的SQL,返回执行后的自动字段的名称
如果成功,则在_RequestValue里保存
如果失败,则清除_RequestValue里的Form,Query,Cookie的值,避免外部攻击boolean执行多个更新 sql语句,语句用“;”分割,不能在拼接的Sql中有“;”出现executeProcdure(String callProcduceSql) 执行存储过程void执行存储过程, 不带参数executeProcdureReturnResults(String callProcduceSql) 执行存储过程booleanexecuteQuery(String sql) 执行查询executeQueryAndReturnTables(String sql, String configName, RequestValue rv) 执行SQL查询返回多条结果集intexecuteQueryCount(String tableName, String where) 获取数据量booleanexecuteQueryExists(String tableName, String where) 检查数据是否存在booleanbooleanexecuteQueryPage(String sql, String pkFieldName, int currentPage, int pageSize) 执行分页查询booleanexecuteUpdate(String sql) 执行更新执行更新并返回数据的前后差异intexecuteUpdateBatch(String sqls) 批处理执行sql语句,sql语句用 ; 分割,getUpdateBatchTables获取执行国产中的所有表intexecuteUpdateBatch(List<String> sqls) 批量执行sql语句,混合update和select的语句集合booleanint执行自增的插入执行查询并返回 自动增加值(返回为对象,需要自己判断是int还是long)static StringgetAutoField(String sql) 查找自增的sql的返回字段, 例如 -- auto MEMO_ID数据库名称获取ListFrame查询的日期表达式获取ListFrame查询的日期表达式,ISO 8601 格式(YYYY-MM-DD HH:MI:SS),
oracle 使用to_date('YYYY-MM-DD HH24:MI:SS')Return the error with SQLReturn the error without sql从执行完的sql中获取更多的结果集getParameterByEndWithType(String parameterName) intgetRecordCount(String sql) 重新组合SQL,获取记录数,创建出SELECT COUNT(*) GDX FROM ...getReplaceParameterValueExp(String paramName) 获取参数值表达式,用于select替换getReplaceParameterValueExp(String paramName, String databaseType) 获取参数值表达式,用于select替换com.gdxsoft.easyweb.utils.msnet.MList将sql混合语句,通过“;”符号,分解为sql列表int用户和系统的时差(分钟)getTimestamp(String s1) 获取sql的timestamp数据executeUpdateBatch 批处理更新后产生的所有表static intinsertAndReturnAutoIdInt(String sql, String configName, RequestValue rv) 新建记录并返回自增字段,数据库连接自动关闭static longinsertAndReturnAutoIdLong(String sql, String configName, RequestValue rv) 新建记录并返回自增字段,数据库连接自动关闭static boolean是否比较更新前和更新后字段的变化, 方式:
SQL 添加 -- COMPARATIVE_CHANGESbooleanisTrans()是否使用事物处理static intqueryCount(String tableName, String where, String configName, RequestValue rv) 获取数据量static booleanqueryExists(String tableName, String where, String configName, RequestValue rv) 检查数据是否存在rebuildSql(String sql) 1.static String删除sql 的多行备注replaceSqlCommentAtSymbol(String orignalSql) 替换SQL注释行中的@符号,防止被当作参数处理替换SQL中的参数名为“?”替换select 查询中的参数名为具体值,原因是sqlserver在查询中出现参数表达式,会进行全表扫描
郭磊 2016-11-02replaceSqlSelectParameters(String sql, String databaseType) 替换select 查询中的参数名为具体值,原因是sqlserver在查询中出现参数表达式,会进行全表扫描
郭磊 2016-11-02runMultiSqls(String[] sqlArray) 执行混合SQL语句(查询,更新(包含返回自增),存储过程)
1.runMultiSqls(List<String> listSqls) 执行混合SQL语句(查询,更新(包含返回自增),存储过程)
1.runMultiSqlsAndClose(String sqls, String configName, RequestValue rv) 执行混合SQL语句(查询,更新(包含返回自增),存储过程)runMultiSqlsAndClose(List<String> listSqls, String configName, RequestValue rv) 执行混合SQL语句(查询,更新(包含返回自增),存储过程)voidsetConfigName(String configName) voidsetConfigName(String configName, String dataBaseName) 设置数据库连接池句柄voidsetConnection(Connection cnn) voidsetCurrentConfig(ConnectionConfig currentConfig) voidsetDataBaseName(String dataBaseName) 数据库名称voidsetDataHelper(DataHelper dataHelper) voidsetDebugFrames(DebugFrames debugFrames) voidsetErrorMsg(String errorMessage) Manual set conn error messagevoidsetRequestValue(RequestValue requestValue) voidsetTimeDiffMinutes(int timeDiffMinutes) 用户和系统的时差(分钟)booleanskipReplaceParameter(String paramName) 特殊的不需要替换为参数的参数名称,例如rownum
select user_id, @rownum := @rownum+1 from users b
,(select @rownum :=0) csqlFieldOrTableExp(String fieldOrTable) 处理字段或表名的字符串表达式,带上[(sqlserver)或`(mysql)sqlParameterStringExp(String parameter) SQL字符串参数值表达式,替换'号和\转译符号(mysql)sqlParameterStringExp(String parameter, String databaseType) SQL字符串参数值表达式,替换'号和\转译符号(mysql)boolean开始事务处理void关闭事务连接boolean提交事务void事务回滚static StringupdateAndClose(StringBuilder sb, String configName, RequestValue rv) static StringupdateAndClose(String sql, String configName, RequestValue rv) 执行更新并关闭连接static StringupdateBatchAndClose(StringBuilder sb, String configName, RequestValue rv) 批量执行更新并关闭连接static StringupdateBatchAndClose(String sqls, String configName, RequestValue rv) 批量执行更新并关闭连接static StringupdateBatchAndClose(List<String> sqls, String configName, RequestValue rv) 批量执行更新并关闭连接static StringupdateBatchAndCloseTransaction(List<String> sqls, String configName, RequestValue rv) 批量执行更新并关闭连接 (Transaction)booleansqlserver, mysql 更换数据库
-
构造器详细资料
-
DataConnection
public DataConnection() -
DataConnection
-
DataConnection
-
-
方法详细资料
-
getTimeDiffMinutes
public int getTimeDiffMinutes()用户和系统的时差(分钟)- 返回:
-
setTimeDiffMinutes
public void setTimeDiffMinutes(int timeDiffMinutes) 用户和系统的时差(分钟)- 参数:
timeDiffMinutes- 分钟
-
updateAndClose
执行更新并关闭连接- 参数:
sql-configName-rv-- 返回:
- 返回是否错误
-
insertAndReturnAutoIdLong
新建记录并返回自增字段,数据库连接自动关闭- 参数:
sql-configName-rv-- 返回:
-
insertAndReturnAutoIdInt
新建记录并返回自增字段,数据库连接自动关闭- 参数:
sql-configName-rv-- 返回:
-
updateAndClose
-
queryCount
获取数据量- 参数:
tableName- 表名where- 查询条件configName-rv-- 返回:
- =0 无数据,>0有数据,-1 执行错误
-
queryExists
public static boolean queryExists(String tableName, String where, String configName, RequestValue rv) 检查数据是否存在- 参数:
tableName- 表名where- 查询条件configName-rv-- 返回:
- 有数据true,无数据和执行错误false
-
updateBatchAndClose
批量执行更新并关闭连接- 参数:
sqls- 用;分割的sql字符串configName-rv-- 返回:
- 返回是否错误
-
updateBatchAndClose
批量执行更新并关闭连接- 参数:
sb- 用;分割的sql字符串configName-rv-- 返回:
-
updateBatchAndClose
批量执行更新并关闭连接- 参数:
sqls- sql列表configName-rv-- 返回:
- 返回是否错误
-
updateBatchAndCloseTransaction
public static String updateBatchAndCloseTransaction(List<String> sqls, String configName, RequestValue rv) 批量执行更新并关闭连接 (Transaction)- 参数:
sqls- sql列表configName-rv-- 返回:
- 返回是否错误
-
runMultiSqlsAndClose
-
runMultiSqlsAndClose
-
executeQueryAndReturnTables
public static List<DTTable> executeQueryAndReturnTables(String sql, String configName, RequestValue rv) throws SQLException 执行SQL查询返回多条结果集- 参数:
sql-configName-rv-- 返回:
- 结果集
- 抛出:
SQLException
-
getAutoField
-
checkIsProcdure
-
checkIsSelect
检查是否为 select语句
或标记为-- EWA_IS_SELECT
或with block语句- 参数:
sql-- 返回:
-
checkStartWord
-
removeSqlMuitiComment
-
isComparativeChanges
是否比较更新前和更新后字段的变化, 方式:
SQL 添加 -- COMPARATIVE_CHANGES- 参数:
sql-- 返回:
-
getSqls
-
getDataBaseName
-
setDataBaseName
-
transBegin
public boolean transBegin()开始事务处理- 返回:
-
transCommit
-
transRollback
-
transClose
public void transClose()关闭事务连接 -
getCurrentConfig
-
setConfigName
-
setConfigName
-
connect
public boolean connect() -
executeQueryNoParameter
-
createSqlByEwaBlockTest
-
createSqlByEwaTest
根据逻辑判断组合SQL, 判断条件是 "-- ewa_test"
SELECT A.*, B.GRP
FROM TABLE1 A
INNER JOIN TABLE2 B ON A.ID = B.ID
WHERE A.STATUS = 'USED'
-- ewa_test @tag is not null
and A.tag = @tag
-- ewa_test @abc is not null
and A.tag = 'TAG_CAR'
and B.GRP = 'CAR0'
-- ewa_test
order by A.ID, B.GRP desc- 参数:
orignalSql-- 返回:
-
replaceSqlCommentAtSymbol
-
getMoreResults
-
executeQueryCount
-
executeQueryExists
-
executeQuery
-
executeQueryPage
-
closeStatment
-
batchUpdate
-
executeMultipleUpdate
执行多个更新 sql语句,语句用“;”分割,不能在拼接的Sql中有“;”出现- 参数:
sql-- 返回:
-
executeUpdateBatch
-
executeUpdateBatch
批处理执行sql语句,sql语句用 ; 分割,getUpdateBatchTables获取执行国产中的所有表- 参数:
sqls- sql语句用 ; 分割- 返回:
- -1 有错误
-
convertToList
-
runMultiSqls
-
executeAutoFieldReturnName
-
runMultiSqls
-
executeUpdateReturnAutoIncrementObject
-
executeUpdateReturnAutoIncrement
-
executeUpdate
-
useDatabase
sqlserver, mysql 更换数据库- 参数:
sql-- 返回:
- 抛出:
ExceptionSQLException
-
executeUpdateAndReturnChanges
-
executeUpdateNoParameter
-
getRecordCount
-
skipReplaceParameter
特殊的不需要替换为参数的参数名称,例如rownum
select user_id, @rownum := @rownum+1 from users b
,(select @rownum :=0) c- 参数:
paramName-- 返回:
-
rebuildSql
-
replaceSqlParameters
-
replaceSqlSelectParameters
-
replaceSqlSelectParameters
-
getReplaceParameterValueExp
-
getReplaceParameterValueExp
-
addSqlParameter
public void addSqlParameter(com.gdxsoft.easyweb.utils.msnet.MListStr parameters, PreparedStatement pst) throws SQLException 设置SQL参数- 参数:
parameters-pst-- 抛出:
SQLException
-
getParameterByEndWithType
-
addStatementParameter
public void addStatementParameter(PreparedStatement cst, String parameterName, int index) throws SQLException - 抛出:
SQLException
-
clearResultSets
public void clearResultSets()清除所有返回的 resultSet,当长期执行查询的时,会造成内存占用过高 关闭连接会自动执行清除 -
close
public void close()关闭所有连接,包括ResultSet,Cst,Pst -
getErrorMsg
-
setErrorMsg
-
clearErrorMsg
public void clearErrorMsg()Clear the error -
executeProcdure
执行存储过程- 参数:
callProcduceSql- 存储过程调用方法: call pr_some(@name, @id_int_output)
结尾为_output,表示是输出参数
_int_output,表示输出参数为整形
_smallint_output,表示输出参数为小整形
_tinyint_output,表示输出参数为短整形
_number_output,_money_output,_numeric_output,_decimal_output表示输出参数为bcd数值
_long_output/_bigint_output,表示输出参数为长整形
_text_output/_clob_output,表示输出参数为长文本
_image_output/_blob_output,表示输出参数为长二进制
_binary_output/_byte_output,表示输出参数为二进制(varbinary)
_date_output/_datetime_output/_timestamp_output,表示输出参数为日期时间
_time_output,表示输出参数为时间
默认,为varchar字符串- 返回:
- 输出参数Map,key转换为大写
-
executeProcdureReturnResults
执行存储过程- 参数:
callProcduceSql- 存储过程调用方法: call pr_some(@name, @id_int_output)
结尾为_output,表示是输出参数
_int_output,表示输出参数为整形
_smallint_output,表示输出参数为小整形
_tinyint_output,表示输出参数为短整形
_number_output,_money_output,_numeric_output,_decimal_output表示输出参数为bcd数值
_long_output/_bigint_output,表示输出参数为长整形
_text_output/_clob_output,表示输出参数为长文本
_image_output/_blob_output,表示输出参数为长二进制
_binary_output/_byte_output,表示输出参数为二进制(varbinary)
_date_output/_datetime_output/_timestamp_output,表示输出参数为日期时间
_time_output,表示输出参数为时间
默认,为varchar字符串- 返回:
- 输出参数Map,key转换为大写,
RS_SIZE 表示返回的结果集数量
返回的结果集转换为DTTable,名字以RS开头,RS0,RS1,RS2 ...
-
executeProcdureNoParameter
-
sqlParameterStringExp
-
sqlParameterStringExp
-
sqlFieldOrTableExp
-
getConnectionString
-
getDatabaseType
-
getDateTimePara
-
getDateTimePara
-
getTimestamp
-
getSchemaName
-
getConnection
-
setConnection
-
setCurrentConfig
- 参数:
currentConfig- the _CurrentConfig to set
-
getDebugFrames
- 返回:
- the _DebugFrames
-
setDebugFrames
- 参数:
debugFrames- the _DebugFrames to set
-
getRequestValue
- 返回:
- the _RequestValue
-
setRequestValue
- 参数:
requestValue- the _RequestValue to set
-
getResultSetList
public com.gdxsoft.easyweb.utils.msnet.MList getResultSetList()- 返回:
- the _ResultSetList
-
getLastResult
-
isTrans
public boolean isTrans()是否使用事物处理- 返回:
- the _IsTrans
-
getErrorMsgOnly
-
getDataHelper
- 返回:
- the DataHelper
-
setDataHelper
- 参数:
dataHelper- the DataHelper to set
-
getUpdateBatchTables
-