-- CREATE END; |
--创建分页存储过程 CREATE ( v_tableName v_pageSize v_pageNow v_myTotalRows v_myTotalPageCount v_cursor ) IS v_sql 1000 ); v_begin 1 )*v_pageSize+ 1 ; v_end BEGIN v_sql:='select select select ') ||v_end|| ') ||v_begin|| '' ; OPEN v_sql:= 'select ||v_tableName|| '' ; EXECUTE IF 0 THEN v_myTotalPageCount:=v_myTotalRows/v_pageSize; ELSE v_myTotalPageCount:=v_myTotalRows/v_pageSize+ 1 ; END END; |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
public YOURClass int targetPage, int eachpagenum){ Connection //获取Oraccle //参数位置要与存储过程对应,其余用法跟pstmt类似 String "{call ; try { cs cs.setString( 1 , "tablename" ); // cs.setInt( 2 ,eachpagenum); // cs.setInt( 3 ,targetPage); // // cs.registerOutParameter( 4 ,OracleTypes.NUMBER); cs.registerOutParameter( 5 ,OracleTypes.NUMBER); cs.registerOutParameter( 6 ,OracleTypes.CURSOR); cs.execute(); // totalRowsCount 4 ); // totalPagesCount 5 ); // ResultSet 6 ); while (rs.next()){ // } return YOURClass; } catch (SQLException e.printStackTrace(); } return null ; } |
下面就不给出JAVA代码了,因为都是类似的。用法跟pstmt一样,只是多了注册输出变量。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
--带模糊查询的分页 CREATE ( v_tableName v_colName v_keyword v_pageSize v_pageNow v_myTotalRows v_myTotalPageCount v_cursor ) IS v_sql 1000 ); v_begin 1 )*v_pageSize+ 1 ; v_end BEGIN v_sql:='select select select ' where '||v_colName||' like '' % '|| % '' '|| ') ||v_end|| ') ||v_begin|| '' ; OPEN v_sql:= 'select ||v_tableName|| '' ; EXECUTE IF 0 THEN v_myTotalPageCount:=v_myTotalRows/v_pageSize; ELSE v_myTotalPageCount:=v_myTotalRows/v_pageSize+ 1 ; END END; |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
--带模糊查询带排序的分页 CREATE ( v_tableName v_colName v_keyword v_colOrder v_orderType v_pageSize v_pageNow v_myTotalRows v_myTotalPageCount v_cursor ) IS v_sql 1000 ); v_begin 1 )*v_pageSize+ 1 ; v_end BEGIN v_sql:='select select select ' where '||v_colName||' like '' % '|| % '' '|| ' ||v_colOrder|| ' ||v_orderType|| ') ||v_end|| ') ||v_begin|| '' ; OPEN v_sql:= 'select ||v_tableName|| '' ; EXECUTE IF 0 THEN v_myTotalPageCount:=v_myTotalRows/v_pageSize; ELSE v_myTotalPageCount:=v_myTotalRows/v_pageSize+ 1 ; END END; |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
--带模糊查询带排序带时间段的分页 CREATE ( v_tableName v_colName v_keyword v_colOrder v_orderType v_colDate v_dateBegin v_dateEnd v_pageSize v_pageNow v_myTotalRows v_myTotalPageCount v_cursor ) IS v_sql 1000 ); v_begin 1 )*v_pageSize+ 1 ; v_end BEGIN v_sql:='select select select ' where '||v_colName||' like '' % '|| % '' '|| ' v_colDate|| ' v_dateBegin ' ||v_dateEnd ' ||v_colOrder|| ' || ') ||v_end|| ') ||v_begin|| '' ; OPEN v_sql:= 'select ||v_tableName|| '' ; EXECUTE IF 0 THEN v_myTotalPageCount:=v_myTotalRows/v_pageSize; ELSE v_myTotalPageCount:=v_myTotalRows/v_pageSize+ 1 ; END END; |
这几个下来想必大家也都清楚该怎么做了。如果需要添加什么条件,只需要在最内层字句中添加相应