⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 factorytools.java

📁 JAVA很有用的一个框架通常使用情况是SSH 一般用于做一个小的CRM
💻 JAVA
字号:
package com.cstp.hiber.prin.common;

import java.io.File;
import java.io.FileWriter;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;

public class FactoryTools {
	public void createEntity(){
		Connection conn=null;
		Statement stmt=null;
		ResultSet rs=null;
		
		try{
			Class.forName("org.gjt.mm.mysql.Driver");
			conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test_db","root","123456");;
			DatabaseMetaData dbmd=conn.getMetaData();
			rs=dbmd.getTables("test_db",null,null,new String[]{"TABLE"});
			List<String> tableList=new ArrayList<String>();
			
			while(rs.next()){
				Object tableName=rs.getObject(3);
				System.out.println(tableName);
				tableList.add(tableName+"");
			}
			rs.close();
			
			for(int i=0;i<tableList.size();i++){
				String tableName=tableList.get(i);
				System.out.println("正在创建表实体:"+tableName);
				this.createTableBeanItem(conn, tableName);
			}
			
			//stmt=conn.createStatement();
			conn.close();
		}
		catch(Exception e){
			e.printStackTrace();
		}
	}
	
	public void createTableBeanItem(Connection conn,String tableName){
		Statement stmt=null;
		ResultSet rs=null;
		try{
			stmt=conn.createStatement();
			String sql="select * from "+tableName;
			rs=stmt.executeQuery(sql);
			
			ResultSetMetaData rsmd=rs.getMetaData();
			
			int columnCount=rsmd.getColumnCount();
			List<String> columNames=new ArrayList<String>();
			
			LinkedHashMap columnTypeList=new LinkedHashMap();
			
			for(int i=0;i<columnCount;i++){
				String columnName=rsmd.getColumnName(i+1);
				columNames.add(columnName);
				columnTypeList.put(columnName, rsmd.getColumnClassName(i+1));
			}
			
			this.doCreate(columNames, columnTypeList, tableName);
			
			rs.close();
			stmt.close();
		}
		catch(Exception e){
			e.printStackTrace();
		}
		finally{
			if(rs!=null)
				rs=null;
			if(stmt!=null)
				stmt=null;
		}
	}
	
	
	public void doCreate(List<String> columNames,LinkedHashMap columnTypeList,String tableName){
		StringBuffer buffer=new StringBuffer();
		buffer.append("package com.cstp.hiber.prin.daodao;\r\n");
		buffer.append("\r\n");
		//buffer.append("import java.util.Date;\r\n");
		buffer.append("import java.util.HashMap;\r\n");
		buffer.append("import java.util.LinkedHashMap;\r\n");
		buffer.append("\r\n");
		buffer.append("import com.cstp.hiber.prin.common.TableInfoIntl;\r\n");
		buffer.append("\r\n");
		buffer.append("public class "+ this.formatTableBeanName(tableName) +" implements TableInfoIntl {\r\n");
		
		//构造私有成员
		for(int i=0;i<columNames.size();i++){
			String table_columnName=columNames.get(i);
			buffer.append("\tprivate "+ columnTypeList.get(table_columnName) +" "+ this.formartTableColumnToBeanProperty(table_columnName) +";\r\n");
		}
		
		buffer.append("\r\n");
		buffer.append("\tpublic static String table_name=\""+ tableName +"\";\r\n");
		buffer.append("\r\n");
		
		buffer.append("\tprivate HashMap<String,Object> bx_____table_values=new HashMap<String,Object>();\r\n");
		buffer.append("\r\n");
		
		buffer.append("\tpublic HashMap<String, Object> getColumnValues() {\r\n");
		buffer.append("\t\treturn this.bx_____table_values;\r\n");
		buffer.append("\t}\r\n");
		
		buffer.append("\tpublic String getTableName() {\r\n");
		buffer.append("\t\treturn "+ this.formatTableBeanName(tableName) +".table_name;\r\n");
		buffer.append("\t}\r\n");
		
		buffer.append("\tpublic LinkedHashMap<String,String> getColumns() {\r\n");
		buffer.append("\tLinkedHashMap<String,String> columnMapping=new LinkedHashMap<String,String>();\r\n");
		
		for(int i=0;i<columNames.size();i++){
			String table_columnName=columNames.get(i);
			buffer.append("\tcolumnMapping.put(\""+ this.formartTableColumnToBeanProperty(table_columnName) +"\",\""+ table_columnName +"\");\r\n");
		}
		buffer.append("\t\r\n");
		buffer.append("\treturn columnMapping;\r\n");
		buffer.append("\t}\r\n");

		
		for(int i=0;i<columNames.size();i++){
			String table_columnName=columNames.get(i);
			buffer.append("\tpublic "+ columnTypeList.get(table_columnName) +" "+ this.formartColumnGetMethod(table_columnName) +"() {\r\n");
			buffer.append("\t\treturn "+ this.formartTableColumnToBeanProperty(table_columnName) +";\r\n");
			buffer.append("\t}\r\n");

			buffer.append("\tpublic void "+ this.formatColumnSetMethod(table_columnName) +"("+ columnTypeList.get(table_columnName) +" "+ this.formartTableColumnToBeanProperty(table_columnName) +") {\r\n");
			buffer.append("\t\tthis.bx_____table_values.put(\""+ this.formartTableColumnToBeanProperty(table_columnName) +"\", "+ this.formartTableColumnToBeanProperty(table_columnName) +");\r\n");
			buffer.append("\t\tthis."+ this.formartTableColumnToBeanProperty(table_columnName) +" = "+ this.formartTableColumnToBeanProperty(table_columnName) +";\r\n");
			buffer.append("\t}\r\n");
		}
		buffer.append("}");
		File file=new File("F:/cstp/soft/workspace/HibernatePrinciple/src/com/cstp/hiber/prin/daodao/"+this.formatTableBeanName(tableName)+".java");
		try{
			FileWriter writer=new FileWriter(file);
			writer.write(buffer.toString());
			writer.flush();
			writer.close();
		}
		catch(Exception e){
			e.printStackTrace();
		}
		
		
	}
	
	private String formatTableBeanName(String tableName){
		
		
		String tmpName=tableName.toLowerCase().replace("_","");
		
		tmpName=tmpName.trim();
		tmpName=tmpName.substring(0, 1).toUpperCase()+tmpName.substring(1);
		return tmpName;
	}
	
	/**
	 * 通过数据库表列名构造get方法
	 * @param columnName
	 * @return
	 */
	private String formartColumnGetMethod(String table_columnName){
		String tmpColumn=this.formatTableBeanName(table_columnName);
		return "get"+tmpColumn;
	}
	
	/**
	 * 通过数据库表列名构造set方法
	 * @param columnName
	 * @return
	 */
	public String formatColumnSetMethod(String table_columnName){
		String tmpColumn=this.formatTableBeanName(table_columnName);
		return "set"+tmpColumn;
	}
	
	
	/**
	 * 将数据库表的列名转换为JavaBean中的属性名
	 * @param columnName
	 * @return
	 */
	public String formartTableColumnToBeanProperty(String table_columnName){
		return this.formatTableBeanName(table_columnName).toLowerCase();
	}
	
	
	
	
	
	public static void main(String aaa[]){
		FactoryTools tools=new FactoryTools();
		tools.createEntity();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -