报错com.mysql.cj.jdbc.Driver,解决mybatis-generator报错
我今天自己用的时候遇到的,不管怎么调整配置都还是这个com.mysql.cj.jdbc.Driver错误,今天解决了更大家分享一下成果。
·
我今天自己用的时候遇到的,不管怎么调整配置都还是这个com.mysql.cj.jdbc.Driver错误,今天解决了更大家分享一下成果。
一、检查配置
- 🧐 驱动类是不是写成了
com.mysql.jdbc.Driver?(NO!MySQL8.0必须用cj版本!) - 🔍 URL里的反斜杠是不是被转义成
&了?(删掉!直接写localhost:3306) - 🔐 数据库密码有没有写错?(别打码!直接明文测试最有效)
对比一下下面的代码哦
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/xxx?useSSL=false&serverTimezone=UTC"
userId="root" password="xxx">
<property name="nullCatalogMeansCurrent" value="true"/>
</jdbcConnection>
二、添加mysql-connector-java的路径
其次需要找到你maven本地仓库的数据库连接的jar包,写在上面,这是我自己的,版本号要自己去maven本地仓库去找,windows复制过来需要改一下"",改成“/”,这是我解决的关键
<!-- 旧版阴间写法 -->
<path>C:\Users\12050\.m2\repository\mysql\mysql-connector-java\8.0.23\mysql-connector-java-8.0.23.jar</path>
<!-- 新版优雅写法(亲测跨平台有效) -->
<path>${user.home}/.m2/repository/mysql/mysql-connector-java/8.0.23/mysql-connector-java-8.0.23.jar</path>
三、用maven集成
<!-- 在pom里加这个插件就再也不怕依赖丢失啦! -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.0</version>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
四、用properties文件统一管理配置
<!-- 用properties文件统一管理配置 -->
<properties>
<db.driver>com.mysql.cj.jdbc.Driver</db.driver>
<db.url>jdbc:mysql://localhost:3306/mydb?serverTimezone=Asia/Shanghai</db.url>
<db.username>root</db.username>
<db.password>123456</db.password>
</properties>
<jdbcConnection driverClass="${db.driver}" connectionURL="${db.url}" userId="${db.username}" password="${db.password}"/>
生成注释加上以下的代码
<!-- 想要生成注释?取消注释这三行就行! -->
<commentGenerator>
<property name="suppressAllComments" value="false"/>
<property name="addRemarkComments" value="true"/>
</commentGenerator>
让JDBC的TIMESTAMP自动转成LocalDateTime‘
<typeHandlers>
<!-- 让JDBC的TIMESTAMP自动转成LocalDateTime -->
<typeHandler javaType="java.time.LocalDateTime" jdbcType="TIMESTAMP" handler="org.mybatis.type.LocalDateTimeTypeHandler"/>
</typeHandlers>
五、注意表名大写
<!-- 错误示范:MySQL表名是user_info,写成User_Info会报错 -->
<table tableName="User_Info" domainObjectName="UserInfo"/>
<!-- 正确姿势:直接写表名,让工具自动处理驼峰命名 -->
<table tableName="user_info" domainObjectName="UserInfo"/>
六、设置分页查询
<!-- 手动写limit的时候记得带上offset -->
<select id="selectUsers" parameterType="map" resultType="User">
SELECT * FROM user
LIMIT #{limit} OFFSET #{offset}
</select>
<!-- 自动生成时记得勾选useLimitClause=true -->
<javaModelGenerator targetPackage="..." enableSubPackages="false">
<property name="useLimitClause" value="true"/>
</javaModelGenerator>
七、多数据库解决方案
<!-- 动态数据源配置示例 -->
<jdbcConnection driverClass="..." connectionURL="jdbc:mysql://tenant1-db:3306/db_name" .../>
<jdbcConnection driverClass="..." connectionURL="jdbc:mysql://tenant2-db:3306/db_name" .../>
<context id="tenant1" targetRuntime="MyBatis3">
<jdbcConnection .../>
</context>
<context id="tenant2" targetRuntime="MyBatis3">
<jdbcConnection .../>
</context>
八、generatorConfig.xml代码全
我把整体的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="C:/Users/12050/.m2/repository/mysql/mysql-connector-java/8.0.23/mysql-connector-java-8.0.23.jar"/>
<!-- 数据库连接 -->
<context id="default" targetRuntime="MyBatis3">
<property name="autoDelimitKeywords" value="true"/>
<!--可以使用``包括字段名,避免字段名与sql保留字冲突报错-->
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<property name="useExample" value="false" />
<!-- optional,旨在创建class时,对注释进行控制 -->
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/xxx?useSSL=false&serverTimezone=UTC"
userId="root" password="xxx">
<property name="nullCatalogMeansCurrent" value="true"/>
</jdbcConnection>
<!-- Java类型处理器 -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- Java模型生成 -->
<javaModelGenerator targetPackage="com.example.mystore.model.pojo"
targetProject="src/main/java">
<property name="enableSubPackages" value="false" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- SQL映射文件生成 -->
<sqlMapGenerator targetPackage="mapper"
targetProject="src/main/resources/">
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- Mapper接口生成 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.example.mystore.model.dao"
targetProject="src/main/java">
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!--生成对应表和类名-->
<table schema="root" tableName="imooc_mall_cart" domainObjectName="Cart" />
<table tableName="category" domainObjectName="Category" />
<table tableName="order" domainObjectName="Order" />
<table tableName="order_item" domainObjectName="OrderItem" />
<table tableName="product" domainObjectName="Product" />
<table tableName="" domainObjectName="User" />
</context>
</generatorConfiguration>
更多推荐
所有评论(0)