Package com.pugwoo.dbhelper.impl.part
Class P0_JdbcTemplateOp
java.lang.Object
com.pugwoo.dbhelper.impl.part.P0_JdbcTemplateOp
- All Implemented Interfaces:
DBHelper,org.springframework.beans.factory.Aware,org.springframework.context.ApplicationContextAware
- Direct Known Subclasses:
P1_QueryOp
public abstract class P0_JdbcTemplateOp
extends Object
implements DBHelper, org.springframework.context.ApplicationContextAware
jdbcTemplate原生操作接口封装
- Author:
- NICK
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.springframework.context.ApplicationContextprotected Map<FeatureEnum, Boolean> protected intprotected List<DBHelperInterceptor> protected org.springframework.jdbc.core.JdbcTemplateprotected static final org.slf4j.Loggerprotected Integerprotected org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplateprotected long -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected StringaddComment(String sql) 给sql加上注释,返回加完注释之后的sqlbooleanexecuteAfterCommit(Runnable runnable) 当前事务提交后执行查询dbHelper对应的数据库类型booleangetFeature(FeatureEnum featureEnum) org.springframework.jdbc.core.JdbcTemplateorg.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplateprotected intjdbcExecuteUpdate(String sql, Object... args) 使用jdbcTemplate模版执行update,不支持in (?)表达式protected void批量和非批量的logprotected void记录慢sql请求protected intnamedJdbcExecuteUpdate(String sql, Object... args) 使用namedParameterJdbcTemplate模版执行update,支持in(?)表达式protected intnamedJdbcExecuteUpdateWithLog(String sql, String logSql, int batchSize, List<Object> logArgs, Object... args) 使用namedParameterJdbcTemplate模版执行update,支持in(?)表达式voidrollback()手动回滚@Transactional的事务。 对于已知需要回滚的动作,我更推荐主动调用让其回滚,而非抛出RuntimeException。 当前如果没有事务而调用该方法,将抛出org.springframework.transaction.NoTransactionException。
对于手动回滚事务rollback抛出`org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only` 异常的情况,需要使用者保证满足以下两点中的任意一点:
1) 调用rollback的代码所在的方法是注解了@Transactional最外层的方法;
2) 调用rollback的代码最近的@Transactional注解加上propagation = Propagation.NESTED属性。voidsetApplicationContext(org.springframework.context.ApplicationContext applicationContext) voidsetFetchSize(int fetchSize) 对于流式Stream获取数据的,可以指定fetchSize大小,默认1000voidsetInterceptors(List<DBHelperInterceptor> interceptors) 数据库拦截器voidsetJdbcTemplate(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate) voidsetMaxPageSize(int maxPageSize) 设置允许的每页最大的个数,当页数超过允许的最大页数时,设置为最大页数。 默认对每页最大个数没有限制,该限制只对getPage和getPageWithoutCount接口生效。voidsetNamedParameterJdbcTemplate(org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate namedParameterJdbcTemplate) 可选,非必须 since 1.2void设置SQL执行超时回调,可用于自行实现将慢sql存放到dbvoidsetTimeoutWarningValve(long timeMS) 设置SQL执行超时的WARN log,超时时间默认为1秒voidturnOffFeature(FeatureEnum featureEnum) 关闭某个特性voidturnOnFeature(FeatureEnum featureEnum) 开启某个特性Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.pugwoo.dbhelper.DBHelper
delete, delete, delete, deleteHard, deleteHard, deleteHard, executeRaw, executeRaw, getAll, getAll, getAllForStream, getAllForStream, getAllKey, getByExample, getByKey, getCount, getCount, getOne, getOne, getPage, getPage, getPageWithoutCount, getPageWithoutCount, getRaw, getRaw, getRawForStream, getRawForStream, getRawOne, getRawOne, handleRelatedColumn, handleRelatedColumn, handleRelatedColumn, handleRelatedColumn, insert, insert, insertBatchWithoutReturnId, insertBatchWithoutReturnId, insertBatchWithoutReturnId, insertOrUpdate, insertOrUpdate, insertOrUpdateWithNull, insertWithNull, isExist, isExistAtLeast, update, update, update, updateAll, updateCustom, updateWithNull, updateWithNull
-
Field Details
-
LOGGER
protected static final org.slf4j.Logger LOGGER -
jdbcTemplate
protected org.springframework.jdbc.core.JdbcTemplate jdbcTemplate -
namedParameterJdbcTemplate
protected org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate namedParameterJdbcTemplate -
timeoutWarningValve
protected long timeoutWarningValve -
maxPageSize
-
fetchSize
protected int fetchSize -
applicationContext
protected org.springframework.context.ApplicationContext applicationContext -
interceptors
-
features
-
-
Constructor Details
-
P0_JdbcTemplateOp
public P0_JdbcTemplateOp()
-
-
Method Details
-
log
批量和非批量的log- Parameters:
sql- 要log的sqlbatchSize- 如果大于0,则是批量log方式args- 参数
-
logSlow
记录慢sql请求- Parameters:
cost- 请求耗时,毫秒sql- 要记录的sqlbatchSize- 批量大小,如果大于0,则是批量args- 参数
-
rollback
public void rollback()Description copied from interface:DBHelper手动回滚@Transactional的事务。 对于已知需要回滚的动作,我更推荐主动调用让其回滚,而非抛出RuntimeException。 当前如果没有事务而调用该方法,将抛出org.springframework.transaction.NoTransactionException。
对于手动回滚事务rollback抛出`org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only` 异常的情况,需要使用者保证满足以下两点中的任意一点:
1) 调用rollback的代码所在的方法是注解了@Transactional最外层的方法;
2) 调用rollback的代码最近的@Transactional注解加上propagation = Propagation.NESTED属性。 -
executeAfterCommit
Description copied from interface:DBHelper当前事务提交后执行- Specified by:
executeAfterCommitin interfaceDBHelper- Parameters:
runnable- 执行的回调方法- Returns:
- 当提交成功返回true,提交失败返回false;如果当前不在事务中时,返回false
-
jdbcExecuteUpdate
使用jdbcTemplate模版执行update,不支持in (?)表达式- Returns:
- 实际修改的行数
-
namedJdbcExecuteUpdate
使用namedParameterJdbcTemplate模版执行update,支持in(?)表达式 -
namedJdbcExecuteUpdateWithLog
protected int namedJdbcExecuteUpdateWithLog(String sql, String logSql, int batchSize, List<Object> logArgs, Object... args) 使用namedParameterJdbcTemplate模版执行update,支持in(?)表达式- Parameters:
logSql- 用于日志打印的sqlbatchSize- 批量修改的大小,当它的值大于0时,切换为batchLog方式loglogArgs- 用于日志打印的参数
-
setJdbcTemplate
public void setJdbcTemplate(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate) -
setNamedParameterJdbcTemplate
public void setNamedParameterJdbcTemplate(org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate namedParameterJdbcTemplate) 可选,非必须 since 1.2 -
getJdbcTemplate
public org.springframework.jdbc.core.JdbcTemplate getJdbcTemplate() -
getNamedParameterJdbcTemplate
public org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate getNamedParameterJdbcTemplate() -
setTimeoutWarningValve
public void setTimeoutWarningValve(long timeMS) Description copied from interface:DBHelper设置SQL执行超时的WARN log,超时时间默认为1秒- Specified by:
setTimeoutWarningValvein interfaceDBHelper- Parameters:
timeMS- 毫秒
-
setMaxPageSize
public void setMaxPageSize(int maxPageSize) Description copied from interface:DBHelper设置允许的每页最大的个数,当页数超过允许的最大页数时,设置为最大页数。 默认对每页最大个数没有限制,该限制只对getPage和getPageWithoutCount接口生效。- Specified by:
setMaxPageSizein interfaceDBHelper- Parameters:
maxPageSize- 允许的每页最大的个数
-
setFetchSize
public void setFetchSize(int fetchSize) Description copied from interface:DBHelper对于流式Stream获取数据的,可以指定fetchSize大小,默认1000- Specified by:
setFetchSizein interfaceDBHelper- Parameters:
fetchSize- fetchSize
-
setApplicationContext
public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) throws org.springframework.beans.BeansException - Specified by:
setApplicationContextin interfaceorg.springframework.context.ApplicationContextAware- Throws:
org.springframework.beans.BeansException
-
setInterceptors
Description copied from interface:DBHelper数据库拦截器- Specified by:
setInterceptorsin interfaceDBHelper- Parameters:
interceptors- 拦截器列表,全量更新
-
setTimeoutWarningCallback
Description copied from interface:DBHelper设置SQL执行超时回调,可用于自行实现将慢sql存放到db- Specified by:
setTimeoutWarningCallbackin interfaceDBHelper- Parameters:
callback- 执行的回调方法
-
turnOnFeature
Description copied from interface:DBHelper开启某个特性- Specified by:
turnOnFeaturein interfaceDBHelper- Parameters:
featureEnum- 特性枚举,默认特性是否开启详见特性文档说明
-
turnOffFeature
Description copied from interface:DBHelper关闭某个特性- Specified by:
turnOffFeaturein interfaceDBHelper- Parameters:
featureEnum- 特性枚举,默认特性是否开启详见特性文档说明
-
getFeature
-
addComment
给sql加上注释,返回加完注释之后的sql- Parameters:
sql- not null
-
getDatabaseType
Description copied from interface:DBHelper查询dbHelper对应的数据库类型- Specified by:
getDatabaseTypein interfaceDBHelper
-