MyBatis高级和ssm三大框架得集成

一.代码生成器

    maven 导包
mysql mysql-connector-java 5.1.46


    org.mybatis
    mybatis
    3.2.1


    org.slf4j
    slf4j-api
    1.6.1


    org.slf4j
    slf4j-log4j12
    1.6.1
    runtime


    log4j
    log4j
    1.2.14




    junit
    junit
    4.12
    



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

    1.2 准备代码生成器插件
             
POM.xml
 
       
      
    
        org.mybatis.generator
        mybatis-generator-maven-plugin
        1.3.2
        
            
            
            true
            true
        
       
   


1.3 generatorConfig.xml
      
 默认在资源夹根目录,必需叫这个名称





    
    
    
    
        
        
            
            
        
        
        
        
        
        
            
        

        
        
            
        
        
        
        

        
        
            
        
        
        
        

二.MyBatis拦截器

    2.1 实现接口
        2.1.1 拦截器中的方法
           
   intercept:拦截的核心方法(在这里面实现相应的功能)
    plugin:必需 return Plugin.wrap(o, this); 代表对于签名(在类上面的注解中)的拦截
    setProperties:获取拦截器配置的参数

        2.1.2 签名
        

type:对应的类(Executor.class,ResultSetHandler.class,ParameterHandler.class,StatementHandler.class) 但是一般只用 Executor.class

method:type类中的方法名,我们一般只用 Executor.class中的update(增删改)与query(查询)

args:参数(方法中的参数类型)

//我要拦截增删改的功能
@Intercepts(
        //签名
      @Signature(
              type= Executor.class,
              method = "query",
              args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class}
      )
)
public class HelloInterceptor implements Interceptor {

    /**
     * 拦截器的核心方法(要做的事情是在这里完成的)
     * @param invocation
     */
    @Override
    public Object intercept(Invocation invocation) throws Throwable {
        System.out.println("方法:"+invocation.getMethod());
        System.out.println("对象:"+invocation.getTarget());
        System.out.println("参数:"+invocation.getArgs());
        //执行相应的方法
        Object result = invocation.proceed();

        return result;
    }

    /**
     * 对哪些【签名】进行拦截(放行)
     *  哪些操作(修改与查询)会经过咱们的拦截方法:intercept
     * @param o
     * @return
     */
    @Override
    public Object plugin(Object o) {
        return Plugin.wrap(o, this);
       // return o;
    }

    /*
    
        
    
    */
    //接收参数
    @Override
    public void setProperties(Properties properties) {
        String dbType = properties.getProperty("dbType");
        System.out.println(dbType);
    }
}


    2.2 拦截器的配置
      
在mybatis-config.xml中进行配置



    
        
    


    2.3 分页插件
        2.3.1 引入这个插件
          

    com.github.pagehelper
    pagehelper
    5.0.0

        2.3.3 插件配置
           
在mybatis-config.xml中进行配置
集成spring的配置


  
  
    
      
    
  


        2.3.3 使用分页插件
        
PageHelper.startPage(1, 10);

@Test
public void testPage() throws Exception{
    //分页 pageNum:第几页  pageSize:每页条数
    PageHelper.startPage(1, 10);

    SqlSession session = MyBatisUtil.openSession();
    EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
    List employees = mapper.selectAll();
    Page page = (Page) employees;
    System.out.println("第几页:"+page.getPageNum()); //第几页
    System.out.println("总页数:"+page.getPages()); //总页数
    System.out.println("总条数:"+page.getTotal()); //总页数
    System.out.println("结果:"+page.getResult());

    page.getResult().forEach(e -> System.out.println(e));
}

三.SSM集成

    3.1 Spring与MyBatis集成
       
db.properites

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///mybatis
jdbc.username=root
jdbc.password=admin

applicationContext.xml



  
    

  
  

  
  
    
    
    
    
  

  
  
      
      
      
      
      
      
  

  
   

  
  
      
      
      
  

    
    
        
    

    
    


    3.2 Spring与SpringMVC

applicationContext-mvc.xml



    
    
    
    
    
    
    
    
        
        
    
    
    




web.xml



    contextConfigLocation
    classpath:applicationContext.xml


    org.springframework.web.context.ContextLoaderListener




    springmvc
    org.springframework.web.servlet.DispatcherServlet
    1
    
        contextConfigLocation
        classpath:applicationContext-mvc.xml
    


    springmvc
    /


注意:不要在mvc的配置文件中去引入spring的核心配置文件(有些框【shiro】架就无法使用)

你可能感兴趣的:(mybatis)