Eclipse Springboot项目 自动生成实体类与mapper文件

使用自动生成需要,首先集成mybatis,完成连接数据库配置,并且安装Mybatis Generator插件

1、先来安装 Mybatis Generator 

请参考文章  链接:https://blog.csdn.net/qq_39688441/article/details/123870572

2、修改pom.xml

添加数据库和mybatis 依赖

    <!--数据库驱动包-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    
    <!--springBoot整合Mybatis依赖-->
    <dependency>
	    <groupId>org.mybatis.spring.boot</groupId>
	    <artifactId>mybatis-spring-boot-starter</artifactId>
	    <version>2.1.3</version>
	</dependency>

再添加插件的依赖

    <dependency>
		<groupId>org.mybatis.generator</groupId>
		<artifactId>mybatis-generator-core</artifactId>
		<version>1.3.5</version>
	</dependency>

在 build 的 plugins 中添加

        <plugin>
        	<!--Mybatis-generator插件,用于自动生成Mapper和POJO-->
		    <groupId>org.mybatis.generator</groupId>
		    <artifactId>mybatis-generator-maven-plugin</artifactId>
		    <version>1.3.5</version>
		    <!--插件设置-->
		    <configuration>
		        <!--允许移动生成的文件-->
		        <verbose>true</verbose>
		        <!--启用覆盖-->
		        <overwrite>true</overwrite>
		        
		        <!--自动生成配置 如果名字是generatorConfig.xml可以省略配置-->
		        <!--<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>-->
		    </configuration>
        </plugin>

 在路径 src/main/resources/ 下新建一个 generatorConfig.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="DB2Tables" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否生成注释代时间戳-->
            <property name="suppressDate" value="true"/>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--数据库链接地址账号密码-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://xxx.xxx.xxx.xxx:3306/xxxx?serverTimezone=Asia/Shanghai" userId="root" password="xxxxxxxx">
        </jdbcConnection>
        <javaTypeResolver>
            <!--该属性可以控制是否强制DECIMAL和NUMERIC类型的字段转换为Java类型的java.math.BigDecimal,默认值为false,一般不需要配置。-->
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!--生成Model类存放位置-->
        <javaModelGenerator targetPackage="com.lz.springboot_demo.model" targetProject="src/main/java">
            <!--enableSubPackages:如果true,MBG会根据catalog和schema来生成子包。如果false就会直接用targetPackage属性。默认为false。-->
            <property name="enableSubPackages" value="true"/>
            <!--trimStrings:是否对数据库查询结果进行trim操作,如果设置为true就会生成类似这样public void setUsername(String username) {this.username = username == null ? null : username.trim();}的setter方法。默认值为false。-->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!--生成映射xml文件存放位置-->
        <sqlMapGenerator targetPackage="com.lz.springboot_demo.dao" targetProject="src/main/resources/">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!--生成Dao类存放位置(*Mapper.java)-->
        <!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
                type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
                type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
                type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
        -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.lz.springboot_demo.dao" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <!--生成对应表及类名-->
        <table tableName="user_main" domainObjectName="UserMain" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">
            <!--useActualColumnNames:如果设置为true,那么MBG会使用从数据库元数据获取的列名作为生成的实体对象的属性。 如果为false(默认值),MGB将会尝试将返回的名称转换为驼峰形式。 在这两种情况下,可以通过 元素显示指定,在这种情况下将会忽略这个(useActualColumnNames)属性。-->
            <property name="useActualColumnNames" value="true"/>
            <!-- 数据库表主键 -->
            <generatedKey column="id" sqlStatement="Mysql" identity="true" />
        </table>
    </context>
</generatorConfiguration>

基本上完了,

3、运行:

如图

 选中generatorConfig.xml文件,反键,点击上图红框的图标运行。

4、运行时的错误以及解决方案

Ⅰ、错误一:

上面这运行之后,报错为下图,

 没找到JDBC

