国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

數據庫sql轉Java實體類

2019-11-14 11:46:17
字體:
來源:轉載
供稿:網友
功能不是很完善,自動生成以后,沒有轉換成小駝峰格式,待完善......
package com.bookingctrip.api.manual.utils;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.PRintWriter;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.util.Date;public class GenEntityMySQL {	private String packageOutPath = "com.bookingctrip.api.vo";// 指定實體生成所在包的路徑	private String authorName = "lv617";// 作者名字	private String tablename = "coupon_batch";// 表名	private String[] colnames; // 列名數組	private String[] colTypes; // 列名類型數組	private int[] colSizes; // 列名大小數組	private boolean f_util = false; // 是否需要導入包java.util.*	private boolean f_sql = false; // 是否需要導入包java.sql.*	// 數據庫連接	private static final String URL = "jdbc:mysql://127.0.0.1:3306/bookingctrip_api";	private static final String NAME = "root";	private static final String PASS = "123456";	private static final String DRIVER = "com.mysql.jdbc.Driver";	/*	 * 構造函數	 */	public GenEntityMysql() {		// 創(chuàng)建連接		Connection con;		// 查要生成實體類的表		String sql = "select * from " + tablename;		PreparedStatement pStemt = null;		try {			try {				Class.forName(DRIVER);			} catch (ClassNotFoundException e1) {				e1.printStackTrace();			}			con = DriverManager.getConnection(URL, NAME, PASS);			pStemt = con.prepareStatement(sql);			ResultSetMetaData rsmd = pStemt.getMetaData();			int size = rsmd.getColumnCount(); // 統(tǒng)計列			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")) {					f_util = true;				}				if (colTypes[i].equalsIgnoreCase("image") || colTypes[i].equalsIgnoreCase("text")) {					f_sql = true;				}				colSizes[i] = rsmd.getColumnDisplaySize(i + 1);			}			String content = parse(colnames, colTypes, colSizes);			try {				 File directory = new File("");				 System.out.println("絕對路徑:"+directory.getAbsolutePath());				 System.out.println("相對路徑:"+directory.getCanonicalPath());				String path = this.getClass().getResource("").getPath();				System.out.println(path);				System.out.println("src/?/" + path.substring(path.lastIndexOf("/com/", path.length())));				String outputPath = directory.getAbsolutePath() + "/src/"						+ path.substring(path.lastIndexOf("/com/", path.length()), path.length()) + initcap(tablename)						+ ".java";				String outputPath2 = directory.getAbsolutePath() + "/src/" + this.packageOutPath.replace(".", "/") + "/"						+ initcap(tablename) + ".java";				System.out.println(outputPath);				System.out.println(outputPath2);				FileWriter fw = new FileWriter(						"D://LYSTWork//bookingctrip//war//api//src//main//java//com//bookingctrip//api//vo//"								+ initcap(tablename) + ".java");				PrintWriter pw = new PrintWriter(fw);				pw.println(content);				pw.flush();				pw.close();			} catch (IOException e) {				e.printStackTrace();			}		} catch (SQLException e) {			e.printStackTrace();		}	}	/**	 * 功能:生成實體類主體代碼	 * 	 * @param colnames	 * @param colTypes	 * @param colSizes	 * @return	 */	private String parse(String[] colnames, String[] colTypes, int[] colSizes) {		StringBuffer sb = new StringBuffer();		// 判斷是否導入工具包		sb.append("package " + this.packageOutPath + ";/r/n");		if (f_util) {			sb.append("import java.util.Date;/r/n");		}		if (f_sql) {			sb.append("import java.sql.*;/r/n");		}		sb.append("/r/n");		// 注釋部分		sb.append("   /**/r/n");		sb.append("    * " + tablename + " 實體類/r/n");		sb.append("    * " + new Date() + " " + this.authorName + "/r/n");		sb.append("    */ /r/n");		// 實體部分		sb.append("/r/n/r/npublic class " + initcap(tablename) + "{/r/n");		processAllAttrs(sb);// 屬性		processAllMethod(sb);// get set方法		sb.append("}/r/n");		// System.out.println(sb.toString());		return sb.toString();	}	/**	 * 功能:生成所有屬性	 * 	 * @param sb	 */	private void processAllAttrs(StringBuffer sb) {		for (int i = 0; i < colnames.length; i++) {			sb.append("/tprivate " + sqlType2JavaType(colTypes[i]) + " " + colnames[i] + ";/r/n");		}	}	/**	 * 功能:生成所有方法	 * 	 * @param sb	 */	private void processAllMethod(StringBuffer sb) {		for (int i = 0; i < colnames.length; i++) {			sb.append("/tpublic void set" + initcap(colnames[i]) + "(" + sqlType2JavaType(colTypes[i]) + " "					+ colnames[i] + "){/r/n");			sb.append("/tthis." + colnames[i] + "=" + colnames[i] + ";/r/n");			sb.append("/t}/r/n");			sb.append("/tpublic " + sqlType2JavaType(colTypes[i]) + " get" + initcap(colnames[i]) + "(){/r/n");			sb.append("/t/treturn " + colnames[i] + ";/r/n");			sb.append("/t}/r/n");		}	}	/**	 * 功能:將輸入字符串的首字母改成大寫	 * 	 * @param str	 * @return	 */	private String initcap(String str) {		char[] ch = str.toCharArray();		if (ch[0] >= 'a' && ch[0] <= 'z') {			ch[0] = (char) (ch[0] - 32);		}		return new String(ch);	}	/**	 * 功能:獲得列的數據類型	 * 	 * @param sqlType	 * @return	 */	private String sqlType2JavaType(String sqlType) {		if (sqlType.equalsIgnoreCase("bit")) {			return "boolean";		} else if (sqlType.equalsIgnoreCase("tinyint")) {			return "byte";		} else if (sqlType.equalsIgnoreCase("smallint")) {			return "short";		} else if (sqlType.equalsIgnoreCase("int")) {			return "int";		} else if (sqlType.equalsIgnoreCase("bigint")) {			return "long";		} else if (sqlType.equalsIgnoreCase("float")) {			return "float";		} else if (sqlType.equalsIgnoreCase("decimal") || sqlType.equalsIgnoreCase("numeric")				|| sqlType.equalsIgnoreCase("real") || sqlType.equalsIgnoreCase("money")				|| sqlType.equalsIgnoreCase("smallmoney")) {			return "double";		} else if (sqlType.equalsIgnoreCase("varchar") || sqlType.equalsIgnoreCase("char")				|| sqlType.equalsIgnoreCase("nvarchar") || sqlType.equalsIgnoreCase("nchar")				|| sqlType.equalsIgnoreCase("text")) {			return "String";		} else if (sqlType.equalsIgnoreCase("datetime")) {			return "Date";		} else if (sqlType.equalsIgnoreCase("image")) {			return "Blod";		}		return null;	}	/**	 * 出口 TODO	 * 	 * @param args	 */	public static void main(String[] args) {		new GenEntityMysql();	}}
上一篇:190. Reverse Bits

下一篇:struts2值棧分析

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 天祝| 会宁县| 嘉荫县| 赫章县| 休宁县| 科尔| 彭阳县| 新巴尔虎左旗| 宁都县| 静海县| 黄陵县| 泽普县| 朝阳区| 抚州市| 桂林市| 大厂| 兴国县| 通道| 韶关市| 万全县| 泸西县| 株洲市| 屯门区| 新竹市| 民乐县| 闸北区| 宣威市| 鄂尔多斯市| 连云港市| 北碚区| 大埔区| 九龙城区| 铜鼓县| 寻乌县| 监利县| 富平县| 朝阳县| 方正县| 密山市| 红原县| 太湖县|