资源描述:
《oracle + jdbctemplate + spring + java + flex 实现分页》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Oracle+jdbcTemplate+Spring+Java+Flex实现分页要点:1.Oracle存储过程分页2.Java调用Oracle存储过程3.Flex分页效果:步骤:1.Oracle存储过程分页--分页CREATEORREPLACEPROCEDUREP_FENYE(V_LISTOUTSYS_REFCURSOR,--游标集合V_PAGESIZEINNUMBER,--每页记录数V_CURRPAGEINNUMBER,--当前页数V_SQLSTRINVARCHAR2--SQL语句)ISSQL_STRVARCHAR2(1000);BEGIN--分页开始SQL_
2、STR:='SELECT*FROM(SELECTROWNUMASRN,A.*FROM(';SQL_STR:=SQL_STR
3、
4、V_SQLSTR;--V_SQLSTR里面包含模糊查询语句SQL_STR:=SQL_STR
5、
6、')AWHEREROWNUM<='
7、
8、V_CURRPAGE*V_PAGESIZE
9、
10、')BWHEREB.RN>'
11、
12、(V_CURRPAGE-1)*V_PAGESIZE;--分页结束--DBMS_OUTPUT.put_line('SQL_STR:'
13、
14、SQL_STR);--输出SQL语句OPENV_LISTFORSQL_STR;END;--总行数C
15、REATEORREPLACEPROCEDUREP_COUNT(V_COUNTOUTNUMBER,--总行数V_SQLSTRINVARCHAR2--SQL语句)ISSQL_STRVARCHAR2(1000);BEGINSQL_STR:='SELECTCOUNT(*)INTO:V_COUNTFROM(';SQL_STR:=SQL_STR
16、
17、V_SQLSTR;--V_SQLSTR里面包含模糊查询语句SQL_STR:=SQL_STR
18、
19、')';EXECUTEIMMEDIATESQL_STRINTOV_COUNT;--执行SQL语句将结果赋值给V_COUNTEND;测试-
20、-模糊查询返回字符串CREATEORREPLACEPROCEDUREP_EMP_SELECT_SQL(V_SQLSTROUTVARCHAR2,--输出参数V_ENAMEINVARCHAR2,--员工名称V_JOBINVARCHAR2,--员工职位V_SALINVARCHAR2,--员工薪水V_BEGINTIMEINVARCHAR2,--开始时间V_ENDTIMEINVARCHAR2--结束时间)ISSQL_STRVARCHAR2(1000);FLAGINT:=0;SALMININT:=0;SALMAXINT:=0;BEGINSQL_STR:='SELECTEMP
21、NO,ENAME,JOB,SAL,to_char(HIREDATE,''yyyy-MM-dd'')asHIREDATEFROMEMPWHERE1=1';IF(V_ENAMEISNOTNULL)THENBEGINSQL_STR:=SQL_STR
22、
23、'ANDENAMELIKE''%'
24、
25、V_ENAME
26、
27、'%''';END;ENDIF;IF(V_JOBISNOTNULL)THENBEGINSQL_STR:=SQL_STR
28、
29、'ANDJOBLIKE''%'
30、
31、V_JOB
32、
33、'%''';END;ENDIF;IF(V_SALISNOTNULL)THENBEGINFLAG:
34、=INSTR(V_SAL,'-');IFFLAG>0thenBEGINSALMIN:=SUBSTR(V_SAL,0,FLAG-1);SALMAX:=SUBSTR(V_SAL,FLAG+1,LENGTH(V_SAL));IF(SALMAXISNOTNULL)THENSQL_STR:=SQL_STR
35、
36、'ANDSAL>'''
37、
38、SALMIN
39、
40、'''ANDSAL<='''
41、
42、SALMAX
43、
44、'''';ELSESQL_STR:=SQL_STR
45、
46、'ANDSAL>'''
47、
48、SALMIN
49、
50、'''';ENDIF;END;ENDIF;END;ENDIF;IF(V_BEGIN
51、TIMEISNOTNULL)THENBEGINSQL_STR:=SQL_STR
52、
53、'ANDHIREDATE>=to_date('''
54、
55、V_BEGINTIME
56、
57、''',''yyyy-MM-dd'')';END;ENDIF;IF(V_ENDTIMEISNOTNULL)THENBEGINSQL_STR:=SQL_STR
58、
59、'ANDHIREDATE<=to_date('''
60、
61、V_ENDTIME
62、
63、''',''yyyy-MM-dd'')';END;ENDIF;V_SQLSTR:=SQL_STR;--赋值END;--分页DECLAREV_SQLSTRVARCHAR2(
64、1000);--SQL字