Mybatis generator

news/2024/11/25 3:06:40/

文章目录

  • 使用
    • 引入依赖
    • 配置文件设置
    • 生成
      • 使用中出现的异常
    • Mybatis中javaType和jdbcType对应关系
    • int、bigint、smallint 和 tinyint是使用整数数据的精确数字数据类型。

使用

引入依赖

<!-- mysql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.18</version></dependency><!--Mybatis逆向工程--><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.7</version></dependency><!--mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.3</version></dependency>

配置文件设置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration><!--targetRuntime="MyBatis3Simple":生成简单版的CRUDMyBatis3:豪华版--><context id="DB2Tables" targetRuntime="MyBatis3"><!-- 是否去除自动生成的注释 true:是 : false:否 --><commentGenerator><!--  <property name="suppressAllComments" value="false" />--></commentGenerator><!-- jdbcConnection:指定如何连接到目标数据库 --><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/zycf?characterEncoding=utf8"userId="root"password="123456"></jdbcConnection><!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer;为 true时把JDBC DECIMAL和NUMERIC类型解析为java.math.BigDecimal --><javaTypeResolver ><property name="forceBigDecimals" value="false" /></javaTypeResolver><!-- javaModelGenerator:指定javaBean的生成策略targetPackage="test.model":目标包名targetProject="\MBGTestProject\src":目标工程--><!-- 生成Pojo包名和位置 --><javaModelGenerator targetPackage="com.lhh.entity"targetProject=".\src\main\java"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="true" /><!-- 清理前后的空格 --><property name="trimStrings" value="true" /></javaModelGenerator><!-- 生成Mapper映射XML文件位置 --><sqlMapGenerator targetPackage="resources.mapper"targetProject=".\src\main"><property name="enableSubPackages" value="true" /></sqlMapGenerator><!-- 生成Mapper接口文件位置 --><javaClientGenerator type="XMLMAPPER" targetPackage="com.lhh.dao"targetProject=".\src"><property name="enableSubPackages" value="true" /></javaClientGenerator><!-- 指定要逆向分析哪些表:根据表要创建javaBean(POJO) --><!-- tableName:要生成的表名domainObjectName:生成后的实例名enableCountByExample:Count语句中加入where条件查询,默认为true开启enableUpdateByExample:Update语句中加入where条件查询,默认为true开启enableDeleteByExample:Delete语句中加入where条件查询,默认为true开启enableSelectByExample:Select多条语句中加入where条件查询,默认为true开启selectByExampleQueryId:Select单个对象语句中加入where条件查询,默认为true开启--><table tableName="zycf_mediaoperate_weixin_release" domainObjectName="MediaRelease"enableCountByExample="true" enableUpdateByExample="true"enableDeleteByExample="true" enableSelectByExample="true"selectByExampleQueryId="true"><!--如果table里边不配置property,默认将所有字段逆向生成为类属性。 --><!-- <property name="" value=""/>--><!--如果有些字段并不想生成为类属性,可以用ignoreColumn标签:--><!--<ignoreColumn column="FRED" />//忽略字段--><!--还可以指定逆向生成时,字段到属性的转换对应关系--><!--<columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />//无论字段是什么类型,生成的类属性都是varchar。 --></table><table tableName="zycf_mediaoperate_weixin_article" domainObjectName="Article"></table></context>
</generatorConfiguration>

生成

启动方式:SpringBoot项目,此处直接用测试类来运行了

/*** @(#)generatorTest.java, 2019/11/24.* <p/>* Copyright 2019 Netease, Inc. All rights reserved.* NETEASE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.*/
package com.lhh;import org.junit.Test;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;
import org.springframework.boot.test.context.SpringBootTest;import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;/*** @author 吕厚厚(wb.lvhouhou @ mesg.corp.netease.com)*/@SpringBootTest
public class generatorTest {@Testpublic void generator(){List<String> warnings = new ArrayList<String>();boolean overwrite = true;//指向逆向工程配置文件try {File configFile = new File("generatorConfig.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);} catch (IOException e) {e.printStackTrace();} catch (XMLParserException e) {e.printStackTrace();} catch (InvalidConfigurationException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}}
}

使用中出现的异常

Exception in thread “main” java.io.FileNotFoundException: generatorConfig.xml (系统找不到指定的文件。)
解决:
在这里插入图片描述

Mybatis中javaType和jdbcType对应关系

JDBCTypeJavaType
CHARString
VARCHARString
LONGVARCHARString
NUMERICjava.math.BigDecimal
DECIMALjava.math.BigDecimal
BITboolean
BOOLEANboolean
TINYINTbyte
SMALLINTshort
INTEGERint
BIGINTlong
REALfloat
FLOATdouble
DOUBLEdouble
BINARYbyte[]
VARBINARYbyte[]
LONGVARBINARYbyte[]
DATEjava.sql.Date
TIMEjava.sql.Time
TIMESTAMPjava.sql.Timestamp
CLOBClob
BLOBBlob
ARRAYArray
DISTINCTmapping of underlying type
STRUCTStruct
REFRef

如:数据库字段为smallint时,逆向工程生成的Short类型
数据库表:
在这里插入图片描述
自动生成的实体类属性:
在这里插入图片描述

int、bigint、smallint 和 tinyint是使用整数数据的精确数字数据类型。

主要类型、范围、存储体如下:

1)bigint:从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(19位数字),存储 8 个字节。————有点儿像Java的long

