Package xyz.zhouxy.jdbc
Class SimpleJdbcTemplate
java.lang.Object
xyz.zhouxy.jdbc.SimpleJdbcTemplate
- All Implemented Interfaces:
JdbcOperations
JDBC 操作的模板类,对原生 JDBC 进行轻量封装,提供查询、更新、批量操作等便捷方法。
主要能力:
- 查询:支持
ResultHandler自定义结果处理、RowMapper行映射等多种方式 - 更新:执行 INSERT / UPDATE / DELETE,支持返回自增主键
- 批量操作:通过
batchUpdate(java.lang.String, java.util.Collection<java.lang.Object[]>, int)分批执行 DML,支持静默模式(遇错继续)和 非静默模式(遇错即中断) - 事务:通过
transaction()获取TransactionTemplate执行
线程安全:本类无内部可变状态,线程安全。所依赖的 DataSource
需自行保证线程安全。
- Since:
- 1.0.0
- Author:
- ZhouXY
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbatchUpdate(String sql, Collection<Object[]> params, int batchSize) 批量更新batchUpdate(String sql, Collection<Object[]> params, int batchSize, boolean quietly) 批量更新<T> Tquery(String sql, Object[] params, ResultHandler<T> resultHandler) 执行查询,并按照自定义处理逻辑对结果进行处理,将结果转换为指定类型并返回booleanqueryBoolean(String sql, Object[] params) 查询第一行第一列并转换为 booleanqueryFirst(String sql, Object[] params) 执行查询,将第一行数据转为 Map<String, Object><T> Optional<T> queryFirst(String sql, Object[] params, Class<T> clazz) 查询第一行第一列,并转换为指定类型<T> Optional<T> queryFirst(String sql, Object[] params, RowMapper<T> rowMapper) 执行查询,将查询结果的第一行数据按照指定逻辑进行处理,返回Optional执行查询,每一行数据映射为Map<String, Object>,返回结果列表<T> List<T> 执行查询,返回结果映射为指定的类型。<T> List<T> 执行查询,将查询结果的每一行数据按照指定逻辑进行处理,返回结果列表int执行更新操作<T> List<T> updateAndReturnKeys(String sql, Object[] params, RowMapper<T> rowMapper) 执行 SQL 并返回生成的 keysMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface xyz.zhouxy.jdbc.JdbcOperations
query, queryBoolean, queryFirst, queryFirst, queryFirst, queryList, queryList, queryList, update, updateAndReturnKeys
-
Constructor Details
-
SimpleJdbcTemplate
-
-
Method Details
-
query
执行查询,并按照自定义处理逻辑对结果进行处理,将结果转换为指定类型并返回- Specified by:
queryin interfaceJdbcOperations- Type Parameters:
T- 返回结果类型- Parameters:
sql- SQLparams- 参数resultHandler- 结果处理器,用于处理ResultSet- Returns:
- 查询结果
- Throws:
SQLException- SQL异常
-
queryList
public <T> List<T> queryList(String sql, Object[] params, RowMapper<T> rowMapper) throws SQLException 执行查询,将查询结果的每一行数据按照指定逻辑进行处理,返回结果列表- Specified by:
queryListin interfaceJdbcOperations- Type Parameters:
T- 返回结果列表中每一行数据的类型- Parameters:
sql- SQLparams- 参数rowMapper-ResultSet中每一行的数据的处理逻辑- Returns:
- 查询结果列表
- Throws:
SQLException- SQL 异常
-
queryList
执行查询,返回结果映射为指定的类型。当结果为单列时使用- Specified by:
queryListin interfaceJdbcOperations- Type Parameters:
T- 目标类型- Parameters:
sql- SQLparams- 参数clazz- 目标类型- Returns:
- 映射结果。如果查询结果为空,则返回空列表
- Throws:
SQLException- SQL异常
-
queryList
执行查询,每一行数据映射为Map<String, Object>,返回结果列表- Specified by:
queryListin interfaceJdbcOperations- Parameters:
sql- SQLparams- 参数列表- Returns:
- 结果列表
- Throws:
SQLException- SQL 异常
-
queryFirst
public <T> Optional<T> queryFirst(String sql, Object[] params, RowMapper<T> rowMapper) throws SQLException 执行查询,将查询结果的第一行数据按照指定逻辑进行处理,返回Optional- Specified by:
queryFirstin interfaceJdbcOperations- Type Parameters:
T- 目标类型- Parameters:
sql- SQLparams- 参数rowMapper-ResultSet中每一行的数据的处理逻辑- Returns:
- 查询结果
- Throws:
SQLException- SQL 异常
-
queryFirst
查询第一行第一列,并转换为指定类型- Specified by:
queryFirstin interfaceJdbcOperations- Type Parameters:
T- 目标类型- Parameters:
sql- SQLparams- 参数clazz- 目标类型- Returns:
- 查询结果
- Throws:
SQLException- SQL 异常
-
queryFirst
执行查询,将第一行数据转为 Map<String, Object>- Specified by:
queryFirstin interfaceJdbcOperations- Parameters:
sql- SQLparams- 参数- Returns:
- 查询结果
- Throws:
SQLException- SQL 异常
-
queryBoolean
查询第一行第一列并转换为 boolean- Specified by:
queryBooleanin interfaceJdbcOperations- Parameters:
sql- SQLparams- 参数- Returns:
- 查询结果。如果查询结果为空,则返回
false - Throws:
SQLException- SQL 异常
-
update
执行更新操作- Specified by:
updatein interfaceJdbcOperations- Parameters:
sql- 要执行的 SQLparams- 参数- Returns:
- 更新记录数
- Throws:
SQLException- SQL 异常
-
updateAndReturnKeys
public <T> List<T> updateAndReturnKeys(String sql, Object[] params, RowMapper<T> rowMapper) throws SQLException 执行 SQL 并返回生成的 keys- Specified by:
updateAndReturnKeysin interfaceJdbcOperations- Type Parameters:
T- 映射结果类型- Parameters:
sql- 要执行的 SQLparams- 参数rowMapper- 行数据映射逻辑- Returns:
- generated keys
- Throws:
SQLException- 数据库执行异常
-
batchUpdate
public BatchUpdateResult batchUpdate(String sql, @Nullable Collection<Object[]> params, int batchSize) throws SQLException 批量更新跑批过程中发生异常即中断操作,并返回结果。
当无法获取所更新的行数时,对应位置的更新行数将被设置为
JdbcOperationSupport.UNKNOWN_COUNT。- Specified by:
batchUpdatein interfaceJdbcOperations- Parameters:
sql- SQL 语句params- 参数列表batchSize- 每次批量更新的数据量- Returns:
- 批量更新的结果
- Throws:
SQLException- SQL 异常
-
batchUpdate
public BatchUpdateResult batchUpdate(String sql, @Nullable Collection<Object[]> params, int batchSize, boolean quietly) throws SQLException 批量更新当无法获取所更新的行数时,对应位置的更新行数将被设置为
JdbcOperationSupport.UNKNOWN_COUNT。- Specified by:
batchUpdatein interfaceJdbcOperations- Parameters:
sql- sql语句params- 参数列表batchSize- 每次批量更新的数据量quietly- 静默分批更新。 如果quietly为true,分批更新过程中发生异常不中断操作; 如果quietly为false,分批更新过程中发生异常即中断操作,并返回结果。- Returns:
- 批次更新结果
- Throws:
SQLException- 数据库执行异常
-
transaction
-