SpringMVC+Spring学习笔记

直接撸代码...

基本目录

SpringMVC+Spring学习笔记_第1张图片
基本目录

设置项目和模块语言级别是1.8的

    
      
        org.apache.maven.plugins
        maven-compiler-plugin
        2.3.2
        
          1.8
          1.8
        
      
    

首先配置pom.xml


  4.0.0
  com.zs
  vip
  war
  1.0-SNAPSHOT
  vip Maven Webapp
  http://maven.apache.org
  
      4.3.12.RELEASE
    3.4.1
  
  
    
      junit
      junit
      3.8.1
      test
    
    
    
      org.springframework
      spring-webmvc
      ${spring.version}
    
    
    
      javax.servlet
      javax.servlet-api
      3.1.0
      provided
    
    
    
      javax.servlet
      jstl
      1.1.2
    
    
    
      com.mchange
      c3p0
      0.9.5.2
    
    
    
      mysql
      mysql-connector-java
      5.1.38
    
    
    
      org.springframework
      spring-tx
      ${spring.version}
    

    
    
      org.springframework
      spring-jdbc
      ${spring.version}
    

    
    
      org.mybatis
      mybatis
      ${mybatis.version}
    
    
    
      org.mybatis
      mybatis-spring
      1.3.0
    

    
    
      com.github.pagehelper
      pagehelper
      4.1.6
    
    
    
      cglib
      cglib
      3.2.2
    

  
  
    vip
    
      
        org.apache.maven.plugins
        maven-compiler-plugin
        2.3.2
        
          1.8
          1.8
        
      
    
  


配置前端控制器和过滤器




  Archetype Created Web Application

  

  encoding-filter
  org.springframework.web.filter.CharacterEncodingFilter

  
    encoding-filter
    spring-mvc
  


  启动spring容器
  org.springframework.web.context.ContextLoaderListener



  
    contextConfigLocation
    classpath:spring-context.xml
  

  
  
    spring-mvc
    org.springframework.web.servlet.DispatcherServlet
    
      contextConfigLocation
      classpath:spring-mvc.xml
    
    1
  
  
  
    spring-mvc
    *.do
  

配置 控制器解析器、控制器适配器和视图解析器



//通过注解的方式来配置
    
    
        
        
        
        
    

    
    

spring配置



    
    

    
        
        
        
        
        
        
        
        
    

    
    
        

    
    

    
        
        
        
            
                classpath:mapper/*.xml
            

        
    
    
        
        
    

配置mybatis




    
        
        
        
        
        
    

    
        
        
            
            
            
            

        
    

PageHelper配置知识总结


使用方法:
1、根据Mybatis的版本下载对应版本的PageHelper ( Mybatis最低版本不能低于3.3 )
2、在Mybatis的配置文件 Mybatis-Configu.xml中配置PageHelper插件,配置示例:
   plugins插件的配置在 settings之后 在environments之前
   settings中设置Mybatis的一些额外的运行参数 如是否开启延迟加载,动态代理使用CG-LIB,或JAVALIB等
    
          
        
            
            
            
            
            
            
            
        
      
3、使用方法
pageHelper会使用ThreadLocal获取到同一线程中的变量信息,各个线程之间的Threadlocal不会相互干扰,也就是Thread1中的ThreadLocal1之后获取到Tread1中的变量的信息,不会获取到Thread2中的信息
所以在多线程环境下,各个Threadlocal之间相互隔离,可以实现,不同thread使用不同的数据源或不同的Thread中执行不同的SQL语句
所以,PageHelper利用这一点通过拦截器获取到同一线程中的预编译好的SQL语句之后将SQL语句包装成具有分页功能的SQL语句,并将其再次赋值给下一步操作,所以实际执行的SQL语句就是有了分页功能的SQL语句
PageHelper只对紧跟着的第一个SQL语句起作用
如上:所以若一个方法中涉及到多个查询,需要小心,避免为不需要分页的添加了分页,而真正需要分页的却没有被分页
1)、统计总数,(将SQL语句变为 select count(0) from xxx,只对简单SQL语句其效果,复杂SQL语句需要自己写)
    Page page = PageHelper.startPage(1,-1);
    long count = page.getTotal();
2)、分页,pageNum - 第N页, pageSize - 每页M条数
    A、只分页不统计(每次只执行分页语句)
    PageHelper.startPage([pageNum],[pageSize]);
    List pagelist = queryForList( xxx.class, "queryAll" , param);
    //pagelist就是分页之后的结果
    B、分页并统计(每次执行2条语句,一条select count语句,一条分页语句)适用于查询分页时数据发生变动,需要将实时的变动信息反映到分页结果上
    Page page = PageHelper.startPage([pageNum],[pageSize],[iscount]);
    List pagelist = queryForList( xxx.class , "queryAll" , param);
    long count = page.getTotal();
    //也可以 List pagelist = page.getList();  获取分页后的结果集
3)、使用PageHelper查全部(不分页)
    PageHelper.startPage(1,0);
    List alllist = queryForList( xxx.class , "queryAll" , param);
4)、PageHelper的其他API
    String orderBy = PageHelper.getOrderBy();    //获取orderBy语句
    Page page = PageHelper.startPage(Object params);
    Page page = PageHelper.startPage(int pageNum, int pageSize);
    Page page = PageHelper.startPage(int pageNum, int pageSize, boolean isCount);
    Page page = PageHelper.startPage(pageNum, pageSize, orderBy);
    Page page = PageHelper.startPage(pageNum, pageSize, isCount, isReasonable);    //isReasonable分页合理化,null时用默认配置
    Page page = PageHelper.startPage(pageNum, pageSize, isCount, isReasonable, isPageSizeZero);    //isPageSizeZero是否支持PageSize为0,true且pageSize=0时返回全部结果,false时分页,null时用默认配置
5)、默认值
    //RowBounds参数offset作为PageNum使用 - 默认不使用
    private boolean offsetAsPageNum = false;
    //RowBounds是否进行count查询 - 默认不查询
    private boolean rowBoundsWithCount = false;
    //当设置为true的时候,如果pagesize设置为0(或RowBounds的limit=0),就不执行分页,返回全部结果
    private boolean pageSizeZero = false;
    //分页合理化
    private boolean reasonable = false;
    //是否支持接口参数来传递分页参数,默认false
    private boolean supportMethodsArguments = false;  

数据地址

数据下载地址(密码:HRS3)

一步、一步、很艰难、

欢迎加群技术交流234731686

你可能感兴趣的:(SpringMVC+Spring学习笔记)