2)int:从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647)(10位数字,±21亿) 的整型数据。存储 4 个字节。 ————有点儿像int

3)smallint:从 -2^15 (-32,768) 到 2^15 - 1 (32,767) (5位数字,65535)的整型数据,存储2 个字节。 ————有点儿像short

4)tinyint:从 0 到 255(256) 的整型数据,存储 1 字节。 ————有点儿像byte 如果“tinyInt 长度为Bit” 值为0或1 MySQL中 使用布尔类型的字段,就用 tinyint(1),true 为1 false 为0


http://www.ppmy.cn/news/97469.html

相关文章

【SQL】MySQL的安全管理

MySQL是一个开放源代码的关系型数据库管理系统&#xff0c;广泛应用于 Web 应用程序中。在多个用户访问同一个数据库的情况下&#xff0c;数据库管理员需要学习如何管理 MySQL 的安全性。本文将重点讨论 MySQL 的安全管理&#xff0c;包括用户管理、权限管理、安全设置等。 用…

JetBrains的C和C++集成开发环境CLion 2023版本在Win10系统的下载与安装配置教程

目录 前言一、CLion安装二、使用配置总结 前言 CLion是一款为C和C语言开发人员设计的集成开发环境&#xff08;IDE&#xff09;。它提供了丰富的功能和工具&#xff0c;可以帮助开发人员更高效地编写、调试和部署C和C应用程序。 CLion的主要特点&#xff1a; ——代码编辑器…

SpringBoot创建与运行

文章目录 一、SpringBoot是什么&#xff1f;二、SpringBoot项目创建IDEA创建SpringBoot项目网页版创建SpringBoot项目项目目录介绍输出Hello SpringBoot 一、SpringBoot是什么&#xff1f; 如果我们说Spring的诞生是为了简化Java程序开发的&#xff0c;那么SpringBoot的诞生是为…

jmeter压测报错:java.net.SocketException: Connection reset

需要调整负载机的注册表&#xff0c;然后重启负载机&#xff1a; [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] 需要调整的值&#xff1a; MaxUserPort&#xff1a;最大动态端口数&#xff08;Default 5000, Max 65534&#xff09; TcpTimedW…

python+vue新能源汽车在线租赁管理系统pycharm项目

开发语言&#xff1a;Python 框架&#xff1a;django/flask Python版本&#xff1a;python3.7.7 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat 开发软件&#xff1a;PyCharm 在当今高度发达的信息中&#xff0c;信息管理改革已成为一种更加广泛和全面的趋势。 “新…

要言不烦先行指标与滞后指标的12个要点

先行指标&#xff08;leading indicator)是在结果发生之前对结果具有预测作用的度量数据&#xff0c;又称为超前指标、预测性指标、先导指标、领先指标、行为指标、过程指标等。滞后指标(lagging indicator)是对最终结果的度量数据&#xff0c;反映的是既成事实&#xff0c;不可…

Docker容器 和 Kubernetes容器集群管理系统

一、快速了解Docker 1. 什么是Docker的定义 Docker 是一个开源的应用容器引擎&#xff0c;基于Go语言并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以…

xml学习

1. XML1. 概念2. 语法3. 解析XML&#xff1a; 1. 概念&#xff1a;Extensible Markup Language 可扩展标记语言* 可扩展&#xff1a;标签都是自定义的。 <user> <student> * 功能* 存储数据1. 配置文件2. 在网络中传输 * xml与html的区别1. xml标签都是自定义的&…