使用hutool db 分页查询数据

build.gradle配置依赖:

implementation 'cn.hutool:hutool-all:5.8.44'
runtimeOnly 'com.mysql:mysql-connector-j:8.4.0'

db.setting: 


showSql = true
formatSql = false
showParams = true
sqlLevel = debug

# druid config

[LCNEW]
driver = com.mysql.cj.jdbc.Driver
url = jdbc:mysql://127.0.0.1:3306/test
user = test
pass = test
initialSize = 1
maxActive = 20
maxWait = 60000
poolPreparedStatements = true
testOnBorrow = false
testOnReturn = false
testWhileIdle = true
removeAbandoned=true
removeAbandonedTimeout=180
logAbandoned=false
timeBetweenEvictionRunsMillis = 60000
minEvictableIdleTimeMillis=300000
filters = stat
validationQuery = select 1
package com.soft.test;

import java.sql.SQLException;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.soft.db.PoolName;
import com.soft.po.AccountingRecord;

import cn.hutool.db.Db;
import cn.hutool.db.Page;
import cn.hutool.db.PageResult;

public class TestPage {
	private static final Logger log = LoggerFactory.getLogger(TestPage.class);

	public static void main(String[] args) {
		pageQuery();
	}

	public static void pageQuery() {
		// 构建分页参数:Page(页码, 每页条数)
		Page page = new Page(0, 10); // 第1页,每页10条

		// 查询,返回 Bean 列表(推荐,更面向对象)
		PageResult<AccountingRecord> res;
		try {
			res = Db.use(PoolName.MYSQL).page("SELECT * FROM accounting_record WHERE id<= 100", page,
					AccountingRecord.class);
			// 处理分页结果
			log.info("总记录数:" + res.getTotal());
			log.info("总页数:" + res.getTotalPage());
			res.forEach(s -> {
				log.info("数据:{}", s);
			});
		} catch (SQLException e) {
			log.error("", e);
		}
	}
}

package com.soft.po;

import java.math.BigDecimal;
import java.util.Date;

import com.soft.util.JsonTool;

import cn.hutool.json.JSONUtil;

/**
 * 对应数据库表:accounting_record
 */
public class AccountingRecord {
	/**
	 * 主键ID
	 */
	private Long id;

	/**
	 * 用户名
	 */
	private String userName;
	/**
	 * 业务类型
	 */
	private Integer type;
    /**
	 * 处理时间
	 */
	private Date hTime;


// get set方法。。。

@Override
	public String toString() {
		return JSONUtil.toJsonStr(this, JsonTool.cfg());
	}

}
package com.soft.util;

import cn.hutool.json.JSONConfig;

public class JsonTool {
	public static JSONConfig cfg() {
		// 1. 创建JSON配置,指定Date字段的序列化格式
		JSONConfig jsonConfig = new JSONConfig();
		// 关键配置:Date类型转为yyyy-MM-dd HH:mm:ss字符串
		jsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
		// 可选:关闭空值序列化(让输出更简洁,根据需求选择)
		// jsonConfig.setIgnoreNullValue(true);

		return jsonConfig;
	}
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值