[springboot 开发单体web shop] 2. Mybatis Generator 生成common mapper (2)

我们可以看到一行配置内容:<properties resource="generator/config.properties"/>,这里是为了将我们的数据库连接、账号等信息外置,配置内容如下:

jdbc.driverClass = com.mysql.cj.jdbc.Driver jdbc.url = jdbc:mysql://localhost:3306/expensiveshop?characterEncoding=UTF-8&useSSL\ =false&useUnicode=true&serverTimezone=UTC jdbc.user = root jdbc.password = 12345678

可以看到这里设置的内容就是下属代码中用到的。

... <jdbcConnection driverClass="${jdbc.driverClass}" connectionURL="${jdbc.url}" userId="${jdbc.user}" password="${jdbc.password}"> </jdbcConnection> ...

配置信息大家可以参考:传送门

使用maven测试生成
执行以下命令:

mybatis-generator-tool>mvn mybatis-generator:generate [INFO] Scanning for projects... [INFO] [INFO] ---------------< com.life-runner:mybatis-generator-tool >--------------- [INFO] Building mybatis-generator-tool 1.0-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- mybatis-generator-maven-plugin:1.3.6:generate (default-cli) @ mybatis-generator-tool --- [INFO] Connecting to the Database [INFO] Introspecting table carousel [INFO] Introspecting table category ... [INFO] Generating Record class for table carousel [INFO] Generating Mapper Interface for table carousel [INFO] Generating SQL Map for table carousel ... [INFO] Saving file CarouselMapper.xml ... [INFO] Saving file Carousel.java [INFO] Saving file Users.java ... [WARNING] Table configuration with catalog null, schema null, and table shop_users did not resolve to any tables [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.374 s [INFO] Finished at: 2019-11-05T15:40:07+08:00 [INFO] ------------------------------------------------------------------------

可以看到执行成功,虽然这里执行成功,但是当我们打开文件的时候会发现:

package com.liferunner.pojo; import java.util.Date; import javax.persistence.*; import lombok.Getter; import lombok.Setter; import lombok.ToString; @Getter @Setter @ToString @Table(name = "Carousel") public class Carousel { /** * ����id �û�id */ @Id private String id; /** * �û��� �û��� */ private String imageUrl; ... }

这里出现了乱码问题,这又是怎么回事呢?
没关系,let's bing... 传送门,可以看到有265000条结果,那就说明我们的问题已经有太多的人遇到了,随便点开一个:

bug1


可以看到红框里面的内容我们缺失了,在\expensive-shop\mybatis-generator-tool\src\main\resources\generator\generatorConfig.xml中添加上 <property value="UTF-8"/>,重新执行生成命令,可以看到我们的乱码就没有了。

@Getter @Setter @ToString @Table(name = "`carousel`") public class Carousel { /** * 主键 */ @Id @Column(name = "`id`") private String id; /** * 图片 图片地址 */ @Column(name = "`image_url`") private String imageUrl; ...

Tips:
在这一环节先剧透一个bug,否则我担心在后续大家遇到的时候,因为它确实是和Common Mapper生成相关的。

我们点开生成的Users.java,可以看到如下所示:

@Getter @Setter @ToString @Table(name = "users") public class Users { @Column(name = "USER") private String user; @Column(name = "CURRENT_CONNECTIONS") private Long currentConnections; @Column(name = "TOTAL_CONNECTIONS") private Long totalConnections; }

可是我们的Users表不是这样的呀,这是怎么回事???
让我们分析分析:
1.既然没有用到我们自己的Users表,但是又确实通过生成器生成了,那么很明显肯定是Mysql数据库中表,这是肯定的。
2.那么问题就来了,它从哪里冒出来的?找它,盘它。
3.到底是哪个数据库中的呢?sys?information_schema?performance_schema?
4.挨个查询,果然:

bug2


可以看到,在performance_schema数据库中有一个users表,那么到底是不是我们生成出来的呢?执行SHOW CREATE TABLE users, 结果如上图,字段和生成出来的是一致的!
5.抓住它了,怎么盘它???

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpydwj.html