oracle分页存储过程 oracle存储过程实例
程序员文章站
2023-11-22 15:12:22
复制代码 代码如下:import java.sql.callablestatement;import java.sql.connection;import java.sql...
复制代码 代码如下:
import java.sql.callablestatement;
import java.sql.connection;
import java.sql.drivermanager;
import java.sql.resultset;
import java.sql.sqlexception;
import java.sql.statement;
public class testpage {
public testpage() {
}
public static void main(string[] args) {
string driver = "oracle.jdbc.driver.oracledriver";
string strurl = "jdbc:oracle:thin:@localhost:1521:xmgl";
string username = "xmgl";
string password = "xmgl";
statement stmt = null;
resultset rs = null;
connection conn = null;
try {
class.forname(driver);
conn = drivermanager.getconnection(strurl, username, password);
system.out.println("ok");
callablestatement cs = null;
//创建callablestatement
cs = conn.preparecall("{call page.fenye(?,?,?,?,?,?)}");
cs.setstring(1, "mytest");//表名
cs.setint(2, 3);//显示几条记录
cs.setint(3, 1);//第几页
//注册总记录数,声明输出参数是什么类型的
cs.registeroutparameter(4,oracle.jdbc.oracletypes.integer);
//注册总页数
cs.registeroutparameter(5,oracle.jdbc.oracletypes.integer);
//注册返回的结果集
cs.registeroutparameter(6,oracle.jdbc.oracletypes.cursor);
cs.execute();
//取出总记录数 /这里要注意,getint(4)中4,是由该参数的位置决定的
int rownum=cs.getint(4);//获得输出参数
int pagecount = cs.getint(5);
rs=(resultset)cs.getobject(6);
system.out.println("rownum="+rownum);
system.out.println("总页数="+pagecount);
while (rs.next()) {
system.out.println("编号:"+rs.getint(1)+" 名字:"+rs.getstring(2)+" 密码:"+rs.getstring(3));
}
} catch (sqlexception ex2) {
ex2.printstacktrace();
} catch (exception ex2) {
ex2.printstacktrace();
} finally {
try {
if (rs != null) {
rs.close();
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}
} catch (sqlexception ex1) {
}
}
}
}