整体思路
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