java 分页缓存_6.MyBaits的分页和缓存查询

1. 创建javaweb项目MyBaits_Page_CaChe

2.在项目的WebRoot下的WEB-INF下的lib文件下加入jar文件

log4j-1.2.17.jar

mybatis-3.2.3.jar

ojdbc14.jar

3.在src下创建jdbc.properties属性文件

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 driver=oracle.jdbc.driver.OracleDriver2 url=jdbc\:oracle\:thin\:@127.0.0.1\:1521\:orcl3 username=scott4 password=tiger

jdbc.properties

4.在src下创建configuration.xml主配置文件

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 <?xml version="1.0" encoding="UTF-8"?>

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

40

41

configuration.xml

5.在src下创建log4j.properties日志文件

1 log4j.rootLogger=DEBUG,Console2

3 #Console4 log4j.appender.Console=org.apache.log4j.ConsoleAppender5 log4j.appender.stdout.Target=System.err6 log4j.appender.Console.layout=org.apache.log4j.PatternLayout7

8 ###log4j to file###9 log4j.appender.logfile=org.apache.log4j.FileAppender10 log4j.appender.logfile.File=mybatis.log

11 log4j.appender.logfile.layout=org.apache.log4j.PatternLayout12 log4j.appender.Console.layout.ConversionPattern=%d %p %F %M [%t] %-5p [%c] - %m%n13

14 log4j.logger.java.sql.ResultSet=INFO15 log4j.logger.org.apache=INFO16 log4j.logger.java.sql.Connection=DEBUG17 log4j.logger.java.sql.Statement=DEBUG18 log4j.logger.java.sql.PreparedStatement=DEBUG

6.在src下创建com.entity包下创建Emp.java

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 packagecom.entity;2

3 public classEmp {4 private intempno;5 privateString ename;6 private doublesal;7 private intdeptno;8

9 publicEmp() {10 }11 public Emp(int empno, String ename, double sal, intdeptno) {12 this.empno =empno;13 this.ename =ename;14 this.sal =sal;15 this.deptno =deptno;16 }17 public intgetEmpno() {18 returnempno;19 }20 public void setEmpno(intempno) {21 this.empno =empno;22 }23 publicString getEname() {24 returnename;25 }26 public voidsetEname(String ename) {27 this.ename =ename;28 }29 public doublegetSal() {30 returnsal;31 }32 public void setSal(doublesal) {33 this.sal =sal;34 }35 public intgetDeptno() {36 returndeptno;37 }38 public void setDeptno(intdeptno) {39 this.deptno =deptno;40 }41 @Override42 publicString toString() {43 return "Emp [deptno=" + deptno + ", empno=" + empno + ", ename="

44 + ename + ", sal=" + sal + "]";45 }46

47

48 }

Emp.java

7.在src下创建com.util包下创建MyBatisUtil.java

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 packagecom.util;2

3 importjava.io.IOException;4 importjava.io.Reader;5

6 importorg.apache.ibatis.io.Resources;7 importorg.apache.ibatis.session.SqlSession;8 importorg.apache.ibatis.session.SqlSessionFactory;9 importorg.apache.ibatis.session.SqlSessionFactoryBuilder;10

11 public classMyBatisUtil {12 private static SqlSessionFactory sqlSessionFactory=null;13 static{14 try{15 Reader reader=Resources.getResourceAsReader("configuration.xml");16 sqlSessionFactory=newSqlSessionFactoryBuilder().build(reader);17 } catch(IOException e) {18 e.printStackTrace();19 }20

21 }22

23 public static SqlSession getSqlSession(booleanisCommit){24 returnsqlSessionFactory.openSession(isCommit);25 }26

27 }

MyBatisUtil.java

8.在src下创建com.page包下创建EmpPage.java

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 packagecom.page;2

3 importjava.util.List;4

5 importorg.apache.ibatis.session.SqlSession;6

7 importcom.entity.Emp;8 importcom.mapper.EmpMapper;9 importcom.util.MyBatisUtil;10

