Mybatis源码阅读1 --- 让Mybatis运行起来

读源码肯定要debug,先搭好环境。首先把源码下载到本地: https://github.com/mybatis/mybatis-3 可以用git也可以直接下载zip包。下载完后我们需要的是src目录和pom.xml文件,准备完毕

 

1:创建一个java工程:

Mybatis源码阅读1 --- 让Mybatis运行起来_第1张图片

2:把mybatis源码的org文件(位置:src->main->java)复制到新建工程的main目录下,把mybatis源码的pom.xml里面的dependency复制到工程的pom.xml的dependencies中。顺便在dependency加上mysql驱动,修改maven-compile-plugin为1.8,下图附上dependencies和build




  4.0.0

  com.hhg.jerry
  mybatis-gg
  1.0-SNAPSHOT

  mybatis-gg

  
    
      ognl
      ognl
      3.2.6
      compile
      true
    
    
      org.javassist
      javassist
      3.22.0-GA
      compile
      true
    
    
      org.slf4j
      slf4j-api
      1.7.25
      true
    
    
      org.slf4j
      slf4j-log4j12
      1.7.25
      true
    
    
      log4j
      log4j
      1.2.17
      true
    
    
      org.apache.logging.log4j
      log4j-core
      2.11.0
      true
    
    
      commons-logging
      commons-logging
      1.2
      true
    
    
      cglib
      cglib
      3.2.6
      true
    

    
      mysql
      mysql-connector-java
      5.1.38
    

    
      junit
      junit
      4.11
      test
    
  

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


 

3:创建City类和CityDao, 简单一点,City类只有id属性,CityDao只有一个方法getById

 

Mybatis源码阅读1 --- 让Mybatis运行起来_第2张图片

Mybatis源码阅读1 --- 让Mybatis运行起来_第3张图片

 

4:添加CityMapper.xml(resources目录下),仅有一个select语句





    

5:mybatis的配置文件mybatis.xml(resources目录下), 仅有environments和mapers




    
        
            
            
                
                
                
                
            
        
    
    
        
    

 

5 : 自建一个类或用App.java,添加代码运行mybatis

 

package com.hhg.jerry;

import com.hhg.jerry.model.City;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.InputStream;

/**
 * Hello world!
 *
 */
public class App {
    public static void main( String[] args ) throws Exception{
        InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        City city = sqlSession.selectOne("com.hhg.jerry.dao.CityDao.getById",1L);
        System.out.println(city);
    }
}

 

到此,mybatis源码就能debug了。

 

总结:这一篇主要目的是能debug mybatis,为了简化,mybatis的核心配置文件只加了environments和一个mappers,CityDao也只有一个方法,City也就有一个属性。下一篇会完善mybatis的配置及mapper对应的方法。

若环境有问题,也可从github上clone我上传的工程--->>>https://github.com/DimLighter/mybatis-gg

                                                                                                                             下一篇:流程概要分析

你可能感兴趣的:(mybatis)