36MyBatis -逆向工程

简介: 36MyBatis -逆向工程

MyBatis逆向工程

使用官方网站的Mapper自动生成工具mybatis-generator-core-1.3.2来生成pojo类和Mapper映射文件

1.导入逆向工程

2.导入逆向工程到eclipse

如下图方式进行导入:

3.修改配置文件

在generatorConfig.xml中配置Mapper生成的详细信息,如下图:

注意修改以下几点:

  1. 修改要生成的数据库表
  2. pojo文件所在包路径
  3. Mapper所在的包路径

配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
  <context id="testTables" targetRuntime="MyBatis3">
    <commentGenerator>
      <!-- 是否去除自动生成的注释 true:是 : false:否 -->
      <property name="suppressAllComments" value="true" />
    </commentGenerator>
    <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"
      connectionURL="jdbc:mysql://localhost:3306/mybatis" userId="root" password="root">
    </jdbcConnection>
    <!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver" connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg" 
      userId="yycg" password="yycg"> </jdbcConnection> -->
    <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 
      和 NUMERIC 类型解析为java.math.BigDecimal -->
    <javaTypeResolver>
      <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>
    <!-- targetProject:生成PO类的位置 -->
    <javaModelGenerator targetPackage="cn.itcast.ssm.po"
      targetProject=".\src">
      <!-- enableSubPackages:是否让schema作为包的后缀 -->
      <property name="enableSubPackages" value="false" />
      <!-- 从数据库返回的值被清理前后的空格 -->
      <property name="trimStrings" value="true" />
    </javaModelGenerator>
    <!-- targetProject:mapper映射文件生成的位置 -->
    <sqlMapGenerator targetPackage="cn.itcast.ssm.mapper"
      targetProject=".\src">
      <!-- enableSubPackages:是否让schema作为包的后缀 -->
      <property name="enableSubPackages" value="false" />
    </sqlMapGenerator>
    <!-- targetPackage:mapper接口生成的位置 -->
    <javaClientGenerator type="XMLMAPPER"
      targetPackage="cn.itcast.ssm.mapper" targetProject=".\src">
      <!-- enableSubPackages:是否让schema作为包的后缀 -->
      <property name="enableSubPackages" value="false" />
    </javaClientGenerator>
    <!-- 指定数据库表 -->
    <table schema="" tableName="user"></table>
    <table schema="" tableName="order"></table>
  </context>
</generatorConfiguration>

4.生成逆向工程代码

找到下图所示的java文件,执行工程main主函数,

刷新工程,发现代码生成,如下图:

4.测试逆向工程代码

  1. 复制生成的代码到mybatis-spring工程,如下图

  2. 修改spring配置文件
    在applicationContext.xml修改
<!-- Mapper代理的方式开发,扫描包方式配置代理 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <!-- 配置Mapper接口,如果需要加载多个包,直接写进来,中间用,分隔 -->
  <!-- <property name="basePackage" value="cn.itcast.mybatis.mapper" /> -->
  <property name="basePackage" value="cn.itcast.ssm.mapper" />
</bean>
  1. 编写测试方法:
public class UserMapperTest {
  private ApplicationContext context;
  @Before
  public void setUp() throws Exception {
    this.context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
  }
  @Test
  public void testInsert() {
    // 获取Mapper
    UserMapper userMapper = this.context.getBean(UserMapper.class);
    User user = new User();
    user.setUsername("曹操");
    user.setSex("1");
    user.setBirthday(new Date());
    user.setAddress("三国");
    userMapper.insert(user);
  }
  @Test
  public void testSelectByExample() {
    // 获取Mapper
    UserMapper userMapper = this.context.getBean(UserMapper.class);
    // 创建User对象扩展类,用户设置查询条件
    UserExample example = new UserExample();
    example.createCriteria().andUsernameLike("%张%");
    // 查询数据
    List<User> list = userMapper.selectByExample(example);
    System.out.println(list.size());
  }
  @Test
  public void testSelectByPrimaryKey() {
    // 获取Mapper
    UserMapper userMapper = this.context.getBean(UserMapper.class);
    User user = userMapper.selectByPrimaryKey(1);
    System.out.println(user);
  }
}

注意

  1. 逆向工程生成的代码只能做单表查询
  2. 不能在生成的代码上进行扩展,因为如果数据库变更,需要重新使用逆向工程生成代码,原来编写的代码就被覆盖了。
  3. 一张表会生成4个文件
目录
相关文章
|
XML Java 数据库连接
mybatis-plus逆向工程详解
mybatis-plus逆向工程详解
580 0
|
XML Java 数据库连接
Mybatis使用generator逆向工程生成器生成entity、mapper、.xml模版类
今天将表建好了,但是一个一个的建实体类、Mapper接口、Mapper.xml文件就十分的麻烦,所以我就想到了MyBatis逆向,今天就操作一把!这里我们采用maven来进行操作。
610 0
|
7月前
|
XML Java 数据库连接
十一、MyBatis的逆向工程
十一、MyBatis的逆向工程
174 6
十一、MyBatis的逆向工程
|
Java 数据库连接 数据库
Mybatis逆向工程笔记小结
Mybatis逆向工程笔记小结
|
10月前
|
SQL 缓存 Java
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
本文详细介绍了MyBatis的各种常见用法MyBatis多级缓存、逆向工程、分页插件 包括获取参数值和结果的各种情况、自定义映射resultMap、动态SQL
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
|
10月前
|
Java 数据库连接 数据库
spring和Mybatis的逆向工程
通过本文的介绍,我们了解了如何使用Spring和MyBatis进行逆向工程,包括环境配置、MyBatis Generator配置、Spring和MyBatis整合以及业务逻辑的编写。逆向工程极大地提高了开发效率,减少了重复劳动,保证了代码的一致性和可维护性。希望这篇文章能帮助你在项目中高效地使用Spring和MyBatis。
211 1
|
11月前
|
Java 数据库连接 Maven
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和MyBatis Generator,使用逆向工程来自动生成Java代码,包括实体类、Mapper文件和Example文件,以提高开发效率。
408 2
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
|
XML Java 数据库连接
优雅地使用Mybatis逆向工程生成类
优雅地使用Mybatis逆向工程生成类
137 1
|
XML Java 数据库连接
Mybatis逆向工程的2种方法,一键高效快速生成Pojo、Mapper、XML,摆脱大量重复开发
【5月更文挑战第10天】Mybatis逆向工程的2种方法,一键高效快速生成Pojo、Mapper、XML,摆脱大量重复开发
191 6
|
SQL 缓存 Java
Java框架之MyBatis 07-动态SQL-缓存机制-逆向工程-分页插件
Java框架之MyBatis 07-动态SQL-缓存机制-逆向工程-分页插件