java orcl自动_java oracle下自动生成实体类工具类

public class CreateBeanAuto{

private List columnList = new ArrayList();

private Map contentMap = new HashMap();

private static Map dateTypeMap = new HashMap();

static {

dateTypeMap.put("VARCHAR2", "String");

dateTypeMap.put("CLOB", "String");

dateTypeMap.put("NUMBER", "long");

dateTypeMap.put("DATE", "Date");

dateTypeMap.put("BLOB", "Blob");

}

public void create(String fileUrl, List tableNameList, Map entityName) {

for (int i = 0; i < tableNameList.size(); i++) {

String columnSql = "select column_name,data_type from user_tab_cols where table_name = upper('" + tableNameList.get(i) + "')";

columnList = 根据自己的实际项目架构查询columnSql;

contentMap.put("PACKAGE", "package com.hfits.util.entity;\r\r");

contentMap.put("DATEIMPORT", "import java.util.Date;\r");

contentMap.put("BLOBIMPORT", "import oracle.sql.BLOB;\r");

contentMap.put("BASEIMPORT", "import org.nutz.dao.entity.annotation.Column;\r" +

"import org.nutz.dao.entity.annotation.Index;\r" +

"import org.nutz.dao.entity.annotation.Table;\r" +

"import org.nutz.dao.entity.annotation.TableIndexes;\r\r");

contentMap.put("TABLE", "@Table(\"" + tableNameList.get(i).toUpperCase() + "\")\r");

contentMap.put("TABLEINDEXES", "@TableIndexes({@Index(name = \"" + tableNameList.get(i).toUpperCase() + "_PK" + "\", fields = {\"id\"}, unique = false)})\r");

contentMap.put("CLASSNAME", "public class " + entityName.get(tableNameList.get(i)) + " {\r");

Map columnMap = convert(columnList);

String javaContent = contentMap.get("PACKAGE");

if ("1".equals(columnMap.get("havingDATE"))) {

javaContent += contentMap.get("DATEIMPORT");

}

if ("1".equals(columnMap.get("havingBLOB"))) {

javaContent += contentMap.get("BLOBIMPORT");

}

columnMap.remove("havingDATE");

columnMap.remove("havingBLOB");

columnMap.remove("havingNUMBER");

javaContent += contentMap.get("BASEIMPORT")

+ contentMap.get("TABLE")

+ contentMap.get("TABLEINDEXES")

+ contentMap.get("CLASSNAME");

String codeContent = "";

String methodContent = "";

for (Map.Entry entry : columnMap.entrySet()) {

String column = entry.getKey().toLowerCase();

String columnDataType = entry.getValue();

codeContent += " @Column(\"" + column + "\")\r";

codeContent += " private " + dateTypeMap.get(columnDataType) + " " + column.replace("_","") + ";" +

"\r\r";

methodContent += " public " + dateTypeMap.get(columnDataType) + " get" + toUpperCaseFirstOne

(column).replace("_","") + "(){\r ";

methodContent += " return " + column.replace("_","") + ";\r";

methodContent += " }\r\r";

methodContent += " public " + dateTypeMap.get(columnDataType) + " set" + toUpperCaseFirstOne(column).replace("_","") + "(" + dateTypeMap.get(columnDataType) + " " + column.replace("_","") + ") {\r";

methodContent += " this." + column.replace("_","") + " = " + column.replace("_","") + ";\r";

methodContent += " return " + column.replace("_","") + ";\r";

methodContent += " }\r\r";

}

javaContent += codeContent + methodContent + "}";

String url = fileUrl + entityName.get(tableNameList.get(i)) + ".java";

File file = new File(url);

FileWriter fw = null;

if (file.exists()) {

file.delete();

}

if (!file.exists()) {

try {

file.createNewFile();

fw = new FileWriter(file, true);

} catch (IOException e) {

e.printStackTrace();

}

}

PrintWriter pw = new PrintWriter(fw);

pw.println(javaContent);

pw.flush();

try {

fw.flush();

pw.close();

fw.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

private Map convert(List columnList) {

Map result = new HashMap();

result.put("havingDATE", "0");

result.put("havingBLOB", "0");

for (Map map : columnList) {

result.put(StringUtils.null2String(map.get("column_name")), StringUtils.null2String(map.get("data_type")));

if ("DATE".equals(map.get("data_type"))) {

result.put("havingDATE", "1");

}

if ("BLOB".equals(map.get("data_type"))) {

result.put("havingBLOB", "1");

}

}

return result;

}

// 首字母转大写

private String toUpperCaseFirstOne(String s) {

if (Character.isUpperCase(s.charAt(0))) {

return s;

} else {

return (new StringBuilder()).append(Character.toUpperCase(s.charAt(0))).append(s.substring(1)).toString();

}

}

}

//测试

public String test() {

Map response = new HashMap();

List tableNameList = new ArrayList();

tableNameList.add(表名);

Map entityName = new HashMap();

entityName.put(表名, 类名);

createBeanAuto.create("H:\\test", tableNameList, entityName);

response.put("code", "10000");

response.put("msg", "创建实体类成功!");

return JSON.toJSONString(response);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值