继续关注我的C语言学习博客

林临的地盘

java学习博客
posts - 44, comments - 28, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

在java程序中如何知道数据库表的主键

Posted on 2007-08-01 17:19 lubaolin 阅读(3551) 评论(0)  编辑  收藏 所属分类: java
有同事问到在程序中怎样知道数据库表中那些字段是主键。当时不知道,晚上回来看了看JDK的文档。

       在使用JDBC来查询数据库的时候,通常的步骤是:

1. 注册驱动程序

2. 获取数据库连接

3. 执行查询语句

4. 关闭连接。

       在获得数据库连接后,就可以通过getMetaData()方法来获取DatabaseMetaData;然后通过DatabaseMetaDatagetPrimaryKeys ()方法来获取主键的信息。

       下面是我做的示例程序,该程序在JBuilder2005oracle8i下通过:
import java.sql.*;

import javax.sql.*;

public class TestJDBC {

    public TestJDBC() {

    }

 

    public static void main(String[] args) throws SQLException {

        Connection con = null;

        Statement st = null;

        ResultSet rst = null;

        try{

                     //注册数据库驱动程序

            Class.forName("oracle.jdbc.driver.OracleDriver");

                     //获取数据库连接

            con = DriverManager.getConnection("jdbc:oracle:thin:@10.60.203.80:1521:TestDB","123","123");

                     //获取主键信息

            rst = con.getMetaData().getPrimaryKeys(null,null,"USER");

                     //打印主键信息

            if (!rst.isAfterLast()) {

                rst.next();

                System.out.println(rst.getString("TABLE_NAME") + " " +

                                  rst.getString("COLUMN_NAME"));

            }

        }

        catch (Exception e){

            System.out.println(e.getLocalizedMessage());

        }

        finally{

            try{

                            //关闭连接

                if (rst != null)

                    rst.close();

                if (con != null)

                    con.close();

            }

            catch (SQLException e){

                throw e;

            }

        }

 

    }

}

 

上面的程序中,在获取主键信息的时候,语句

rst = con.getMetaData().getPrimaryKeys(null,null,"USER");

用来获取主键信息。关于该函数的详细信息,请参阅JDK的文档。这里要说的是,在测试中发现第三个参数(数据库表名)是大小写敏感的,如果写成user是查不到结果的。

 引自:http://www.blogjava.net/afrag/


只有注册用户登录后才能发表评论。


网站导航:
 
继续关注我的C语言学习博客