Mybatis逆向工程

关于如何使用Mybatis的逆向工程,请查看我的博客

遇到的问题一

Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate (default-cli) on project springboot-redis: Execution default-cli of goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate failed: Exception getting JDBC Driver: com.mysql.jdbc.Driver -> [Help 1]
解决方案:在pom文件的插件里面的逆向工程里面添加上mysql的连接驱动
				<plugin>
				<groupId>org.mybatis.generator</groupId>
				<artifactId>mybatis-generator-maven-plugin</artifactId>
				<version>1.3.2</version>
				<configuration>
					<verbose>true</verbose>
					<overwrite>true</overwrite>
				</configuration>
				<!--为什么还需要使用mysql的连接依赖,是因为这个是mybatis的逆向工具需要使用到的连接,不然会提示:Exception getting JDBC Driver: com.mysql.jdbc.Driver-->
				<dependencies>
					<dependency>
						<groupId>mysql</groupId>
						<artifactId>mysql-connector-java</artifactId>
						<version>5.1.45</version>
					</dependency>
				</dependencies>
			</plugin>


遇到的问题二:使用application.yml来进行配置时候

yml
server:
  port: 8002

#ruanjiayu-datasource
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://192.168.0.183:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8
    username: root
    password: 123456

#mybatis
mybatis:
  ###表示xml文件所在的位置
  mapper-locations: classpath*:com.jing.modules/*/*.xml
  ####在表示xml文件内的使用实体类名来进行实体类的映射,不需要在使用包名+类名,不过本人一般不开启这个,哈哈哈哈
  type-aliases-package: com.jing.modules.po
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>
    <!--<classPathEntry location="${jdbc.driverLocation}"/>-->

    <context id="mybatisTables" defaultModelType="flat" targetRuntime="MyBatis3">
        <property name="autoDelimiterKeywords"  value="true"/>
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>

        <commentGenerator>
            <!-- suppressAllComments 的值 true 表示不生成所有的注释,false(默认)生成所有注释-->
            <property name="suppressAllComments" value="true"/>
            <property name="suppressDate" value="true"/>
            <property name="addRemarkComments" value="true"/>
        </commentGenerator>
   <!------------------使用yml作为配置文件时候,需要对其进行改变,目前只能使用手动添加数据-------------------->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://192.168.0.183:3306/report?useUnicode=true&amp;characterEncoding=UTF-8&amp;useSSL=false"
                        userId="root"
                        password="123456">
            <!--Orable数据库中需要拿到字段注释使用的配置-->
            <!--<property name="remarksReporting" value="true"/>-->
        </jdbcConnection>

        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!--导出的是实体类-->
        <javaModelGenerator targetPackage="com.jing.modules.po" targetProject="src/main/java">
            <property name="enableSubPackages" value="false"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!--导出的xml-->
        <sqlMapGenerator targetPackage="com.jing.modules.mapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>
        <!--导出的是接口-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.jing.modules.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>
        <!--直接导出所有表-->
        <!--<table tableName="%">-->
            <table tableName="users">
            <property name="useActualColumnNames" value="false"/>
        </table>

    </context>
</generatorConfiguration>

对于配置文件内的数据读取,不能再简单的通过${*****}来映射,只能通过手动来输入。


遇到的问题三:使用逆向工程,结果对其操作了所有库内的所有表

出现这样的原因是我使用了8.x以上jar连接mysql来进行逆向生成
pom.xml
<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
			<!--mybatis的逆向工程插件的使用-->
			<plugin>
				<groupId>org.mybatis.generator</groupId>
				<artifactId>mybatis-generator-maven-plugin</artifactId>
				<version>1.3.2</version>
				<configuration>
					<verbose>true</verbose>
					<overwrite>true</overwrite>
				</configuration>
				<!--为什么还需要使用mysql的连接依赖,是因为这个是mybatis的逆向工具需要使用到的连接,不然会提示:Exception getting JDBC Driver: com.mysql.jdbc.Driver-->
				<dependencies>
					<dependency>
						<groupId>mysql</groupId>
						<artifactId>mysql-connector-java</artifactId>
						<version>8.0.15</version>
					</dependency>
				</dependencies>
			</plugin>
		</plugins>
	</build>
解决办法:修改generatorConfig.xml内的连接mysql的url,添加&nullCatalogMeansCurrent=true

        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://192.168.0.183:3306/report?useUnicode=true&amp;characterEncoding=UTF-8&amp;useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;nullCatalogMeansCurrent=true"
                        userId="root"
                        password="123456">
            <!--Orable数据库中需要拿到字段注释使用的配置-->
            <!--<property name="remarksReporting" value="true"/>-->
        </jdbcConnection>
ps:使用8.x以上的mysql连接驱动的时候,需要注意添加上时区

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值