11 public classEmpPage {12 privateInteger pageNo;13 privateInteger pageSize;14 privateInteger totalPage;15 privateInteger totalCount;16

17

18 publicEmpPage() {19 }20 publicEmpPage(Integer pageNo, Integer pageSize) {21 this.pageNo =pageNo;22 this.pageSize =pageSize;23 }24 publicInteger getPageNo() {25 returnpageNo;26 }27 public voidsetPageNo(Integer pageNo) {28 if(pageNo!=null){29 this.pageNo =pageNo;30 }else{31 this.pageNo=1;32 }33

34 }35 publicInteger getPageSize() {36 returnpageSize;37 }38 public voidsetPageSize(Integer pageSize) {39 this.pageSize =pageSize;40 }41 publicInteger getTotalPage() {42 returntotalPage;43 }44 public voidsetTotalPage(Integer totalPage) {45 this.totalPage =totalPage;46 }47 publicInteger getTotalCount() {48 returntotalCount;49 }50 public voidsetTotalCount(Integer totalCount) {51 this.totalCount =totalCount;52 }53

54 /**

55 * 查询总记录数56 *@return总记录数57 */

58 public inttotalCount(){59 SqlSession sqlSession=MyBatisUtil.getSqlSession(false);60 EmpMapper mapper=sqlSession.getMapper(EmpMapper.class);61 Integer count=mapper.totalCount();62 sqlSession.clearCache();63 sqlSession.close();64

65 //修改

66

67 returncount;68 }69

70 /**

71 * 计算总页数72 *@parampageSize 页面大小73 *@paramtotalCount 总的记录数74 *@return总页数75 */

76 public int totalPage(int pageSize,inttotalCount){77 int count=totalCount%pageSize==0?totalCount/pageSize:totalCount/pageSize+1;78 this.setTotalPage(count);79 returncount;80 }81

82 /**

83 * 分页查询84 *@parampageSize 页面大小85 *@parampageNo 当前页86 *@return分页查询集合87 */

88 public ListfindEmpPage(EmpPage page){89 SqlSession sqlSession=MyBatisUtil.getSqlSession(false);90 EmpMapper mapper=sqlSession.getMapper(EmpMapper.class);91 List list=mapper.findEmpPage(page);92 sqlSession.close();93 returnlist;94 }95

96

97 }

EmpPage.java

9.在src下创建com.mapper包下创建EmpMapper.java

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 packagecom.mapper;2

3 importjava.util.List;4

5 importcom.entity.Emp;6 importcom.page.EmpPage;7

8 public interfaceEmpMapper {9 /**

10 * 查询总条数11 *@return

12 */

13 Integer totalCount();14

15 /**

16 * 分页查询17 */

18 ListfindEmpPage(EmpPage page);19

20 }

EmpMapper.java

10.在src下创建com.test包下创建EmpMapper.xml

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 <?xml version="1.0" encoding="UTF-8"?>

2

3

4

5

6

7

8

9

10

11

12

13 select count(*) from emp14

15

16

17

18

19 select e.empno,e.ename,e.sal,e.deptno from20 (21 select rownum r,empno,ename,sal,deptno from emp22 where rownum<=(#{pageNo}*#{pageSize})23 )e where24 e.r>(#{pageNo}-1)*#{pageSize}25 ]]>

26

27

35

36

37

38

EmpMapper.xml

11.在src下创建com.mapper包下创建Test.java

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 packagecom.test;2

3 importjava.util.List;4

5 importcom.entity.Emp;6 importcom.page.EmpPage;7

8 public classTest {9

10 public static voidmain(String[] args) {11 EmpPage page=new EmpPage(2, 3);12 int count=page.totalCount();13 count=page.totalCount();14 System.out.println("------总条数:"+count);15 System.out.println("-----------分页查询数据如下---------");16 List list=page.findEmpPage(page);17 for(Emp emp : list) {18 System.out.println(emp);19 }20 }21

22 }

Test.java

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值