根据数据库表对象信息快速建立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); 
    } 
}

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/13896.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论