逆向工程MBG(MyBatis Generator) 您所在的位置:网站首页 sql查询生成器 逆向工程MBG(MyBatis Generator)

逆向工程MBG(MyBatis Generator)

2023-04-20 13:02| 来源: 网络整理| 查看: 265

概述

MyBatis Generator (MBG) 是 MyBatis MyBatis的代码生成器。它将为所有版本的 MyBatis 生成代码。它将内省一个数据库表(或许多表)并生成可用于访问表的工件。这减少了设置对象和配置文件以与数据库表交互的初始麻烦。MBG 寻求对大部分简单的 CRUD(创建、检索、更新、删除)数据库操作产生重大影响。您仍然需要为连接查询或存储过程手动编写 SQL 和对象代码。

官方文档地址 : 链接: http://www.mybatis.org/generator/

官方工程地址:

链接: https://github.com/mybatis/generator/releases

逆向工程与正向工程的区别

正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表。 Hibernate是支持正向工 程的。逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成如下资源:Java实体类Mapper接口Mapper映射文件

创建逆向工程的步骤

①添加依赖和插件

org.mybatis mybatis 3.5.7 junit junit 4.12 test log4j log4j 1.2.17 mysql mysql-connector-java 8.0.32 com.github.pagehelper pagehelper 5.2.0 org.mybatis.generator mybatis-generator-maven-plugin 1.3.0 org.mybatis.generator mybatis-generator-core 1.3.2 mysql mysql-connector-java 8.0.32

②创建MyBatis的核心配置文件,即 mybatis-config.xml

③创建逆向工程的配置文件(文件名必须是:generatorConfig.xml)

逆向工程MBG(MyBatis Generator)_java

其中

driverClass:为注册驱动,如果mysql是8版本后的,用com.mysql.cj.jdbc.Driver,如果是5版本的,去掉cj,即com.mysql.jdbc.Driver

connectionURL:连接数据库jdbc:mysql://ip地址:端口号/数据库,如果连接的是本机ip,且端口号为3306,localhost:3306可以不写,serverTimezone=UTC是设置时区,如果出现The server time zone value ‘?й???’ is unrecognized错误。就在后面加上serverTimezone=UTC

userId:数据库账号

password:数据库密码

逆向工程MBG(MyBatis Generator)_mysql_02

其中

targetPackage:值为设置的包名,包名可以是不存在的,会自动创建

targetProject:值为项目目录名,且必须是已存在的,否则会报错,targetProject的值的起始目录为当前子模块目录

property中

name的值enableSubPackages为是否允许通过tableName即表生成子包,即如果后面的value的值为true,如果包名为com.zrb.pojo,如果table中指定tableName对应的domainObjectName为Emp,那么实体类文件最终会生成在com.zrb.Emp目录(其中:domainObjectName属性指定生成出来的实体类的类名)trimStrings后value的值为true,为Setter方法对字符串类型进行一次trim操作,即对表的字段名进行去除两边的空格操作

④执行MBG插件的generate目标

点击idea右上角的maven选项 点击具有与MyBatis Generator有关插件的模块中的Plugins

逆向工程MBG(MyBatis Generator)_mysql_03

然后双击mybatis-generator 中的mybatis-generator:generate

逆向工程MBG(MyBatis Generator)_java_04

MyBatis逆向工程之QBC查询风格

Query By Criteria:根据条件查询,即条件都是定义好的,只需要调用相对应的方法,就可以生成标准的条件

相关的代码使用

@Test public void testMBG(){ try { InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); SqlSession sqlSession = sqlSessionFactory.openSession(true); EmpMapper mapper = sqlSession.getMapper(EmpMapper.class); //查询所有数据 /*List list = mapper.selectByExample(null); list.forEach(emp -> System.out.println(emp));*/ //根据条件查询 /*EmpExample example = new EmpExample(); example.createCriteria().andEmpNameEqualTo("张 三").andAgeGreaterThanOrEqualTo(20); example.or().andDidIsNotNull(); List list = mapper.selectByExample(example); list.forEach(emp -> System.out.println(emp));*/ mapper.updateByPrimaryKeySelective(new Emp(1,"admin",22,null,"[email protected]",3)); } catch (IOException e) { e.printStackTrace(); } }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有