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

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 block
			e.printStackTrace();
		}
		return conn;
	}

	public static void closeResultSet(ResultSet rs) {
		if (rs != null) {
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	public static void closeConnection(Connection conn) {
		if (conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.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 class
			if (!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");
			// class
			sb.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 method
			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();
					String proName4Method = proName.substring(0, 1)
							.toUpperCase() + proName.substring(1);

					sb.append("\n");
					// get
					sb.append("\tpublic " + type + " get" + proName4Method
							+ "(){\n");
					sb.append("\t\treturn " + proName + ";\n");
					sb.append("\t}\n");

					// set

					sb.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 block
			e.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值