使用mybatis-generator.xml 生成PO 物件
阿新 • • 發佈:2021-10-30
問題是,開發了一箇舊專案改造,以前是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型別的,資料庫就不會報錯了