mybatis-generator生成sqlite3数据库代码

发布时间 2023-10-17 12:02:58作者: qpzmal67890

问题

问题:使用mybatis-generator生成sqlite3的代码时,金额是double,时间是string类型

表格式如下

CREATE TABLE test(
        id integer primary key autoincrement, -- id
        amount    numberic    , -- 金额
        create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
        update_time DATETIME DEFAULT CURRENT_TIMESTAMP
);

解决

解决1(没效果):generatorConfig.xml

        <javaTypeResolver>
            <!-- forceBigDecimals 该属性默认为 false,此时它会将 JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,
            若该属性为 true,此时将会把 JDBC DECIMAL 和 NUMERIC 类型解析为 java.math.BigDecimal。 -->
            <property name="forceBigDecimals" value="true"/>
            <property name="useJSR310Types" value="false"/>
        </javaTypeResolver>

解决2(有效):参考官网中mysql解决方案

<table tableName="test" domainObjectName="Test" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true">
            <generatedKey column="id" sqlStatement="JDBC"/>
            <columnOverride column="amount" javaType="java.math.BigDecimal" jdbcType="numberic" />
            <columnOverride column="create_time" javaType="java.util.Date" jdbcType="TEXT" />
        </table>