Package com.pugwoo.dbhelper.impl.part
Class P1_QueryOp
java.lang.Object
com.pugwoo.dbhelper.impl.part.P0_JdbcTemplateOp
com.pugwoo.dbhelper.impl.part.P1_QueryOp
- All Implemented Interfaces:
DBHelper,org.springframework.beans.factory.Aware,org.springframework.context.ApplicationContextAware
- Direct Known Subclasses:
P2_InsertOp
-
Field Summary
Fields inherited from class com.pugwoo.dbhelper.impl.part.P0_JdbcTemplateOp
applicationContext, features, fetchSize, interceptors, jdbcTemplate, LOGGER, maxPageSize, namedParameterJdbcTemplate, timeoutWarningValve -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<T> List<T> 查询列表,查询所有记录,如果数据量大请慎用
【会自动处理软删除记录】<T> List<T> 查询列表,查询所有记录,postSql指定查询where及order by limit等后续语句。
【会自动处理软删除记录】<T> Stream<T> getAllForStream(Class<T> clazz) 查询列表,查询所有记录,以Stream形式返回
【特别注意】为了确保Stream方式查询有效,请确保jdbc的URL参数带上:useCursorFetch=true
说明:可以通过setFetchSize方法修改流式获取数据时,每次获取的数据条数
说明:Stream方式不会调用拦截器的afterQuery
【会自动处理软删除记录】<T> Stream<T> getAllForStream(Class<T> clazz, String postSql, Object... args) 查询列表,查询所有记录,postSql指定查询where及order by limit等后续语句。以Stream形式返回
【特别注意】为了确保Stream方式查询有效,请确保jdbc的URL参数带上:useCursorFetch=true
说明:可以通过setFetchSize方法修改流式获取数据时,每次获取的数据条数
说明:Stream方式不会调用拦截器的afterQuery
【会自动处理软删除记录】<T> List<T> 查询列表,但只查询主键出来,postSql指定查询where及order by limit等后续语句。
【会自动处理软删除记录】<T> List<T> getByExample(T t, int limit) 根据给定的对象t查询跟t的非null值完全相等的记录。 因为很容易出现当t的全部属性全为null时,把整个表都查询出来的问题,特要求调用者给定limit参数,该参数为返回的最大条目数。<T> T适合于只有一个Key的情况,多主键的情况请使用getOne
【会自动处理软删除记录】<T> long计算总数
【会自动处理软删除记录】<T> long计算总数
【会自动处理软删除记录】<T> T查询一条记录,如果有多条,也只返回第一条。该方法适合于知道返回值只有一条记录的情况。
【会自动处理软删除记录】<T> T查询一条记录,如果有多条,也只返回第一条。该方法适合于知道返回值只有一条记录的情况。
【会自动处理软删除记录】<T> PageData<T> 查询列表,没有查询条件
【会自动处理软删除记录】<T> PageData<T> 查询列表,postSql可以带查询条件
【会自动处理软删除记录】<T> PageData<T> getPageWithoutCount(Class<T> clazz, int page, int pageSize) 查询列表,没有查询条件;不查询总数
【会自动处理软删除记录】<T> PageData<T> getPageWithoutCount(Class<T> clazz, int page, int pageSize, String postSql, Object... args) 查询列表,postSql可以带查询条件;不查询总数
【会自动处理软删除记录】<T> List<T> 执行自行指定的SQL查询语句<T> List<T> 执行自行指定的SQL查询语句,支持通过namedParameter的方式传入参数,放到args里面<T> Stream<T> getRawForStream(Class<T> clazz, String sql, Object... args) 执行自行指定的SQL查询语句,以流Stream的形式返回。
【特别注意】为了确保Stream方式查询有效,请确保jdbc的URL参数带上:useCursorFetch=true
说明:可以通过setFetchSize方法修改流式获取数据时,每次获取的数据条数
说明:Stream方式不会调用拦截器的afterQuery<T> Stream<T> getRawForStream(Class<T> clazz, String sql, Map<String, ?> args) 执行自行指定的SQL查询语句,支持通过namedParameter的方式传入参数,放到args里面,以流Stream的形式返回。
【特别注意】为了确保Stream方式查询有效,请确保jdbc的URL参数带上:useCursorFetch=true
说明:可以通过setFetchSize方法修改流式获取数据时,每次获取的数据条数
说明:Stream方式不会调用拦截器的afterQuery<T> T执行自行指定的SQL查询语句,只返回第一行 (特别说明,当有多行时也只返回第一行而不会失败或告警)<T> T执行自行指定的SQL查询语句,支持通过namedParameter的方式传入参数,放到args里面,只返回第一行 (特别说明,当有多行时也只返回第一行而不会失败或告警)<T> voidhandleRelatedColumn(List<T> list) 单独抽离出处理RelatedColumn的类,参数list的元素不需要@Table的注解了。但要求list都同一class类型的对象。<T> voidhandleRelatedColumn(List<T> list, String... relatedColumnProperties) 单独抽离出处理RelatedColumn的类,参数list的元素不需要@Table的注解了。但要求list都同一class类型的对象。<T> voidhandleRelatedColumn(T t) 单独抽离出处理RelatedColumn的类,参数t不需要@Table的注解了<T> voidhandleRelatedColumn(T t, String... relatedColumnProperties) 单独抽离出处理RelatedColumn的类,参数t不需要@Table的注解了<T> boolean是否出现至少一条记录<T> booleanisExistAtLeast(int atLeastCounts, Class<T> clazz, String postSql, Object... args) 是否出现至少N条记录(含N条)Methods inherited from class com.pugwoo.dbhelper.impl.part.P0_JdbcTemplateOp
addComment, executeAfterCommit, getDatabaseType, getFeature, getJdbcTemplate, getNamedParameterJdbcTemplate, jdbcExecuteUpdate, log, logSlow, namedJdbcExecuteUpdate, namedJdbcExecuteUpdateWithLog, rollback, setApplicationContext, setFetchSize, setInterceptors, setJdbcTemplate, setMaxPageSize, setNamedParameterJdbcTemplate, setTimeoutWarningCallback, setTimeoutWarningValve, turnOffFeature, turnOnFeatureMethods 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, insert, insert, insertBatchWithoutReturnId, insertBatchWithoutReturnId, insertBatchWithoutReturnId, insertOrUpdate, insertOrUpdate, insertOrUpdateWithNull, insertWithNull, update, update, update, updateAll, updateCustom, updateWithNull, updateWithNull
-
Constructor Details
-
P1_QueryOp
public P1_QueryOp()
-
-
Method Details
-
getByKey
public <T> T getByKey(Class<T> clazz, Object keyValue) throws NullKeyValueException, NotOnlyOneKeyColumnException Description copied from interface:DBHelper适合于只有一个Key的情况,多主键的情况请使用getOne
【会自动处理软删除记录】- Parameters:
clazz- 查询的DO的类classkeyValue- 查询的主键key值- Returns:
- 如果不存在则返回null
- Throws:
NullKeyValueExceptionNotOnlyOneKeyColumnException
-
getPage
public <T> PageData<T> getPage(Class<T> clazz, int page, int pageSize, String postSql, Object... args) Description copied from interface:DBHelper查询列表,postSql可以带查询条件
【会自动处理软删除记录】- Parameters:
clazz- 【-支持@JoinTable-】page- 从1开始pageSize- 每页查询个数postSql- 包含where关键字起的后续SQL语句,【不能】包含limit子句args- postSql中的参数列表- Returns:
- 返回的data不会是null
-
getPage
Description copied from interface:DBHelper查询列表,没有查询条件
【会自动处理软删除记录】- Parameters:
clazz- 【-支持@JoinTable-】page- 从1开始pageSize- 每页查询个数- Returns:
- 返回的data不会是null
-
getCount
Description copied from interface:DBHelper计算总数
【会自动处理软删除记录】- Parameters:
clazz- 【-支持@JoinTable-】- Returns:
- 总数
-
getCount
Description copied from interface:DBHelper计算总数
【会自动处理软删除记录】- Parameters:
clazz- 【-支持@JoinTable-】postSql- 包含where关键字起的后续SQL语句args- postSql中的参数列表- Returns:
- 总数
-
getPageWithoutCount
public <T> PageData<T> getPageWithoutCount(Class<T> clazz, int page, int pageSize, String postSql, Object... args) Description copied from interface:DBHelper查询列表,postSql可以带查询条件;不查询总数
【会自动处理软删除记录】- Parameters:
clazz- 【-支持@JoinTable-】page- 从1开始pageSize- 每页查询个数postSql- 包含where关键字起的后续SQL语句- Returns:
- 返回的data不会是null
-
getPageWithoutCount
Description copied from interface:DBHelper查询列表,没有查询条件;不查询总数
【会自动处理软删除记录】- Parameters:
clazz- 【-支持@JoinTable-】page- 从1开始pageSize- 每页查询个数- Returns:
- 返回的data不会是null
-
getAll
Description copied from interface:DBHelper查询列表,查询所有记录,如果数据量大请慎用
【会自动处理软删除记录】- Parameters:
clazz- 【-支持@JoinTable-】- Returns:
- 返回不会是null
-
getAllForStream
Description copied from interface:DBHelper查询列表,查询所有记录,以Stream形式返回
【特别注意】为了确保Stream方式查询有效,请确保jdbc的URL参数带上:useCursorFetch=true
说明:可以通过setFetchSize方法修改流式获取数据时,每次获取的数据条数
说明:Stream方式不会调用拦截器的afterQuery
【会自动处理软删除记录】- Parameters:
clazz- 【-支持@JoinTable-】- Returns:
- 返回不会是null【重要】请在获取完数据之后,close stream,不然会一直占用数据库连接。
-
getAllForStream
Description copied from interface:DBHelper查询列表,查询所有记录,postSql指定查询where及order by limit等后续语句。以Stream形式返回
【特别注意】为了确保Stream方式查询有效,请确保jdbc的URL参数带上:useCursorFetch=true
说明:可以通过setFetchSize方法修改流式获取数据时,每次获取的数据条数
说明:Stream方式不会调用拦截器的afterQuery
【会自动处理软删除记录】- Parameters:
clazz- 【-支持@JoinTable-】postSql- where及后续语句,可包含order by,group by,limit等语句- Returns:
- 返回不会是null【重要】请在获取完数据之后,close stream,不然会一直占用数据库连接。
-
getAll
Description copied from interface:DBHelper查询列表,查询所有记录,postSql指定查询where及order by limit等后续语句。
【会自动处理软删除记录】- Parameters:
clazz- 【-支持@JoinTable-】postSql- where及后续语句,可包含order by,group by,limit等语句- Returns:
- 返回不会是null
-
getAllKey
Description copied from interface:DBHelper查询列表,但只查询主键出来,postSql指定查询where及order by limit等后续语句。
【会自动处理软删除记录】- Parameters:
clazz- 【-支持@JoinTable-】postSql- where及后续语句,可包含order by,group by,limit等语句- Returns:
- 返回不会是null
-
getOne
Description copied from interface:DBHelper查询一条记录,如果有多条,也只返回第一条。该方法适合于知道返回值只有一条记录的情况。
【会自动处理软删除记录】- Parameters:
clazz- 【-支持@JoinTable-】- Returns:
- 如果不存在则返回null
-
getOne
Description copied from interface:DBHelper查询一条记录,如果有多条,也只返回第一条。该方法适合于知道返回值只有一条记录的情况。
【会自动处理软删除记录】- Parameters:
clazz- 查询的DO类【-支持@JoinTable-】postSql- where及后续语句,可包含order by,group by等语句args- postSql中的参数列表- Returns:
- 如果不存在则返回null
-
getRaw
Description copied from interface:DBHelper执行自行指定的SQL查询语句,支持通过namedParameter的方式传入参数,放到args里面- Parameters:
clazz- 转换回来的DO类,也支持关联查询后处理;支持基本类型如Integer/Long/String等; 特别说明,对于Long和Integer,如果数据库返回的是null,由于ResultSet的getInt会返回0,所以这里也返回0sql- 自定义SQL,参数用namedParameter的方式args- 自定义参数
-
getRawForStream
Description copied from interface:DBHelper执行自行指定的SQL查询语句,支持通过namedParameter的方式传入参数,放到args里面,以流Stream的形式返回。
【特别注意】为了确保Stream方式查询有效,请确保jdbc的URL参数带上:useCursorFetch=true
说明:可以通过setFetchSize方法修改流式获取数据时,每次获取的数据条数
说明:Stream方式不会调用拦截器的afterQuery- Parameters:
clazz- 转换回来的DO类,也支持关联查询后处理;支持基本类型如Integer/Long/String等; 特别说明,对于Long和Integer,如果数据库返回的是null,由于ResultSet的getInt会返回0,所以这里也返回0sql- 自定义SQLargs- 自定义参数- Returns:
- 【重要】请在获取完数据之后,close stream,不然会一直占用数据库连接。
-
getRawForStream
Description copied from interface:DBHelper执行自行指定的SQL查询语句,以流Stream的形式返回。
【特别注意】为了确保Stream方式查询有效,请确保jdbc的URL参数带上:useCursorFetch=true
说明:可以通过setFetchSize方法修改流式获取数据时,每次获取的数据条数
说明:Stream方式不会调用拦截器的afterQuery- Parameters:
clazz- 转换回来的DO类,也支持关联查询后处理;支持基本类型如Integer/Long/String等; 特别说明,对于Long和Integer,如果数据库返回的是null,由于ResultSet的getInt会返回0,所以这里也返回0sql- 自定义SQLargs- 自定义参数- Returns:
- 【重要】请在获取完数据之后,close stream,不然会一直占用数据库连接。
-
getRaw
Description copied from interface:DBHelper执行自行指定的SQL查询语句- Parameters:
clazz- 转换回来的DO类,也支持关联查询后处理;支持基本类型如Integer/Long/String等; 特别说明,对于Long和Integer,如果数据库返回的是null,由于ResultSet的getInt会返回0,所以这里也返回0sql- 自定义SQLargs- 自定义参数
-
getRawOne
Description copied from interface:DBHelper执行自行指定的SQL查询语句,只返回第一行 (特别说明,当有多行时也只返回第一行而不会失败或告警)- Parameters:
clazz- 转换回来的DO类,也支持关联查询后处理;支持基本类型如Integer/Long/String等; 特别说明,对于Long和Integer,如果数据库返回的是null,由于ResultSet的getInt会返回0,所以这里也返回0sql- 自定义SQLargs- 自定义参数
-
getRawOne
Description copied from interface:DBHelper执行自行指定的SQL查询语句,支持通过namedParameter的方式传入参数,放到args里面,只返回第一行 (特别说明,当有多行时也只返回第一行而不会失败或告警)- Parameters:
clazz- 转换回来的DO类,也支持关联查询后处理;支持基本类型如Integer/Long/String等; 特别说明,对于Long和Integer,如果数据库返回的是null,由于ResultSet的getInt会返回0,所以这里也返回0sql- 自定义SQL,参数用namedParameter的方式args- 自定义参数
-
getByExample
Description copied from interface:DBHelper根据给定的对象t查询跟t的非null值完全相等的记录。 因为很容易出现当t的全部属性全为null时,把整个表都查询出来的问题,特要求调用者给定limit参数,该参数为返回的最大条目数。- Parameters:
t- 提供查询条件的对象tlimit- 限制查询的最大条目数
-
isExist
Description copied from interface:DBHelper是否出现至少一条记录- Parameters:
clazz- 查询的DO类postSql- 不能有limit子句args- postSql中的参数列表- Returns:
- 如果存在则返回true,否则返回false
-
isExistAtLeast
public <T> boolean isExistAtLeast(int atLeastCounts, Class<T> clazz, String postSql, Object... args) Description copied from interface:DBHelper是否出现至少N条记录(含N条)- Parameters:
atLeastCounts- 至少有N条记录(isExist方法等级于atLeastCounts=1)clazz- 查询的DO类postSql- 不能有limit子句args- postSql中的参数列表- Returns:
- 如果存在则返回true,否则返回false
-
handleRelatedColumn
public <T> void handleRelatedColumn(T t) Description copied from interface:DBHelper单独抽离出处理RelatedColumn的类,参数t不需要@Table的注解了- Parameters:
t- 需要处理RelatedColumn的对象
-
handleRelatedColumn
Description copied from interface:DBHelper单独抽离出处理RelatedColumn的类,参数t不需要@Table的注解了- Parameters:
t- 需要处理RelatedColumn的对象relatedColumnProperties- 只处理制定的这些RelatedColumn注解的成员变量,这个的值是成员变量的名称
-
handleRelatedColumn
Description copied from interface:DBHelper单独抽离出处理RelatedColumn的类,参数list的元素不需要@Table的注解了。但要求list都同一class类型的对象。- Parameters:
list- 需要处理RelatedColumn的对象列表
-
handleRelatedColumn
Description copied from interface:DBHelper单独抽离出处理RelatedColumn的类,参数list的元素不需要@Table的注解了。但要求list都同一class类型的对象。- Parameters:
list- 需要处理RelatedColumn的对象列表relatedColumnProperties- 只处理制定的这些RelatedColumn注解的成员变量,这个的值是成员变量的名称
-