Sql Server分页存储过程可以让我们的开发更为方便,下面就为您介绍一个java调用Sql Server分页存储过程的实例,希望可以让您对Sql Server分页存储过程有更深的了解。
- package test;
- import java.sql.*;
- public class Study3 {
- private Connection con;
- public ResultSet rs;
- private CallableStatement callsta;
- private String use = "sa";
- private String pwd = "sa";
- public Study3() {
- try {
- // 连接数据库驱动
- Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
- String str = "jdbc:microsoft:sqlserver://localhost:1433;databasename=test";
- con = DriverManager.getConnection(str, use, pwd);
- // 设置存储过程参数
- String st = "{call Paging(?,?,?)}";
- callsta = con.prepareCall(st);
- callsta.setString(1, "select * from T_employee");
- callsta.setInt(2, 1);
- callsta.setInt(3, 3);
- // 循环输出调用存储过程的记录结果
- StringBuffer sb=new StringBuffer();
- int rsNum=0;//统计结果集的数量
- int updateCount = -1;
- boolean flag = callsta.execute();// 这个而尔值只说明第一个返回内容是更新计数还是结果集。
- do {
- updateCount = callsta.getUpdateCount();
- if (updateCount != -1) {// 说明当前行是一个更新计数
- // 处理.
- System.out.println("..说明当前行是一个更新计数..");
- callsta.getMoreResults();
- continue;// 已经是更新计数了,处理完成后应该移动到下一行
- // 不再判断是否是ResultSet
- }
- rs = callsta.getResultSet();
- if (rs != null) {// 如果到了这里,说明updateCount == -1
- // 处理rs
- rsNum++;
- System.out.println("统计结果集的数量:"+rsNum);
- if (rs != null) {
- ResultSetMetaData rsrsmd = rs.getMetaData(); // 获取字段名
- int numberOfColumns = rsmd.getColumnCount(); // 获取字段数
- int i = 0;
- while (rs.next()) { // 将查询结果取出
- for (i = 1; i <= numberOfColumns; i++) {
- // System.out.println(rs.getInt("总页数"));
- String date = rs.getString(i);
- sb.append(date+" ");
- }
- }
- rs.close();
- }
- callsta.getMoreResults();
- continue;
- // 是结果集,处理完成后应该移动到下一行
- }
- // 如果到了这里,说明updateCount == -1 && rs == null,什么也没的了
- System.out.println(sb.toString());
- } while (!(updateCount == -1 && rs == null));
- // callsta.getXXX(int);//获取输出参数
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public static void main(String[] age) {
- Study3 study = new Study3();
- }
- }
【编辑推荐】