根據數據庫表對象信息快速建立Dto類


整體思路

1、進入數據庫,查看表信息,復制表信息中的數據庫字段部分

2、利用java代碼讀取剪貼板內容

3、切割替換字符串,把字段注釋轉成java文檔注釋,把下划線改成駝峰命名規則

直接附代碼,可以直接拷貝使用,部分非下划線字段可能有誤,需要手動修改

package demo;

import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class CommentToVO {

    public static void main(String[] args) {
        getEntity(getSysClipboardText());
    }

    /**
     * 使用剪切板中的內容
     */
    private static String getSysClipboardText() {
        String ret = "";
        Clipboard sysClip = Toolkit.getDefaultToolkit().getSystemClipboard();

        // 獲取剪切板中的內容
        Transferable clipTf = sysClip.getContents(null);

        if (clipTf != null) {
            // 檢查內容是否是文本類型
            if (clipTf.isDataFlavorSupported(DataFlavor.stringFlavor)) {
                try {
                    ret = (String) clipTf.getTransferData(DataFlavor.stringFlavor);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        return ret;
    }

    /**
     * 獲取rvo
     */
    private static void getEntity(String raw) {

        String splitReg, ptnReg;
        if (raw.contains("comment on column")) { // oracle
            splitReg = "';";
            ptnReg = "\\.(\\S*)[a-z\\s]*'(\\S+)";
        } else { // mysql
            splitReg = "',";
            ptnReg = "`(\\S*)`[\\S\\s]*'(\\S*)";
        }
        String[] list = raw.split(splitReg);
        Pattern pattern = Pattern.compile(ptnReg);

        Matcher matcher;
        for (String s : list) {
            matcher = pattern.matcher(s);
            while (matcher.find()) {
                System.out.println("/** " + matcher.group(2) + " */");

                String[] fieldPart = matcher.group(1).toLowerCase().split("_");
                StringBuilder sb = new StringBuilder(fieldPart[0]);

                for (int i = 1; i < fieldPart.length; i++) {
                    sb.append(toUpperFirstChar(fieldPart[i]));
                }
                System.out.println("private String " + sb.toString() + ";");
            }
        }
    }

    private static String toUpperFirstChar(String string) {
        char[] charArray = string.toCharArray();
        charArray[0] -= 32;
        return String.valueOf(charArray);
    }
}



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com