generatorConfig-mysql.xml中连接数据库的正确书写方式。

本文记录了在SpringBoot项目中使用MybatisGenerator时遇到的数据库连接问题及解决过程。作者分享了从错误的配置到正确的解决方案,包括如何正确设置数据库URL、参数和使用转义字符。

在做spring boot开发时,刚开始实训的时候一直做的数据库表的增删改查,但是在MybatisGenerator自动生成java文件时,在XML文件中由于书写不正确一直连接不上数据库。

刚上手项目,错误写法是这样的:

<jdbcConnection driverClass="com.mysql.jdbc.Driver"

connectionURL="jdbc:mysql://localhost:3306/renping"   

userId="root"

password="7829*****">

</jdbcConnection>

 

可以看到的确有renping这个数据库存在,但是为什么一直报错:unknown database “renping”

之后我又上网找,说是写成如下的样子:

<jdbcConnection driverClass="com.mysql.jdbc.Driver"

connectionURL="jdbc:mysql://localhost:3306/day1?characterEncoding=utf-8"

userId="root"

password="7829*****">

</jdbcConnection>

结果还是以前的错误。

又改成如下:

<jdbcConnection driverClass="com.mysql.jdbc.Driver"

connectionURL="jdbc:mysql://localhost:3306renping?useUnicode=true&characterEncoding=utf-8&useSSL=false"

userId="root"

password="7829*****">

</jdbcConnection>

错误又变成了这个:

The reference to entity "useSSL" must end with the ';' delimiter.

原来是没有使用转义字符,参考博文之后得到了答案:

https://blog.youkuaiyun.com/qq_33530388/article/details/70352720

这次终于修改成功,并且终于知道了我应该写表的名字,而不是自己数据库的名字修改如下:

<jdbcConnection driverClass="com.mysql.jdbc.Driver"

  connectionURL="jdbc:mysql://localhost:3306/day1?useUnicode=true&characterEncoding=utf-8&useSSL=false"

userId="root"

password="7829*****">

</jdbcConnection>

至此才真正书写正确!

转载于:https://www.cnblogs.com/RPlandscape/p/10141738.html

在 `generatorConfig.xml` 文件中出现“列名无效”的错误,通常是因为 MyBatis Generator 在解析数据库表结构时无法识别某些列名。以下是常见的几种原因及对应的解决方案: ### 1. 数据库列名与关键字冲突 某些数据库列名可能与数据库的关键字(如 `order`, `desc`, `key` 等)冲突,导致解析失败。可以在列名前后添加反引号(`)进行转义。 ```xml <columnOverride column="order" property="orderValue" /> ``` ### 2. 列名大小写不匹配 数据库中列名的大小写与数据库配置或驱动程序的敏感性设置不一致,也可能导致错误。可以在 `generatorConfig.xml` 中使用 `<columnOverride>` 明确指定列名与属性的映射关系。 ```xml <columnOverride column="USER_NAME" property="userName" /> ``` ### 3. 数据库驱动版本不兼容 使用的数据库驱动版本(如 MySQL 的 `mysql-connector-java`)可能不支持某些列类型或特性。建议升级到最新稳定版本,例如使用较新的 `mysql-connector-java-8.x` 版本以获得更好的兼容性[^1]。 ### 4. 数据库连接配置错误 检查 `generatorConfig.xml` 文件中 `<jdbcConnection>` 配置的 URL、用户名和密码是否正确,并确保数据库服务正在运行。此外,URL 中可以添加参数以增强兼容性: ```xml <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC" userId="root" password="password"> </jdbcConnection> ``` ### 5. 表名或列名拼写错误 手动检查数据库表结构和 `generatorConfig.xml` 文件中的表名和列名是否拼写正确。可以通过数据库客户端工具查询表结构进行核对。 ### 6. 使用 `<ignoreColumn>` 忽略无效列 如果某些列确实不需要生成代码,可以使用 `<ignoreColumn>` 标签忽略这些列: ```xml <ignoreColumn column="invalid_column_name" /> ``` ### 7. 配置 `<table>` 标签的 `useActualColumnNames` 属性 默认情况下,MyBatis Generator 会将列名转换为 Java 属性风格(如 `user_name` 转换为 `userName`)。如果希望保留原始列名,可以设置 `useActualColumnNames="true"`: ```xml <table tableName="your_table" useActualColumnNames="true" /> ``` ### 8. 检查数据库方言配置 如果使用的是非 MySQL 数据库,需要确保 `<jdbcConnection>` 中的驱动类和 URL 配置正确,并且数据库方言与 MyBatis Generator 兼容。 ### 示例 `generatorConfig.xml` 配置片段 ```xml <generatorConfiguration> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC" userId="root" password="password"> </jdbcConnection> <javaModelGenerator targetPackage="com.example.model" targetProject="src/main/java" /> <sqlMapGenerator targetPackage="com.example.mapper" targetProject="src/main/resources" /> <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.dao" targetProject="src/main/java" /> <table tableName="your_table" useActualColumnNames="true"> <columnOverride column="order" property="orderValue" /> <ignoreColumn column="invalid_column_name" /> </table> </generatorConfiguration> ``` ### 总结 解决 `generatorConfig.xml` 中“列名无效”错误的关键在于检查列名是否合法、驱动版本是否兼容、数据库连接配置是否正确,并通过 `<columnOverride>` 和 `<ignoreColumn>` 等标签进行调整。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值