mysql数据库还原与Mybatis的逆向工程

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: mysql数据库还原与Mybatis的逆向工程

1 mysql数据库还原

1.1 新建数据库

1.2 运行sql文件

1.3 成功

1.4 刷新查看

总结:如果看到表,此时数据库成功还原!

2 Mybatis的逆向工程

2.1 MyBatis Generator 介绍

2.1.1 官网地址

http://www.mybatis.org/generator/

2.1.2 下载地址

http://central.maven.org/maven2/org/mybatis/generator/mybatis-generator-core/

2.1.3Mybatis Generator 介绍

MyBatis GeneratorMBG)是 MyBatis iBATIS 的代码生成工具。它可以为所有 MyBatis 版本以及 iBATIS 版本 2.2.0 及以上自动生成代码

它会逆向查找一张或多张数据库表的信息,生成操作数据库表所需要的组件。基本上省去了自已手动创建实体类以及配置文件的麻烦。


MBG 只是对单表的增删改查(CRUD (Create, Retrieve, Update, Delete))生成了大部分的代码,对于像连接查询或者存储过程之类的,还是需要手动编写 sql 和实体类的。MBG 会生成对应于表结构的 java POJO 类。包括一个支持动态查询、更新和删除的类。


MBG 为单表的增删改查生成了配置文件和映射文件。生成的 SQL 语句包括:


insert


update by primary key


update by example (使用动态 where 子句)


delete by primary key


delete by example (使用动态 where 子句)


select by primary key


select by example (使用动态 where 子句)


count by example


注:根据表结构的不同,这些语句会有一些变化,比如有的表没有主键,则MBG 不会生成根据主键更新表的记录的方法。

3 Mybatis Generator 的使用

3.1 建立 MybatisGenerator 项目

建立 Java 项目即可

3.2 添加 jar 包支持


3.3 建立配置文件

<?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://192.168.30.10:3306/ego" userId="root"
      password="root">
    </jdbcConnection>
    <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 
      NUMERIC 类型解析为java.math.BigDecimal -->
    <javaTypeResolver>
      <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>
    <!-- targetProject:生成POJO类的位置 -->
    <javaModelGenerator targetPackage="com.zgl.ego.rpc.pojo"
      targetProject=".\src">
      <!-- enableSubPackages:是否让schema作为包的后缀 -->
      <property name="enableSubPackages" value="false" />
      <!-- 从数据库返回的值被清理前后的空格 -->
      <property name="trimStrings" value="true" />
    </javaModelGenerator>
        <!-- targetProject:mapper映射文件生成的位置 -->
    <sqlMapGenerator targetPackage="com.zgl.ego.rpc.mapper" 
      targetProject=".\src">
      <!-- enableSubPackages:是否让schema作为包的后缀 -->
      <property name="enableSubPackages" value="false" />
    </sqlMapGenerator>
    <!-- targetPackage:mapper接口生成的位置 -->
    <javaClientGenerator type="XMLMAPPER"
      targetPackage="com.zgl.ego.rpc.mapper" 
      targetProject=".\src">
      <!-- enableSubPackages:是否让schema作为包的后缀 -->
      <property name="enableSubPackages" value="false" />
    </javaClientGenerator>
    <!-- 指定数据库表 -->
    <table schema="" tableName="tb_content"></table>
    <table schema="" tableName="tb_content_category"></table>
    <table schema="" tableName="tb_item"></table>
    <table schema="" tableName="tb_item_cat"></table>
    <table schema="" tableName="tb_item_desc"></table>
    <table schema="" tableName="tb_item_param"></table>
    <table schema="" tableName="tb_item_param_item"></table>
    <table schema="" tableName="tb_order"></table>
    <table schema="" tableName="tb_order_item"></table>
    <table schema="" tableName="tb_order_shipping"></table>
    <table schema="" tableName="tb_user"></table>
  </context>
</generatorConfiguration>

3.4 建立项目启动类

package com.zgl.mybatis.test;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
public class MybatisGeneratorTest {
  public void generator() throws Exception {
    List<String>warnings = new ArrayList<String>();
    boolean overwrite = true;
    // 指定 逆向工程配置文件
    File configFile = new File(System.getProperty("user.dir")+"/src/config.xml");
    ConfigurationParser cp = new ConfigurationParser(warnings);
    Configuration config = cp.parseConfiguration(configFile);
    DefaultShellCallback callback = new DefaultShellCallback(overwrite);
    MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
    myBatisGenerator.generate(null);
  }
  public static void main(String[] args) throws Exception {
    try {
      MybatisGeneratorTest generatorSqlmap = new MybatisGeneratorTest();
      generatorSqlmap.generator();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

3.5 测试成功:

mapper:

pojo:

注意:如果想再次生成代码,必须先将已经生成的代码删除,否则会在原文件中追加。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
22 1
|
2月前
Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
18 1
|
2月前
Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
24 2
|
2月前
|
Java 关系型数据库 MySQL
MySQL中mybatis的大于等于小于等于的写法
MySQL中mybatis的大于等于小于等于的写法
17 3
|
19天前
|
运维 监控 安全
云HIS医疗管理系统源码——技术栈【SpringBoot+Angular+MySQL+MyBatis】
云HIS系统采用主流成熟技术,软件结构简洁、代码规范易阅读,SaaS应用,全浏览器访问前后端分离,多服务协同,服务可拆分,功能易扩展;支持多样化灵活配置,提取大量公共参数,无需修改代码即可满足不同客户需求;服务组织合理,功能高内聚,服务间通信简练。
32 4
|
2月前
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
18 1
|
2天前
|
SQL druid Java
java mysql druid mybatis-plus里使用多表删除出错的一种处理方式
java mysql druid mybatis-plus里使用多表删除出错的一种处理方式
|
1月前
|
存储 关系型数据库 MySQL
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
|
2月前
|
Java 数据库连接 mybatis
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
20 1
|
2月前
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
17 1