• 使用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类型的,数据库就不会报错了

  • 相关阅读:
    HDU-1754 I Hate It (树状数组模板题——单点更新,区间查询最大值)
    HDU-1166 敌兵布阵 (树状数组模板题——单点更新,区间求和)
    JavaScript dotAll模式
    ECMAScript6补全字符串长度方法padStart()和padEnd()
    ECMAScript6重复字符串方法repeat()
    JavaScript确定一个字符串是否包含在另一个字符串中的四种方法
    JavaScript中label与break配合使用
    JavaScript数据结构与算法-集合练习
    JavaScript数据结构与算法-散列练习
    JavaScript数据结构与算法-字典练习
  • 原文地址:https://www.cnblogs.com/zytcomeon/p/15484829.html
Copyright © 2020-2023  润新知