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

首頁 > 學院 > 開發設計 > 正文

數據庫sql轉Java實體類

2019-11-14 10:50:43
字體:
來源:轉載
供稿:網友
功能不是很完善,自動生成以后,沒有轉換成小駝峰格式,待完善......
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() {		// 創建連接		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(); // 統計列			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();	}}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中西区| 白河县| 雅安市| 鸡东县| 苏尼特右旗| 南京市| 专栏| 沂源县| 红安县| 杭锦旗| 三明市| 乌拉特后旗| 龙游县| 舟山市| 大竹县| 马山县| 潍坊市| 金湖县| 贡嘎县| 周宁县| 平利县| 宁安市| 陈巴尔虎旗| 隆德县| 绥中县| 乐安县| 永兴县| 会理县| 会泽县| 安塞县| 凤台县| 金塔县| 洛隆县| 遂平县| 肇东市| 万山特区| 临泉县| 平遥县| 通榆县| 安陆市| 屏东县|