一个实用的工具-Mybatis generator

一个实用的工具-Mybatis generator

Mybatis generator:MyBatis的代码生成器,可以根据数据库的表生成model、mapper.xml、mapper接口和Example,通常情况下的单表查询不用再手写mapper。

下面我用一个例子来演示如何使用这个工具:

1.在pom文件中加入Mybatis generator的依赖

    
        org.mybatis.generator
        mybatis-generator-core
        1.3.3
    

2.在数据库中建立好相关的表
一个实用的工具-Mybatis generator_第1张图片
3.在项目resource下创建一个generatorConfig.xml配置文件
对其中的mapper生成的路径,dao层的路径,model的路径的定义





    
    
        
        
        
        
        
        
        
        
        
            
            
            
            
        
        
        
            
            
        
        
        
        
        
        
        
        
        
        

4.创建数据库配置文件generator.properties

jdbc.driverClass=com.mysql.cj.jdbc.Driver
jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
jdbc.userId=root
jdbc.password=lxy199795

5.创建Generator类,生成相关所需东西

public class Generator {
    public static void main(String[] args) throws Exception {
        //MBG 执行过程中的警告信息
        List warnings = new ArrayList();
        //当生成的代码重复时,覆盖原代码
        boolean overwrite = true;
        //读取我们的 MBG 配置文件
        InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(is);
        is.close();

        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        //创建 MBG
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        //执行生成代码
        myBatisGenerator.generate(null);
        //输出警告信息
        for (String warning : warnings) {
            System.out.println(warning);
        }
    }
}

6.创建CommentGenerator类,继承DefaultCommentGenerator类

public class CommentGenerator extends DefaultCommentGenerator {
}

7.然后运行Generator的main函数,你可以发现在之前定义的路径下已经有相应的mapper.xml函数和dao接口,和model类

一个实用的工具-Mybatis generator_第2张图片

综上:好好运用这个插件,可以减少很多的机械操作,可以把更多的时间放在项目架构的设计上。

你可能感兴趣的:(工具及中间件)