需要检查下pom.xml,application.yml和generatorConfig.xml 文件

①检查下pom.xml

发现 pom.xml 中 mysql-connector-java 依赖是有的

②检查 application.yml

发现 application.yml 中的驱动也配置了的

哦,忘记贴出来了


server:
  port: 8080
spring:
  datasource:
  	#驱动
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://xxx.xxx.xxx.xxx:3306/xxxxx?characterEncoding=utf8
    username: root
    password: xxxxxxxx
    #连接池类型
    type: com.alibaba.druid.pool.DruidDataSource
    
    druid:
      # 最小数
      min-idle: 5
      # 最大数
      max-active: 20
      # 初始大小
      initial-size: 5
      # 配置获取连接等待超时时间
      max-wait: 6000
      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      time-between-eviction-runs-millis: 60000
      # 配置一个连接在池中最小生存时间  单位为毫秒
      min-evictable-idle-time-millis: 300000
      validation-query: SELECT 1 FROM DUAL
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      # 打开 PSCache,并且指定每个连接上PSCache的大小
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,wall用于防火墙
      filters: stat,wall
    
mybatis:
	# model的包
	type-aliases-package: com.lx.springboot_demo.model
	configuration:
	# 开启驼峰uName自动映射到u_name
	map-underscore-to-camel-case: true
	#  该配置项配置了MyBatis配置文件保存路径
	mapper-locations: classpath:mappers/*.xml
#  配置扫描对应实体所在包,将mapper的实现类注入容器我们在启动器类上加了@MapperScan注解这里就不需要了

③检查 generatorConfig.xml

发现问题了,少了一句指定驱动地址的

找到你的 mysql-connector-java.jar 的路径,放进去。就解决这个问题了

<classPathEntry location="C:/Users/397004497/.m2/repository/mysql/mysql-connector-java/8.0.20/mysql-connector-java-8.0.20.jar"/>

 Ⅱ、错误二:

运行后,出现新问题,如图

 检查下指定的包路径和包名

如下图,我发现我的路径都写错了

 改过之后在运行,发现还是不对。百度之后发现

如下图这里不对

项目是这样的

 

所以我把项目名加到 src 前面

 如下图

 三个生成路径都改一下,运行之后就成功了

 如下图,对路径不满意的话,删了,自己填好路径重新运行即可

这里,生成出来的实体类,之后get set  方法

一般,还需要 toString

所以,手动生成一下

 

 

 

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
您好!对于自动生成实体类mapper的问题,可以考虑使用MyBatis Generator插件来实现。MyBatis Generator是一个官方支持的代码生成工具,可以根据数据库表结构自动生成实体类mapper接口。 以下是一些简单的步骤来使用MyBatis Generator插件来生成实体类mapper: 1. 首先,您需要在您的项目引入MyBatis Generator插件的依赖。您可以在pom.xml文件(如果您使用Maven)或build.gradle文件(如果您使用Gradle)添加相应的依赖。 2. 接下来,编写一个MyBatis Generator的配置文件(一般命名为generatorConfig.xml),用于定义生成实体类mapper的规则。配置文件包含了数据库连接信息、要生成的表、生成的目标包等信息。 3. 在配置文件,您可以配置生成的实体类的规则,例如是否使用Lombok注解、是否生成对应字段的getters和setters等。 4. 配置好generatorConfig.xml文件后,您可以执行MyBatis Generator插件来生成实体类mapper。一般情况下,可以通过命令行或者IDE的插件来执行。 5. 执行成功后,您将在指定的目标包看到生成的实体类mapper接口。这些文件将根据您在配置文件定义的规则生成。 需要注意的是,使用MyBatis Generator插件生成的实体类mapper只是初始化的代码,您仍然需要根据需要进行调整和扩展。 希望以上信息对您有所帮助!如有更多问题,请继续提问。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞天神猴

希望对像我一样的初学者有所帮助

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值