当前位置: 代码迷 >> 综合 >> 从剪切板中将 Navicat Premium 中的数据库字段转为 private String goodsId 的样式
  详细解决方案

从剪切板中将 Navicat Premium 中的数据库字段转为 private String goodsId 的样式

热度:27   发布时间:2023-12-27 22:51:15.0
`ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`TYPE_ID` int(11) DEFAULT NULL COMMENT '类型ID',

`BRAND_ID` int(11) DEFAULT NULL COMMENT '品牌ID',


import java.awt.Toolkit;
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();
        if (charArray[0] < 97 || charArray[0] > 122) {
        return string;
        }
       /* if (Character.isDigit(charArray[0])) {
        return string;
        }*/
        charArray[0] -= 32;
        return String.valueOf(charArray);
    }
}

  相关解决方案