smile开发类库——SQLRunner分页查询数据库
本篇文章来介绍下smile中关于数据库分页查询操作的方法:
Smile中主通过实现接口 org.smile.db.sql.page. DialectPage 来进行提供数据库分页查询功能,smile已经实现了常用数据库的分页接口 ,接口代码如:
package org.smile.db.sql.page;
/**
* 方言分页语句接口
* @author strive
*
*/
public interface DialectPage {
/**
* 总条数语句
* @return
*/
public String getCountSql();
/**
* 数据库句
* @return
*/
public String getDataSql(int page,int size);
}
在 smile-1.0.jar中对接口提供了五种实现,分别如下:
- MySQLDialectPage 适用于mysql数据库
- OracleDialectPage 适用于oracle数据库
- RowNumberDialectPage 适用于 row_number() 函数的数据库 如 sql2005以上版本、DB2、APACHE_DERBY 等数据库
- SQL2000DialectPage 适用于 sql2000以上版本
- SQLServerDialectPage 适用于 sql2005以上版本
分页查询的结果是一个封闭了数据与分页信息的对象:
package org.smile.db;
import java.util.List;
/**
* 分页数据
* @author strive
*
*/
public class PageModel {
/**
* 数据
*/
private List rows;
/**
* 总条娄
*/
private long total;
/**
* 一页条数
*/
private int size=20;
/**
* 当前页
*/
private int page;
/**
* 总页数
*/
private long totalPages;
public List getRows() {
return rows;
}
public void setRows(List rows) {
this.rows = rows;
}
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public long getTotalPages() {
return totalPages;
}
public void setTotalPages(long totalPages) {
this.totalPages = totalPages;
}
/**
* 重写toString
*/
public String toString(){
StringBuffer str=new StringBuffer("[page="+page+",size="+size+",totalPages="+totalPages);
str.append(",total="+total+",rows="+rows+"]");
return str.toString();
}
}
一、使用countSql,dataSql分页,这是底层的方法,使用于没有实现接口的数据库类型:
SQLRunner runner=new SQLRunner(conn);
PageModel pageModel=runner.queryPageSQL(countSql, dataSql, page, size);
二、自定义实现接口方法调用,使用于没有实现接口的数据库类型.
Connection conn=DbManager.getConnection();
PageModel pageModel=runner.queryPageSQL(dialectPage, page, size) ;
dialectPage 为实现DialectPage 接口的对象。
三、使用smile中定义好的分页方言接口进行分页查询:
1、指定方言分页接口的实现类对象,进行分页查询:
SQLRunner runner=new SQLRunner(conn);
String sql="select * from test where name like ? ";
try {
//mysql
PageModel pageModel=runner.queryPageSQL(new MySQLDialectPage(sql), new Object[]{"%胡%"}, 2, 20);
}finally{
runner.closeConn();
}
2、可以使用指定方言的形式进行分页查询:
Smile中的预定义方言只有:
/**
* ORACLE数据库
*/
public static final int ORACLE=0;
/**
* sqlserver 2000以上版本
*/
public static final int SQLSERVER2000=1;
/**
* sqlserver 2005以上版本
*/
public static final int SQLSERVER2005=2;
/**
* mysql 数据库
*/
public static final int MYSQL=3;
/**
* hsql
*/
public static final int HSQL=4;
/**
* db2数据库
*/
public static final int DB2=5;
public static final int APACHE_DERBY=6;
SQLRunner runner=new SQLRunner(conn,new ArrayRowHandler());
//设置方言为sql2005 如不设置 默认为oralce方言
runner.setDbDialect(Dialect.SQLSERVER2005);
String sql="select * from test where name like ? ";
try {
//这样也可以对sql2005以上版本的数据库分页
PageModel pageModel=runner.queryPageSQL(sql, new Object[]{"%胡%"}, 2, 20);
}finally{
runner.closeConn();
}
【注】如不是预定义的方言数据库那那就只能使用指定接口的方式进行分页查询。
【smile-1.0.jar下载】
http://hzs0502030128.iteye.com/blog/1471505
分享到:
相关推荐
查询数据 SQLRunner Query 分页查询 二、数据源的实现 DbManager BasicDataSource 三 、JSON操作 JSONValue JSONObject JSONArray 四、 jstl 函数 标签库 五、 jsongateway 框架 六、正则表达式 ...
一个C#写的类库及调用例子
赠送jar包:jackson-dataformat-smile-2.10.0.jar; 赠送原API文档:jackson-dataformat-smile-2.10.0-javadoc.jar; 赠送源代码:jackson-dataformat-smile-2.10.0-sources.jar; 赠送Maven依赖信息文件:jackson-...
“数据库数据同步工具”是一套适合数据库数据管理者和软件开发者的工具软件,从用户的需要出发,为用户需要而设计。软件界面友好,操作简便,能够使用户非常有效和方便的对数据库数据进行管理。 软件主要功能是支持...
smile 页面设计 素材 头像
赠送jar包:jackson-dataformat-smile-2.8.10.jar; 赠送原API文档:jackson-dataformat-smile-2.8.10-javadoc.jar; 赠送源代码:jackson-dataformat-smile-2.8.10-sources.jar; 赠送Maven依赖信息文件:jackson-...
jackson-dataformat-smile-2.11.4.jar jackson-dataformat-yam-2.11.4.jar 这俩jar包在服务运行的时候显示读取失败,拷贝到自己的maven仓库的 \com\fasterxml\jackson\dataformat\jackson-dataformat-smile\2.11.4 ...
Smile Smile (Statistical Machine Intelligence and Learning Engine) is a fast and comprehensive machine learning, NLP, linear algebra, graph, interpolation, and visualization system in Java and Scala...
SmileMiner是一个包含各种现有的机器学习算法的Java库。主要组件包括:mile 机器学习的核心库SmileMath 数学函数、排序、随机数生成器、最优化、线性代数、统计分布、假设检验SmileData Parsers for ... 标签:smile
“数据库数据导出工具”是一套适合系统管理者和数据库数据管理者的工具软件。从用户的需要出发,为用户需要而设计。软件界面友好,操作简便,能够使用户非常有效和方便的对数据库数据进行抽出和管理。
opencv识别资源。例如haarcascade_smile.xml,好像有人要过
第03章数据库文件 第04章表的物理存储 第05章索引 第05章索引及行操作第 06章查询优化
很好用的数据库,对开发用很大的用处,比关系型数据库更实用,在下一个资源上传可视化工具
1、开发环境为Visual Studio 2010,数据库为SQLServer2008R2,使用.net 4.0开发。 2、管理员登陆名密码均为:51aspx 3、附加数据库连接字符串配置文件在web.config 4、DB_51aspx文件夹中是数据库文件,附加即可 ...
Qt连接access数据库,进行数据转换
js类库之parallax.min.js
总共含31851个成语,每个成语都包括拼音,解释。大多数还包括出处和例子。 为了大家使用方便我已经写好了创建数据库和表的操作,读了我的说明文档很容易就可安装。有什么问题欢迎交流。
WinRAR的皮肤主题之一Smile48x48
GDIDrawing2 —— GDI+绘图(二)