package hby.frame.gen;
import hby.frame.util.StringUtil;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
import java.util.Date;
public class GenEntity {
private static boolean f_util = false; // 是否需要导入包java.util.*
private static boolean f_sql = false; // 是否需要导入包java.sql.*
private static boolean f_math = false;//是否需要导入包 java.math.BigDecimal
public static void GenAll(TableParams tableParams) {
String[] colnames; // 列名数组
String[] colTypes; //列名类型数组
int[] colSizes; //列名大小数组
String PK_NAME = "id";//主键名
Connection con = null;
//查要生成实体类的表
String sql = "select * from " + tableParams.getTabelName();
PreparedStatement pStemt = null;
try {
try {
Class.forName(JdbcConfig.DRIVER);
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
con = DriverManager.getConnection(JdbcConfig.URL, JdbcConfig.NAME, JdbcConfig.PASS);
pStemt = con.prepareStatement(sql);
ResultSetMetaData rsmd = pStemt.getMetaData();
ResultSet pkRSet = con.getMetaData().getPrimaryKeys(con.getCatalog().toUpperCase(),
null, tableParams.getTabelName());
while (pkRSet.next()) {
System.out.println(pkRSet.getString("COLUMN_NAME"));
PK_NAME = pkRSet.getString("COLUMN_NAME");
}
int size = rsmd.getColumnCount(); //统计列
colnames = new String[size];
colTypes = new String[size];
colSizes = new int[size];
for (int i = 0; i < size; i++) {
colnames[i] = rsmd.getColumnName(i + 1);
colTypes[i] = rsmd.getColumnTypeName(i + 1);
if (colTypes[i].equalsIgnoreCase("datetime") || colTypes[i].equalsIgnoreCase("timestamp")) {
f_util = true;
}
if (colTypes[i].equalsIgnoreCase("image") || colTypes[i].equalsIgnoreCase("text")) {
f_sql = true;
}
if (colTypes[i].equalsIgnoreCase("decimal") || colTypes[i].equalsIgnoreCase("numeric")
|| colTypes[i].equalsIgnoreCase("real") || colTypes[i].equalsIgnoreCase("money")
|| colTypes[i].equalsIgnoreCase("smallmoney")) {
f_math = true;
}
colSizes[i] = rsmd.getColumnDisplaySize(i + 1);
}
//如果生成实体
if (tableParams.isModelFlag()) {
createModelFile(tableParams, colnames, colTypes);
}
//如果生成数据层
if (tableParams.isDaoFlag()) {
createDaoClassFile(tableParams);
createDaoXmlFile(tableParams, colnames, colTypes, PK_NAME);
}
//如果生成服务层
if (tableParams.isServiceFlag()) {
createServiceFile(tableParams, PK_NAME);
createServiceImplFile(tableParams, PK_NAME);
}
//如果生成控制层
if (tableParams.isControllerFlag()) {
createControllerFile(tableParams, PK_NAME);
}
//如果生成JSP
if (tableParams.isJspFlag()) {
createJspByPageFile(tableParams, PK_NAME, colnames);
createJspEditFile(tableParams, PK_NAME, colnames);
}
//关闭链接
pStemt.close();
pkRSet.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
}
}
private static void createJspEditFile(TableParams tableParams, String pk_name, String[] colnames) {
String jspEditContent = parseJspEdit(tableParams.getTabelName(), pk_name, colnames);
try {
File directory = new File("");
String fileName = directory.getAbsolutePath() + "/" + changeToFolder(tableParams.getJspTargetPackage()) + StringUtil.underlineToCamel(tableParams.getTabelName()) + ".jsp";
System.out.println("文件路径:" + fileName);
FileWriter fw = new FileWriter(fileName);
PrintWriter pw = new PrintWriter(fw);
pw.println(jspEditContent);
pw.flush();
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private static String parseJspEdit(String tabelName, String pkName, String[] colnames) {
StringBuffer sb = new StringBuffer();
String upTableName = StringUtil.initcap(tabelName);
String downTableName = StringUtil.underlineToCamel(tabelName);
sb.append("<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\r\n");
sb.append("<html>\r\n");
sb.append("<head>\r\n");
sb.append("\t<jsp:include page=\"head.jsp\"/>\r\n");
sb.append("\t<title>其见后台管理系统</title>\r\n");
sb.append("</head>\r\n");
sb.append("<body>\r\n");
sb.append("<jsp:include page=\"contentBefore.jsp\"/>\r\n");
sb.append("<template>\r\n");
sb.append("\t<el-form ref=\"form\" :model=\"row_info\" label-width=\"80px\">\r\n");
for (int i = 0; i < colnames.length; i++) {
if (!pkName.equalsIgnoreCase(colnames[i])) {
sb.append("\t\t<el-form-item label=\"" + StringUtil.underlineToCamel(colnames[i]) + "\">\r\n");
sb.append("\t\t\t<el-input v-model=\"row_info." + StringUtil.underlineToCamel(colnames[i]) + "\"></el-input>\r\n");
sb.append("\t\t</el-form-item>\r\n");
}
}
sb.append("\t\t<el-form-item>\r\n");
sb.append("\t\t\t<el-button type=\"primary\" @click=\"onSubmit\">{{edit?'保存':'立即创建'}}</el-button>\r\n");
sb.append("\t\t\t<el-button @click=\"back\">返回</el-button>\r\n");
sb.append("\t</el-form-item>\r\n");
sb.append("\t</el-form>\r\n");
sb.append("</template>\r\n");
sb.append("<jsp:include page=\"contentAfter.jsp\"/>\r\n");
sb.append("</body>\r\n");
sb.append("<script>\r\n");
sb.append("\tfunction getQueryString(name) {\r\n");
sb.append("\t\tvar reg = new RegExp(\"(^|&)\" + name + \"=([^&]*)(&|$)\", \"i\");\r\n");
sb.append("\t\tvar r = window.location.search.substr(1).match(reg);\r\n");
sb.append("\t\tif (r != null) return unescape(r[2]);\r\n");
sb.append("\t\treturn null;\r\n");
sb.append("\t}\r\n");
sb.append("\tnew Vue({\r\n");
sb.append("\t\tel: '#app',\r\n");
sb.append("\t\tcreated: function () {\r\n");
sb.append("\t\t\tvar " + StringUtil.underlineToCamel(pkName) + " = getQueryString('" + StringUtil.underlineToCamel(pkName) + "');\r\n");
sb.append("\t\t\tif (" + StringUtil.underlineToCamel(pkName) + ") {\r\n");
sb.append("\t\t\t\t$.get({\r\n");
sb.append("\t\t\t\t\turl: '../" + downTableName + "/get" + upTableName + "',\r\n");
sb.append("\t\t\t\t\tdata: {\r\n");
sb.append("\t\t\t\t\t\t" + StringUtil.underlineToCamel(pkName) + ": " + StringUtil.underlineToCamel(pkName) + "\r\n");
sb.append("\t\t\t\t\t}\r\n");
sb.append("\t\t\t\t}).then(function (res) {\r\n");
sb.append("\t\t\t\t\tif (res.success) {\r\n");
sb.append("\t\t\t\t\t\tthis.edit = true;\r\n");
sb.append("\t\t\t\t\t\tthi
没有合适的资源?快使用搜索试试~ 我知道了~
根据数据库快速生成 dao - entity - service - controller - jsp 代码
共6个文件
java:6个
1星 需积分: 42 45 下载量 91 浏览量
2018-01-16
13:50:10
上传
评论
收藏 12KB RAR 举报
温馨提示
根据数据库快速生成 dao - entity - service - controller - jsp 代码
资源推荐
资源详情
资源评论
收起资源包目录
hby.rar (6个子文件)
hby
frame
gen
GenEntity.java 61KB
RunTool.java 2KB
TableParams.java 4KB
JdbcConfig.java 319B
AesEncodeUtil.java 3KB
util
StringUtil.java 5KB
共 6 条
- 1
资源评论
- richardguo_gc2018-09-23骗子,没有内容
Pine先生
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功