两个功能:
1、获取数据库的connection
2、获取数据库表的主键PK的列名
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
/**
* Author: zhusheng3@126.com
* Date 2007-11-28 08:36:45
1,get a connection
2,get a table's Primary Key
*/
public class DatabaseUtil
{
String driverClassName;
String url;
String username;
String password;
//default init parameters from config file
public DatabaseUtil()
{
driverClassName=PropertiesUtil.getProperty("dataSource.driverClassName");
url=PropertiesUtil.getProperty("dataSource.url");
username=PropertiesUtil.getProperty("dataSource.username");
password=PropertiesUtil.getProperty("dataSource.password");
}
//user can input parameters to init specified database connection
public DatabaseUtil(String driverClassName,String url,String username,String password)
{
this.driverClassName=driverClassName;
this.url=url;
this.username=username;
this.password=password;
}
public Connection getConnection() throws Exception
{
//new a database connection
Class.forName(driverClassName);
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection connection = DriverManager.getConnection(url,username,password);
return connection;
}
/**
* get Primary Key Column of input table
* this mothod presently only support one column pk
* @param tableName
* @return List of PK columns
*/
public static String getPKColumn(String tableName)
{
String pkColumn="";
Connection conn;
DatabaseMetaData dbMeta;
ResultSet pkRSet;
try
{
//new connection from default config file
DatabaseUtil aDatabaseUtil = new DatabaseUtil();
conn = aDatabaseUtil.getConnection();
dbMeta = conn.getMetaData();
pkRSet = dbMeta.getPrimaryKeys(null, null, tableName.toUpperCase());
pkRSet.next();
//presently only support one column pk
if(pkRSet.next())
{
pkColumn=pkRSet.getString("column_name");
}
}
catch (Exception e)
{
e.printStackTrace();
}
return pkColumn;
}
public static void main(String [] args)
{
DatabaseUtil aDatabaseUtil= new DatabaseUtil();
String pkcolumn =aDatabaseUtil.getPKColumn("vmm_aggroup");
System.out.println(pkcolumn);
}
}