比较快速的生成sql语句和mybatis的xml 2021-02-03 15:40,最后修改时间:2021年02月26日 10:38

import java.util.Arrays;
import java.util.List;

public class GenerateColumns {

    public static final String DOT = ".";
    public static final String BLANK = " ";
    public static final String COMMA = ",";
    public static final String UNDERLINE = "_";
    public static String originalColumns = "EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO";
    public static String newColumns = "E_EMPNO,E_ENAME,E_JOB,E_MGR,E_HIREDATE,E_SAL,E_COMM,E_DEPTNO";
    
    public static void main(String[] args) {
        String sql = generateSql("EMP", "E");
        System.out.println(sql);
        String xmlStr = generateMyBatisXml(newColumns);
        System.out.println(xmlStr);
    }
    
    public static String generateMyBatisXml(String newColumns) {
        String xmlStr = "";
        String[] originalColumnArr = originalColumns.split(",");
        String[] newColumnArr = newColumns.split(",");
        List<String> newColumnList = Arrays.asList(newColumnArr);
        for(int i = 0; i < newColumnList.size(); i++) {
            String currentXmlStr = null;
            if(i == 0) {
                currentXmlStr = "<id column="" 
                        + newColumnList.get(i).toUpperCase()
                        + """
                        + BLANK 
                        + "jdbcType="VARCHAR""
                        + BLANK
                        + "property=""
                        + generatePropertyName(originalColumnArr[i])
                        + ""/>"
                        + "
";
            }else {
                currentXmlStr = "<result column="" 
                        + newColumnList.get(i).toUpperCase()
                        + """
                        + BLANK 
                        + "jdbcType="VARCHAR""
                        + BLANK
                        + "property=""
                        + generatePropertyName(originalColumnArr[i])
                        + ""/>"
                        + "
";
            }
            xmlStr += currentXmlStr;
        }
        return xmlStr;
    }
    
    public static String generatePropertyName(String columnName) {
        String propertyName = "";
        String[] columnNameArr = null;
        if(columnName.indexOf(UNDERLINE) > 0) {
            columnNameArr = columnName.split(UNDERLINE);
            if(columnNameArr != null) {
                for(int i = 0; i < columnNameArr.length; i++) {
                    String currentStr = columnNameArr[i];
                    if(i == 0) {
                        currentStr = currentStr.toLowerCase();
                    }else {
                        if(currentStr.length() > 0) {
                            currentStr = currentStr.toLowerCase();
                            currentStr = currentStr.substring(0, 1).toUpperCase() + currentStr.substring(1);
                        }
                    }
                    propertyName += currentStr;
                }
            }
        }else {
            propertyName = columnName.toLowerCase();
        }
        return propertyName;
    }
    
    public static String generateSql(String tableName, String tableAbbr){
        String sql = "SELECT" + BLANK;
        String[] originalColumnArr = originalColumns.split(COMMA);
        List<String> originalColumnList = Arrays.asList(originalColumnArr);
        String[] newColumnArr = newColumns.split(COMMA);
        List<String> newColumnList = Arrays.asList(newColumnArr);
        if(originalColumnList.size() == newColumnList.size()) {
            for(int i = 0; i < originalColumnList.size(); i++) {
                sql += tableAbbr.toUpperCase() + DOT 
                    + originalColumnList.get(i).toUpperCase()
                    + BLANK 
                    + newColumnList.get(i).toUpperCase()
                    + COMMA;
            }
            sql = sql.substring(0, sql.length() - 1);
            sql += BLANK + "FROM" + BLANK + tableName.toUpperCase()
                + BLANK
                + tableAbbr.toUpperCase();
        }
        return sql;
    }

}

以上是代码,运行结果展示如下:

最后修改时间:2021年02月26日 10:38

2015年10月-2016年3月 总计:5个月.
2016年11月-2017年6月 总计:7个月.
2017年7月-2018年4月 总计:9个月.
2018年5月-2018年5月 总计:1个月.
2018年6月-2018年12月 总计:6个月.
2019年1月-2019年12月 总计11个月.
2020年2月-2021年2月 总计13个月.
所有总计:5+7+9+1+6+11+13=52个月(4年4个月).
本人认同二元论.我是理想主义者,现实主义者,乐观主义者,有一定的完美主义倾向.不过,一直都是咸鱼(菜鸟),就算有机会,我也不想咸鱼翻身.(并不矛盾,因为具体情况具体分析)
英语,高等数学,考研,其他知识学习打卡交流QQ群:946556683
原文地址:https://www.cnblogs.com/JimmySeraph/p/14367391.html