基于hibernate MSQL 注解根据数据库自动创建bean

来源:互联网 发布:windows msu x64 编辑:程序博客网 时间:2024/06/16 05:44
package com.ideatc.util;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;public class CreateBean {public static String tableName = "sys_right";// 表名public static String modelName = "Right";// bean名public static String packageName = "com.ideatc.bean";public static ResultSet rs = null;ResultSetMetaData rsmd = null;static List<HashMap<String, String>> columns = new ArrayList<HashMap<String, String>>();public static Connection getConnection() {Connection conn = null;try {Class.forName("com.mysql.jdbc.Driver").newInstance();String url = "jdbc:mysql://192.168.1.100:3306/ideatc?useUnicode=true&characterEncoding=UTF-8";String user = "dasilu";String password = "123456";conn = DriverManager.getConnection(url, user, password);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return conn;}public static void closeResultSet(ResultSet rs) {if (rs != null) {try {rs.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public static void closeConnection(Connection conn) {if (conn != null) {try {conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public static void createModel() {;Connection conn = getConnection();Statement stmt = null;try {stmt = conn.createStatement();rs = stmt.executeQuery("select * from " + tableName);ResultSetMetaData rsmd = rs.getMetaData();// class name ==表名称首字母大写tableName = tableName.toLowerCase();String tmpPackageName = packageName.replace(".", "/");File file = new File("src/" + tmpPackageName + "/" + modelName+ ".java");StringBuffer sb = new StringBuffer();// Beginner of classif (!packageName.equals("")) {sb.append("package " + packageName + ";\n");}sb.append("import java.util.Date;\nimport javax.persistence.Entity;\nimport javax.persistence.GeneratedValue;\nimport javax.persistence.GenerationType;\nimport javax.persistence.Id;\nimport javax.persistence.Table;\n");// classsb.append("@Entity\n@Table(name = \"" + tableName + "\")\n");sb.append("public class " + modelName + "{" + "\n\n");sb.append("@Id \n"+ "@GeneratedValue(strategy=GenerationType.AUTO)\n");for (int i = 1; i <= rsmd.getColumnCount(); i++) {String type = getTypeName(rsmd.getColumnTypeName(i));HashMap<String, String> map = new HashMap<String, String>();map.put(type, rsmd.getColumnName(i).toLowerCase());columns.add(map);}// property//for (HashMap<String, String> map : columns) {for (Iterator<Map.Entry<String, String>> it = map.entrySet().iterator(); it.hasNext();) {Map.Entry<String, String> entry = it.next();String type = entry.getKey();String proName = entry.getValue();sb.append("\tprivate ");sb.append(type + " " + proName);sb.append(";");sb.append("\n");}}// set get methodfor (HashMap<String, String> map : columns) {for (Iterator<Map.Entry<String, String>> it = map.entrySet().iterator(); it.hasNext();) {Map.Entry<String, String> entry = it.next();String type = entry.getKey();String proName = entry.getValue();String proName4Method = proName.substring(0, 1).toUpperCase() + proName.substring(1);sb.append("\n");// getsb.append("\tpublic " + type + " get" + proName4Method+ "(){\n");sb.append("\t\treturn " + proName + ";\n");sb.append("\t}\n");// setsb.append("\t public " + "void" + " set" + proName4Method+ "(" + type + " " + proName + "){\n");sb.append("\t\t");sb.append("this." + proName + " = " + proName + ";\n");sb.append("\t}\n");}}sb.append("}");String str = sb.toString();BufferedWriter bw = new BufferedWriter(new FileWriter(file));bw.write(str);bw.flush();bw.close();System.out.println(str);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}/** * @param typeName * @return */public static String getTypeName(String typeName) {String typeStr = null;if (typeName.toLowerCase().trim().equals("varchar")) {typeStr = "String";} else if (typeName.toLowerCase().trim().equals("int")) {typeStr = "int";} else if (typeName.toLowerCase().trim().equals("char")) {typeStr = "boolean";} else if (typeName.toLowerCase().trim().equals("date")) {typeStr = "Date";} else {typeStr = "Object";}return typeStr;}public static void main(String[] args) {createModel();System.out.println("bean creat!!!!!!!!!!!!!!");}}


0 0
原创粉丝点击