整体思路
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/tech/pnotes/13896.html