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>
官方文档:
http://mybatis.org/generator/usage/mysql.html
近期评论