MySql使用说明
Unsigned Fields
MySql支持signed and unsigned字段。这些不是JDBC类型,因此MyBatis生成器无法自动考虑这些类型的字段。Java数据类型始终是signed。使用unsigned字段时,这可能导致数据类型不精确。解决方案是为MySql中的任何unsigned字段提供 <columnOverride>。这是一个如何处理MySql中未签名的bigint字段的示例:
<table tableName="ALLTYPES" > <columnOverride column="UNSIGNED_BIGINT_FIELD" javaType="java.lang.Object" jdbcType="LONG" /> </table>
* 您必须自己将返回值强制转换为适当的类型(在本例中为 java.math.BigInteger)
Catalogs and Schema
MySql不正确地支持SQL catalogs and schema。如果您在MySql中运行create schema命令,它实际上会创建一个database – JDBC驱动程序会将其报告为catalog。但是MySql语法不支持标准catalog..table SQL语法。
因此,最好不要在生成器配置中指定catalog or schema。只需指定表名、数据库即可。
如果您使用的是version 8.x of Connector/J,您会注意到,生成器同时会为MySql内置表,如(sys, information_schema, performance_schema, etc.)生成代码。这应该不是您想要的,要禁用这种行为,请将属性“ nullCatalogMeansCurrent = true”添加到JDBC URL。
例如:
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost/my_schema" userId="my_user" password="my_password"> <property name="nullCatalogMeansCurrent" value="true" /> </jdbcConnection>
以下是我生成mysql8.0,test数据库中的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="mysql-connector-java-8.0.18.jar"/> <context id="shangdaowuenlu" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressDate" value="true"/> <property name="suppressAllComments" value="true"/> </commentGenerator> <!--数据库链接地址账号密码--> <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC" userId="test" password="test"> <property name="nullCatalogMeansCurrent" value="true"/> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!--生成Model类存放位置--> <javaModelGenerator targetPackage="com.ikonke.mapper.repository" targetProject="d:\develop\tools\mybatisGenerator"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!--生成映射文件存放位置--> <sqlMapGenerator targetPackage="com.ikonke.mapper.repository.mapper" targetProject="d:\develop\tools\mybatisGenerator"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!--生成Dao类存放位置--> <javaClientGenerator type="XMLMAPPER" targetPackage="com.ikonke.mapper.repository.mapper" targetProject="d:\develop\tools\mybatisGenerator"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!--生成对应表及类名--> <table tableName="%" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <property name="useActualColumnNames" value="true"/> </table> </context> </generatorConfiguration>
官方文档: