栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

`MyBatis`的逆向工程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

`MyBatis`的逆向工程

MyBatis的逆向工程

概念:

1.正向工程:先创建java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程的

2.逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成如下资源:

  • Java实体类
  • Mapper接口
  • Mapper映射文件

使用步骤:

1.导入依赖Jar和插件

    
        
            org.mybatis
            mybatis
            3.5.7
        
            
            
                org.mybatis
                mybatis
                3.5.7
            
            
            
                junit
                junit
                4.12
                test
            
            
            
                mysql
                mysql-connector-java
                5.1.3
            
    
    
    
        
        
            
            
                org.mybatis.generator
                mybatis-generator-maven-plugin
                1.3.0
                
                
                    
                    
                        org.mybatis.generator
                        mybatis-generator-core
                        1.3.2
                    
                    
                    
                        com.mchange
                        c3p0
                        0.9.2
                    
                    
                    
                        log4j
                        log4j
                        1.2.12
                    
                    
                    
                    
                        mysql
                        mysql-connector-java
                        5.1.8
                    
                
            
        
    
2.创建MyBatis核心配置文件

主要创建的是:

mybatis-config的核心配置文件和jdbc.properties及添加log4j.xml

3.创建逆向工程的配置文件

文件名必须是:generatorConfig.xml

注意相关的配置




    
    
        
        
        
        
        
        
            
        
            
        
        
        
            
        
        
        
            
        
        
        
        
        
4.打开maven找到对应的项目,再找到对应的mybatis-generatorgenerate插件

双击就可以

运行后结果:

重点注意的是:选择性添加和修改,当传入的参数为null时,选择性添加和修改,则不对该字段进行添加或修改,如果不是选择性添加和修改,如果当传入的参数为null时,该是会被添加为null或修改为null 的

选择性条件使用案例:【重点】

  EmpExample empExample = new EmpExample();
        EmpExample.Criteria criteria = empExample.createCriteria().andEmpNameEqualTo("大理").andAgeEqualTo(23);
逆工程在开发中使用是 MyBatis3: 生成带条件的CRUD(奢华尊享版)

方法:

逆工程使用的是QBC风格查询
public class BQCTest {
    // BQC删除功能
    @Test
    public void delete(){
        SqlSession sqlSession = SqlSessionUtils.sqlSession;
        EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
        // 根据ID删除用户信息
        int i = mapper.deleteByPrimaryKey(21);
        System.out.println(i);
        // 根据条件进行删除
        EmpExample example = new EmpExample();
        EmpExample.Criteria criteria = example.createCriteria().andEmpNameLike("%a%");
        int result = mapper.deleteByExample(example);
        System.out.println(result);
    }

    @Test
    public void QBCInsert(){
        SqlSession sqlSession = SqlSessionUtils.getSqlSession();
        EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
        // 普通插入
        int result = mapper.insert(new Emp(null,"大理",23,"男","123qq.com",null));
        System.out.println(result);
        // 选择性插入:
        int result2 = mapper.insertSelective(new Emp(null,"大理",23,"男","123qq.com",null));
        System.out.println(result2);
    }

    @Test
    public void QBCSelect(){
        SqlSession sqlSession = SqlSessionUtils.getSqlSession();
        EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
        // 查询所有数据
        List emps = mapper.selectByExample(null);
        emps.forEach(emp -> System.out.println(emp));

        // 根据条件查询
        EmpExample empExample = new EmpExample();
        EmpExample.Criteria criteria = empExample.createCriteria().andEmpNameEqualTo("大理").andAgeEqualTo(23);
        List empList = mapper.selectByExample(empExample);
        empList.forEach(emp -> System.out.println(emp));

        // 根据ID查询
        Emp emp = mapper.selectByPrimaryKey(1);
        System.out.println(emp);
    }

    @Test
    public void BQCUpdate(){
        SqlSession sqlSession = SqlSessionUtils.getSqlSession();
        EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
        //根据条件修改
        EmpExample empExample = new EmpExample();
        EmpExample.Criteria criteria = empExample.createCriteria().andEmpNameEqualTo("大理").
                andAgeEqualTo(23).andDidEqualTo(2);

        int result = mapper.updateByExampleSelective(new Emp(25,"大理",23,"男","123qq.com",null),empExample);
        System.out.println(result);
    }
}

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号