📄 factorytools.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 + -