获取数据库表的主键列名工具

15 篇文章 0 订阅
9 篇文章 0 订阅
两个功能:
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);

	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值