1、pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxxx</groupId>
<artifactId>shop-generator</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 繼承 shop-parent 依賴 -->
<parent>
<groupId>com.wll</groupId>
<artifactId>shop</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<!-- mybatis 依賴(讓生成的 pojo 和 mapper 不缺少注解相關(guān)類型) -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<!-- mybatis generator core 依賴 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.7</version>
</dependency>
</dependencies>
<!-- build 標(biāo)簽常用于添加插件及編譯配置 -->
<build>
<plugins>
<!-- mybatis generator plugin 依賴 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
<configuration>
<verbose>true</verbose>
<!-- 是否覆蓋 -->
<overwrite>true</overwrite>
<!-- 自動(dòng)生成的配置 -->
<configurationFile>src/main/resources/mybatis-generator.xml</configurationFile>
</configuration>
<dependencies>
<!-- mysql 數(shù)據(jù)庫(kù)依賴 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<!-- mybatis generator core 依賴 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.7</version>
</dependency>
<!-- 將項(xiàng)目打包至本地倉(cāng)庫(kù)并添加依賴 -->
<dependency>
<groupId>com.xxxx</groupId>
<artifactId>shop-generator</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
2、mybatis-generator.xml
<?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="MysqlTables" targetRuntime="MyBatis3">
<!-- 生成的Java文件的編碼 -->
<property name="javaFileEncoding" value="UTF-8"/>
<!-- 增加Models ToStirng方法 -->
<plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>
<!-- 增加Models Serializable實(shí)現(xiàn) -->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
<!-- 分頁(yè)插件 -->
<!-- 在example類中增 page 屬性,并在mapper.xml的查詢中加入page !=null 時(shí)的查詢 -->
<!-- <plugin type="org.mybatis.generator.plugins.MySQLPagerPlugin" /> -->
<!-- 在example類中增 offset和limit屬性,并在mapper.xml的查詢中加入limit ${offset} , ${limit} 提供在offset和limit>0時(shí)的查詢 -->
<!-- <plugin type="org.mybatis.generator.plugins.MySQLPaginationPlugin"></plugin> -->
<!-- 是否去除自動(dòng)生成的注釋 true:是 : false:否 -->
<!-- type指定生成注釋使用的對(duì)象 -->
<commentGenerator type="com.xxxx.generator.ShopCommentGenerator">
<property name="suppressAllComments" value="false"/>
</commentGenerator>
<!-- mysql數(shù)據(jù)庫(kù)連接配置 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/shop?"
userId="root" password="abc123">
</jdbcConnection>
<!--
是否忽略BigDecimals 非必填項(xiàng)
自動(dòng)生成Java對(duì)象的時(shí)候,會(huì)根據(jù)number類型的長(zhǎng)度不同生成不同的數(shù)據(jù)類型
number長(zhǎng)度 Java類型
1~4 Short
5~9 Integer
10~18 Long
18+ BigDecimal
-->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 以下內(nèi)容,需要改動(dòng) -->
<!-- java類生成的位置 -->
<javaModelGenerator targetPackage="com.xxxx.generator.pojo" targetProject="src/main/java">
<!-- 在targetPackage的基礎(chǔ)上,根據(jù)數(shù)據(jù)庫(kù)的schema再生成一層package,最終生成的類放在這個(gè)package下,默認(rèn)為false -->
<property name="enableSubPackages" value="true"/>
<!-- 從數(shù)據(jù)庫(kù)返回的值去除前后空格 -->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- *Mapper.xml配置文件生成的位置 -->
<sqlMapGenerator targetPackage="com.xxxx.generator.mapper" targetProject="src/main/java">
<!-- 是否讓schema作為包后綴 -->
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- java mapper接口生成的位置(interface) -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.xxxx.generator.mapper" targetProject="src/main/java">
<!-- 是否讓schema作為包后綴 -->
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--
指定數(shù)據(jù)庫(kù)表
tableName數(shù)據(jù)庫(kù)表名
domainObjectName生成的實(shí)體類名
是否需要mapper配置文件加入sql的where條件查詢,需要將enableCountByExample等設(shè)為true,會(huì)生成一個(gè)對(duì)應(yīng)domainObjectName的Example類
-->
<table tableName="t_goods_category" domainObjectName="GoodsCategory"
enableCountByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" enableUpdateByExample="false">
<!-- 用于insert時(shí),返回主鍵的編號(hào) -->
<generatedKey column="order_id" sqlStatement="MySql" identity="true"/>
</table>
</context>
</generatorConfiguration>
Example類
這里可以生成一個(gè)example類
什么是example類?
Mybatis-Plus的代碼生成器可以自動(dòng)生成一些基本的代碼文件,其中包括了Example(查詢條件構(gòu)造器)類。如下是Example類的大致解釋和用法:
Example類是在Mybatis-Plus中用于構(gòu)建復(fù)雜條件查詢的常用工具類,它是基于Wrapper(Lambda表達(dá)式構(gòu)造器)來(lái)構(gòu)造查詢條件的。它可以幫助開(kāi)發(fā)人員通過(guò)有條件的SQL查詢獲取到想要的數(shù)據(jù)結(jié)果。
Example類通常是由以下三個(gè)組成部分構(gòu)成:
- QueryWrapper: 表示要查詢哪個(gè)表,以及要查詢哪些字段
- Criteria: 指定查詢條件,包括大于、小于、等于等
- OrderBy: 指定要排序的字段以及排序方式
在使用Example類時(shí),可以通過(guò)鏈?zhǔn)秸{(diào)用來(lái)構(gòu)建查詢條件,以達(dá)到更加靈活、簡(jiǎn)便的查詢效果。
Example<User> example = new Example<>();
example.createCriteria().andEqualTo("name", "John").andBetween("age", 20, 30);
List<User> users = userMapper.selectByExample(example);
Example類是Mybatis-Plus中用于構(gòu)建復(fù)雜條件查詢的工具類。
它的構(gòu)造規(guī)則如下:1. Example對(duì)象必須要指定泛型類型,以表明要查詢的實(shí)體類。2. Example對(duì)象支持鏈?zhǔn)秸{(diào)用,可以使用Example.xxx().xxx()的方式來(lái)對(duì)查詢條件進(jìn)行設(shè)置。3. Example類的構(gòu)造方法可以帶有一個(gè)參數(shù),即泛型類型。例如:Example example = new Example(User.class);
Example類中常用的方法:
- createCriteria():該方法通過(guò)調(diào)用Criteria類的方法來(lái)構(gòu)建查詢條件。返回值為Criteria類型的對(duì)象,可以通過(guò)該對(duì)象來(lái)添加查詢條件。
- andXXX():該類方法用于添加查詢條件,在這里XXX可以是大于、小于、等于等。例如:andEqualTo()表示等于,andBetween()表示在兩個(gè)值之間。
- orderBy():該方法用于設(shè)置排序方式。例如:orderBy(“id”).asc()表示按id升序排序,orderBy(“id”).desc()表示按id降序排序。
- setDistinct():該方法用于設(shè)置查詢結(jié)果是否去重。默認(rèn)情況下,查詢結(jié)果不去重。
- or():該方法用于設(shè)置OR查詢條件。例如:or().andEqualTo(“name”, “John”).andBetween(“age”, 20, 30)表示根據(jù)name為"John"或者age在20到30之間的條件進(jìn)行查詢。
- selectProperties():該方法用于設(shè)置查詢結(jié)果中的字段。例如:selectProperties(“id”, “name”)表示只查詢id和name兩個(gè)字段的數(shù)據(jù)。
- isDistinct():該方法用于判斷查詢結(jié)果是否去重。
- getOrderByClause():該方法用于獲取查詢結(jié)果的排序方式。需要注意的是,Example類可以和Wrapper類(Lambda表達(dá)式構(gòu)造器)配合使用來(lái)構(gòu)建更加復(fù)雜的查詢條件。在使用時(shí),可以根據(jù)實(shí)際需求進(jìn)行靈活選擇。
Criteria類是Example類的內(nèi)部類,作為Example類的一部分用于構(gòu)建查詢條件。它提供了豐富的方法,用于設(shè)置查詢條件
Mybatis代碼生成器的問(wèn)題
生成的類型不一定是我們想要的。
如將tinyint類型生成了Boolean,但實(shí)際上我們要存的是byte
tinyint 類型在 MySQL 中表示一個(gè) 8 位的整數(shù)類型,范圍為 -128 到 127。在 Java 中,可以將 tinyint 數(shù)據(jù)類型與 byte 或 Byte 類型對(duì)應(yīng)。
如果數(shù)據(jù)庫(kù)中的 tinyint 類型是用于表示布爾值(例如 0 表示 false,1 表示 true),則可以將其與 boolean 或 Boolean 類型對(duì)應(yīng)。由于 Java 中的 boolean 類型只有 true 和 false 兩個(gè)取值,因此需要在程序中對(duì) tinyint 的值進(jìn)行轉(zhuǎn)換。通常情況下,將 0 視為 false,非 0 值視為 true。
數(shù)據(jù)庫(kù)和java對(duì)象類型對(duì)應(yīng)表文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-427216.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-427216.html
到了這里,關(guān)于Mybatis-plus 代碼生成器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!