1. 程式人生 > 其它 >使用mybatis-generator.xml 生成PO 物件

使用mybatis-generator.xml 生成PO 物件

問題是,開發了一箇舊專案改造,以前是jsp,現在改為前後端分離,以前的增刪改查還是用的以前的BL,BL是用的Schema生成的,

那麼現在進行一次轉換

CREATE TABLE `lawagecalelement` (
  `RiskCode` varchar(10) NOT NULL,
  `CalType` char(2) NOT NULL,
  `F1` varchar(10) DEFAULT NULL,
  `F2` varchar(10) DEFAULT NULL,
  `F3` varchar(10) DEFAULT NULL,
  `F4` varchar(10) DEFAULT NULL,
  `F5` varchar(
10) DEFAULT NULL, `CalCode` varchar(6) DEFAULT NULL, `BranchType` varchar(2) NOT NULL, `BranchType2` varchar(2) NOT NULL, `CalOrder` int(2) DEFAULT NULL, PRIMARY KEY (`RiskCode`,`CalType`,`BranchType`,`BranchType2`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

命名為:mybatis-generator.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> <context id="mysql" targetRuntime="MyBatis3"> <commentGenerator> <property name="
suppressDate" value="true"/> <!-- 是否去除自動生成的註釋 true:是 : false:否 --> <property name="suppressAllComments" value="true"/> </commentGenerator> <!-- 資料庫連結資訊 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://10.253.76.193:3306/product?useUnicode=true" userId="root" password="root"> </jdbcConnection> <javaTypeResolver > <!-- 不需要將資料的小數型別,生成為BigDecimal --> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 生成資料庫表對應的pojo類 --> <javaModelGenerator targetPackage="com.zyt.po" targetProject="src/main/java"> <property name="enableSubPackages" value="false" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 生成mapper.xml --> <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources/mapping"> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- 生成mapper介面 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.zyt.dao" targetProject="src/main/java"> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 指定資料庫表 schema不用填寫 tableName=“表名” domainObjectName=生成的PO的名字 mapperName=生成的mapper的名字--> <table schema="" tableName="lawagecalelementmodel" domainObjectName="lawagecalelementmodel" mapperName="lawagecalelementmodel" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" > <property name="useActualColumnNames" value="true" /> <columnOverride column="CalOrder" javaType="Integer" /> </table> </context> </generatorConfiguration>

檢視生成的檔案

package com.zyt.po;

public class lawagecalelementmodel {
    private String modeltype;

    private String CALTYPE;

    private String f1;

    private String f2;

    private String f3;

    private String f4;

    private String f5;

    private String CALCODE;

    private String BRANCHTYPE;

    private String BRANCHTYPE2;

    private Integer CALORDER;

...}

這個的思考:

這個是資料庫中的欄位是int 型別的,那麼PO正確的應該為Integer,如果是int 肯定不對,因為int的預設值是為0的,

DTO中的欄位設計為String型別是勉強的,設計為String型別,就是省事了,但是如果前面傳入的為abc 或漢字為varchar型別的,資料庫就不會報錯了