mybatis代码生成的几种方式

mybatis代码生成工具mybatis-generator调用有好几种方式:1. 使用eclipse插件,在下面地址安装
http://mybatis.googlecode.com/svn/sub-projects/generator/trunk/eclipse/UpdateSite/
然后编写生成配置文件generatorConfig.xml,eclipse中在这个文件上右键,就有Generate Mybatis/iBatis Artifacts,由此就可以生成代码了。generatorConfig.xml文件详细内容之后有示例,这里先不贴出来,使用eclipse插件的方式有个不同就是targetProject的配置是项目名开头的,比如其他配置是targetProject="src/main/java",在这里就要是targetProject="项目名/src/main/java"。这里为什么要加上项目名,可能是因为eclipse插件是针对ide的,需要指定ide内是哪个项目。

2. maven
使用mybatis-generator的maven插件,在这里http://mybatis.org/generator/running/runningWithMaven.html有说明。先添加依赖
        
            mysql
            mysql-connector-java
            5.1.24
       
       
            org.mybatis.generator
            mybatis-generator-core
            1.3.2
       
       
            org.mybatis
            mybatis
            3.2.3
       
plugins里面添加
  org.mybatis.generator
  mybatis-generator-maven-plugin
  1.3.2
 
     
          mysql
          mysql-connector-java
          5.1.24
     
 
 
      ${basedir}/src/main/resources/config/generatorConfig.xml
      true
 
 
     
          Generate MyBatis Artifacts
         
              generate
         
         
     
 
里面注意在execution里面的configuration配置是注释掉的,网上好多例子都是这样写的,但我测试时写在这里是不生效的,而直接放在plugin内是可以的。
generatorConfig.xml的例子如下:
   
       
    
         
  
          
             
             
       
        
       
       
           
       
        
       
           
           
       
        
       
           
       
        
       
           
       
        
       
           
       
   
然后使用mvn mybatis-generator:generate运行成功执行。或者可以指定参数运行mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate。
详细参数见官方文档Parameter Reference那段。

3. 直接运行jar
为了简单起见,我把jar文件跟生成配置文件拷贝到一起mybatis-generator-core-1.3.2.jar和generatorConfig.xml,这里的xml文件要加上jdbs驱动的路径,在内部加上
java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite 
这样也可正常生成。
这里有段使用生成代码的小例子,需要mybatis的配置文件MapperConfig.xml
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
     
       
           
           
                 
                 
                 
                 
           
       
   
   
       
   
这里的mapper内的属性,netbeans会自动提示resources,应该是resource。坑爹的是,这里写s结尾的,报错却说mapper应该配置属性resources,然后删除s配置resource才不会报错。在下载的mybatis-generator-config_1_0.dtd文件可以看到正确的定义。然后java调用:
Reader reader = Resources.getResourceAsReader("config/MapperConfig.xml");
        SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);
        SqlSession sqlSession = sqlMapper.openSession();
        
        UsersExample example = new UsersExample();
        example.createCriteria().andPasswordIsNotNull();
        try {
            UsersMapper mapper = sqlSession.getMapper(UsersMapper.class);
            List users = mapper.selectByExample(example);
            for (Users u : users)  
                System.out.println(u.getUsername() + " -- " + u.getPassword()); 
        } finally {
            sqlSession.close();
        }

4. 自行编写代码
官方有说明http://mybatis.org/generator/running/runningWithJava.html
直接上代码
...
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
...
        List warnings = new ArrayList();
        final boolean overwrite = true;
        File configFile = new File("src/main/resources/config/generatorConfig.xml");
        //System.out.println("config fiel is in : " + configFile.getAbsoluteFile());
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration configuration = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator mybatisGenerator = new MyBatisGenerator(configuration, callback, warnings);
        mybatisGenerator.generate(null);

spring集成mybatis等,以后再补充吧:
http://www.cnblogs.com/huanmieuroshui/archive/2012/12/18/2822754.html
http://www.cnblogs.com/zemliu/archive/2013/08/07/3242966.html

你可能感兴趣的:(mybatis)