MyBatis逆向工程

面对简单而又朴素的增删改查,我们又不想写的时候,我们可以使用MyBatis逆向工程插件进行自动生成实体类、sql映射文件,可以根据我们的表逆向生成出这些,直接看怎么用:

1.在新建一个maven工程,在build标签添加MyBatis逆向工程插件,用于自动生成实体类、sql映射文件



    
    
        
        
            
            org.mybatis.generator
            mybatis-generator-maven-plugin
            1.4.1
            
            
                true
            
            
            
                
                
                    mysql
                    mysql-connector-java
                    8.0.27
                
            
        
        
            org.apache.maven.plugins
            maven-compiler-plugin
            
                8
                8
            
        
    

2.在resources目录下新建一个以generatorConfig命名的xml文件,必须是以generatorConfig命名,然后根据实际情况编写配置xml文件





    
    
    
    
    
        
        
      
        
            
            
            
            
        

        
        
        

        
        
            
            
            
            
        

        
        
        
            
            
        

        
        
        
            
        

        
        

这把值得注意的是targetRuntime有两个值: MyBatis3Simple:生成的是基础版,只有基本的增删改查。 MyBatis3:生成的是增强版,除了基本的增删改查之外还有复杂的添加增删改查。

3.打开maven可视化界面执行MyBatis逆向工程插件中的命令,即可自动生成相关的类和sql映射文件,这里演示一下idea的使用方法:

MyBatis逆向工程_第1张图片

双击以后,就会自动生成相关的类和sql映射文件,maven显示Build Success证明成功了!

4.最后引入mybatis、mysql驱动依赖,编写mybatis核心配置进行测试逆向工程生成的sql映射文件和类是否可用!

测试一下Mybatis逆向工程生成的基础版增删改查的效果,测试结果肯定是没问题的

/**
 * MyBatis-014-generator1生成的是基础版
 * 测试mybatis逆向工程生成的增删改查是否能用
 */
public class TestGenerator {
    public static void main(String[] args) {
        SqlSession sqlSession = SqlSessionUtil.openSqlSession();
        CarMapper carMapper = sqlSession.getMapper(CarMapper.class);
        List cars = carMapper.selectAll();
        cars.forEach(car -> System.out.println(car));

        Car car = carMapper.selectByPrimaryKey(1);
        System.out.println(car);
    }
}

我们再看一下Mybatis逆向工程生成的复杂的带条件的增删改查是怎么生成,只需要更改generatorConfig.xml文件,其他保持一致的设置即可。前面也提到了,需要更改哪个地方,如果没看懂,可以看看跟上面的generatorConfig.xml文件有啥区别





    
    
        
        

        
            
            
            
            
        

        
        
        

        
        
            
            
            
            
        

        
        
            
            
        

        
        
            
        

        
        

测试一下Mybatis逆向工程生成的带条件的增删改查的效果,测试结果肯定也是没问题的

/**
 * MyBatis-015-generator02生成的是增强版
 * 测试mybatis逆向工程生成的增删改查是否能用
 *
 */
public class TestGenerator02 {
    public static void main(String[] args) {
        SqlSession sqlSession = SqlSessionUtil.openSqlSession();
        CarMapper carMapper = sqlSession.getMapper(CarMapper.class);
        //查询所有,selectByExample是根据条件查询,如果条件是null就是查询所有
        List cars = carMapper.selectByExample(null);
        cars.forEach(car -> System.out.println(car));
        //查询一个
        Car car = carMapper.selectByPrimaryKey(1);
        System.out.println(car);
        System.out.println("===================================================================");
        //这种查询方式称为QBC风格:Query By Criteria 一种查询方式,比较面向对象,看不到sql语句
        //封装一个条件
        CarExample carExample = new CarExample();
        //调用createCriteria()创建条件
        carExample.createCriteria().andBrandEqualTo("丰田").andGuidePriceGreaterThan(BigDecimal.valueOf(20.0));
        //添加or
        carExample.or().andCarTypeEqualTo("燃油车");
        List cars1 = carMapper.selectByExample(carExample);
        cars1.forEach(car1 -> System.out.println(car1));
    }
}

总结:Mybatis逆向工程真好用!

你可能感兴趣的:(mybatis,java,mysql)