データベースのメタデータをJDBCのDatabaseMetaで取得します。
3229 ワード
もっと読む
原文の住所:http://blog.csdn.net/hu_shengyang/articale/detail/7861261
原文の住所:http://blog.csdn.net/hu_shengyang/articale/detail/7861261
package com.adam.test.entity;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import com.adam.dev.utils.JdbcByPropertiesUtil;
public class TestDatabaseMetaData {
private JdbcByPropertiesUtil jbpu = JdbcByPropertiesUtil.getInstance();
public JdbcByPropertiesUtil getJbpu() {
return jbpu;
}
public void setJbpu(JdbcByPropertiesUtil jbpu){
this.jbpu = jbpu;
}
public Properties getProperties(){
Properties pros = JdbcByPropertiesUtil.readPropertiesFile();
return pros;
}
/**
* jdbc.properties
* @return
* @throws Exception
*/
public String getDataSourceName()throws Exception{
Properties pros = this.getProperties();
String dbName = pros.get("dbName").toString();
return dbName;
}
/**
*
* @return
*/
public List getTablesAndViews()throws Exception{
Connection conn = jbpu.getConnection();
ResultSet rs = null;
List list = new ArrayList();
try {
Properties pros = this.getProperties();
String schema = pros.get("user").toString();
DatabaseMetaData metaData = conn.getMetaData();
rs = metaData.getTables(null, schema, null, new String[]{"TABLE","VIEW"});
while(rs.next()){
String tableName = rs.getString("TABLE_NAME");
list.add(tableName);
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
jbpu.close(rs, null, conn);
}
return list;
}
/**
*
* @param tableName
* @return
* @throws Exception
*/
public String generateBean()throws Exception{
Connection conn = jbpu.getConnection();
ResultSet rs = null;
String strJavaBean = "";
String tableName = this.getDataSourceName();
try{
Properties pros = this.getProperties();
String schema = pros.get("user").toString();
DatabaseMetaData metaData = conn.getMetaData();
rs = metaData.getColumns(null, schema, tableName, null);
Map map = new HashMap();
while(rs.next()){
String columnName = rs.getString("COLUMN_NAME");//
String dataType = rs.getString("DATA_TYPE");// ( java.sql.Types )
String typeName = rs.getString("TYPE_NAME");// ( :VACHAR2)
map.put(columnName, dataType+":"+typeName);
}
// javaBean
}catch(Exception e){
e.printStackTrace();
}finally{
jbpu.close(rs, null, conn);
}
return strJavaBean;
}
}