MyBatis SQL分页处理及查询总数据量

查询数据总数:<select id="selectCount" resultType="java.lang.Integer">
    <!--
      WARNING - @mbggenerated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    select
        count(id)
    from
        tb_user
    <where >
      <if test="username != null" >
       and username like ‘%${username,jdbcType=VARCHAR}%‘
      </if>
      <if test="start_time != null" >
        and addtime &gt;= #{start_time,jdbcType=TIMESTAMP}
      </if>
      <if test="end_time != null" >
        and addtime &lt;= #{end_time,jdbcType=TIMESTAMP}
      </if>
    </where>
  </select>

分页查询:
  <select id="getUserForPage" resultMap="BaseResultMap"  >
    <!--
      WARNING - @mbggenerated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    select
        <include refid="Base_Column_List" />
    from
        tb_user
    <where >
      <if test="username != null" >
       and username like ‘%${username,jdbcType=VARCHAR}%‘
      </if>
      <if test="start_time != null" >
        and addtime &gt;= #{start_time,jdbcType=TIMESTAMP}
      </if>
      <if test="end_time != null" >
        and addtime &lt;= #{end_time,jdbcType=TIMESTAMP}
      </if>
    </where>
    limit #{index},#{num}
  </select>

原文地址:https://www.cnblogs.com/hjy2018/p/9572045.html

时间: 2024-12-22 19:55:13

MyBatis SQL分页处理及查询总数据量的相关文章

快速查看SQL Server 中各表的数据量以及占用空间大小

快速查看SQL Server 中各表的数据量以及占用空间大小. CREATE TABLE #T (NAME nvarchar(100),ROWS char(20),reserved varchar(18) ,Data varchar(18) ,index_size varchar(18) ,Unused varchar(18) ) GO INSERT #T EXEC SP_MSFOREACHTABLE 'EXEC sp_spaceused "?"' SELECT * FROM #T O

查询总共要查询的数据量

CREATE TABLE #tablespaceinfo ( nameinfo VARCHAR(50) , rowsinfo BIGINT , reserved VARCHAR(20) , datainfo VARCHAR(20) , index_size VARCHAR(20) , unused VARCHAR(20) ) DECLARE @tablename VARCHAR(255); DECLARE Info_cursor CURSOR FOR SELECT '[' + [name] +

sql server 大数据, 统计分组查询,数据量比较大计算十分钟内每秒钟执行次数

-- 数据量比较大的情况,统计十分钟内每秒钟执行次数 declare @begintime varchar(100); -- 开始时间 declare @endtime varchar(100); -- 结束时间 declare @num int; -- 结束时间 set @begintime = '2019-08-10 09:10:00' -- 开始时间 set @endtime = '2019-08-10 09:20:00' -- 结束时间 set @num = (select count(

SQL查看数据库中每张表的数据量和总数据量

查看所有表对应的数据量 SELECT a.name AS 表名, MAX(b.rows) AS 记录条数 FROM sys.sysobjects AS a INNER JOIN sys.sysindexes AS b ON a.id = b.id WHERE (a.xtype = 'u') GROUP BY a.name ORDER BY 记录条数 DESC 查看数据库的总数据量 SELECT SUM(记录条数) AS 总记录数 FROM (SELECT TOP (10000) a.name A

mybatis缓存问题导致无法查询到数据

今天查询记录时,发现重复查询结果时出现空记录的情况 查看控制台信息,只有红色框选部分有进行查询数据,而其他没有.然而上图可看出有两条数据是能展现出来的,故有可能是mybatis缓存命中的. 因此在mapper文件中加入flushCache="true" useCache="false" <select id="querySuppliers" flushCache="true" useCache="false&q

sql根据一个表查询的数据作为条件查询另一个表

代码格式如下: select * from BillConsume where obId in (select obId from OpenBills where clearTheMarket is null or clearTheMarket=0) 要注意的是:in后面的查询语句必须是查询一个字段跟前面的表相对应的.比如要根据订单号orderID,OpenBills 这个表就需要查询到orderID这个字段,BillConsume这个表的条件就要判断orderID

多表查询在数据量非常大的时候性能不好,慎用!

多表查询时如果表名太长应该考虑使用表别名

JDBC查询数据库数据量

import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet; import com.mysql.jdbc.Statement; public class MySQLDao { public static void main(String[] args) {try {Class.forName("com.mysql.jdbc.Driver");Connection conn = Dr

大数据量分页存储过程效率测试附代码

在项目中,我们经常遇到或用到分页,那么在大数据量(百万级以上)下,哪种分页算法效率最优呢?我们不妨用事实说话. 测试环境 硬件:CPU 酷睿双核T5750  内存:2G 软件:Windows server 2003    +   Sql server 2005 OK,我们首先创建一数据库:data_Test,并在此数据库中创建一表:tb_TestTable 按 Ctrl+C 复制代码1create database data_Test --创建数据库data_Test 2GO 3use data