php sqlserver jdbc,jdbc sqlserver 分页

本文探讨了如何使用Spring JdbcTemplate进行SQL查询优化,包括不包含条件(top...notin)、最大ID限制(top...id>(max)),并重点介绍了游标方法在效率上的优势。作者分享了使用limit参数和自定义ResultSetExtractor实现分页和高效数据提取的实践案例。
摘要由CSDN通过智能技术生成

(1). top ... not in , (2). top .... id( max ),(3).游标 这种方法感觉比上面三种要快 ,分享一下跟好的意见 使用的是org.springframework.jdbc.core. JdbcTemplate limit = 25; public ListMapString, Object findAll(String type, final int start, f

(1). top ... not in , (2). top .... id>(max),(3).游标

这种方法感觉比上面三种要快 ,分享一下跟好的意见

使用的是 org.springframework.jdbc.core.JdbcTemplate

limit = 25;

public List> findAll(String type, final int start, final int limit) {

StringBuilder builder = new StringBuilder();

Listparams = new ArrayList();//给占位符赋值

builder.append("select top " + (start + limit)//第一页,start=0 ()select top 25 * ,第二页 start=25 (select top 50 *)

+ " * from v_fulldata a where 1=1");

if (type != null && type != " ") {

builder.append(" and a.atype = ? ");

params.add(type);

}

builder.append(" order by wg13 desc;");

String sql = builder.toString();

List> list = (List>) getJdbc()

.query(sql, params.toArray(), new ResultSetExtractor() {

@Override

public Object extractData(ResultSet rs)

throws SQLException, DataAccessException {

List> list = new ArrayList>();

while (rs.next()) { //将查询结果循环

if (rs.getRow() < start) { //排除小于开始索引的数据

continue;

}

Map row = new HashMap();

ResultSetMetaData rsmd = rs.getMetaData();

for (int i = 1; i <= rsmd.getColumnCount(); i++) {

row.put(rsmd.getColumnName(i), rs.getString(i));

}

list.add(row);

}

return list;

}

});

return list;

}

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值