`
andymu1117
  • 浏览: 37968 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

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

    博客分类:
  • java
阅读更多

 

       有同事问到在程序中怎样知道数据库表中那些字段是主键。当时不知道,晚上回来看了看JDK的文档。

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

1.  注册驱动程序

2.  获取数据库连接

3.  执行查询语句

4.  关闭连接。

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

       下面是我做的示例程序,该程序在JBuilder2005oracle8i以及Eclipse+DB2下通过:
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.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是查不到结果的。

分享到:
评论

相关推荐

    实体类转换成数据库表

    2. **实体类(Entity Class)**: 在Hibernate中,实体类是对应数据库表的Java类。这些类通常包含由`@Entity`注解标识,并且它们的属性与数据库表的列相对应。属性上的`@Id`注解表示主键,其他注解如`@Column`用于...

    java应用程序连接mysql数据库

    3. **JDBC驱动**:用于Java程序与MySQL数据库之间的通信,此处使用的是`mysql-connector-java-5.0.5-bin.jar`。 ### 集成JDBC驱动 要使Java应用程序能够访问MySQL数据库,首先需要将JDBC驱动集成到项目中。具体...

    Java源码获取数据库中表的字段信息

    在Java编程中,获取数据库中表的字段信息是一项常见的任务,尤其在开发数据操作相关的应用程序时。这通常涉及到反射、JDBC(Java Database Connectivity)以及SQL查询。下面将详细介绍如何通过Java来实现这一功能。 ...

    JAVA实验报告四数据库编程.docx

    - JDBC是Java中的一个API,用于连接Java应用程序和数据库,实现数据交互。 - 它允许开发者执行SQL语句,进行CRUD(创建、读取、更新、删除)操作。 - JDBC-ODBC桥是JDBC的一种驱动类型,它允许Java应用程序通过...

    Java实验8 数据库.doc

    在这个实验中,学生需要编写一个Java程序来操作名为Staff的数据库表。以下是对实验涉及的知识点的详细解释: 1. **Java SQL API**: 实验中使用的`java.sql`包提供了连接和操作数据库的接口和类。`Connection`接口...

    基于Java的简单数据库设计生成工具(生成Excel文档)

    在本工具中,JDBC扮演了桥梁的角色,使得Java程序能够与Oracle数据库进行交互。 3. **Apache POI**: POI是Apache软件基金会的一个开源项目,它提供了处理Microsoft Office格式文件(如Word、Excel和PowerPoint)的...

    java根据数据库表或视图创建实体

    1. **Java实体类**:在Java中,实体类通常用来表示数据库中的表,每个字段对应表中的一个列。实体类包含了表的所有属性(字段)以及getter和setter方法,用于数据的读写。这样的设计符合面向对象编程的原则,使得...

    MySql 数据库用java程序创建表以及存储过程.pdf

    本示例主要讲解如何使用Java程序创建MySQL数据库中的表以及调用存储过程。首先,确保已安装了MySQL数据库和相应的Java驱动,例如`mysql-connector-java`,这通常通过Maven或Gradle添加到项目的依赖中。 1. 创建表:...

    HIBERNATE - 符合Java习惯的关系数据库持久化

    1. **映射声明**:在XML映射文件或注解中定义实体类与数据库表的对应关系,包括字段映射、主键生成策略、外键关联等。 2. **主键生成策略**:支持多种主键生成方式,如自增(Identity)、序列(Sequence)、高/低...

    oracle 数据库表生成程序

    5. **执行SQL语句**:连接到Oracle数据库,执行生成的SQL语句,从而在数据库中创建表。 6. **错误处理和验证**:在创建过程中,可能遇到如表已存在、权限不足等错误,程序应有适当的错误处理机制。创建完成后,还应...

    数据库表映射成实体类

    在软件开发中,尤其是涉及到与数据库交互的应用程序,数据模型的构建是至关重要的。"数据库表映射成实体类"是一种常见的做法,它允许我们通过对象-关系映射(ORM)技术将数据库中的表格结构转化为Java类,这些类通常...

    java图书馆管理数据库应用

    JDBC提供了一种标准的API,使得Java程序能够与各种类型的数据库进行交互。 要建立Java和SQLite的连接,首先需要在项目中引入SQLite-JDBC驱动。可以通过Maven或Gradle将其作为依赖项添加。然后,使用`Class.forName...

    java通讯录使用Acess数据库保存

    在这个通讯录应用中,Access数据库可能包含一个名为`Contacts`的表,字段可能包括`id`(主键,用于唯一标识每个联系人)、`name`(姓名)、`phone`(电话号码)、`email`(电子邮件地址)等。设计合理的数据库结构...

    使用Java进行SQL数据库设计

    在IT行业中,数据库设计是至关重要的一步,尤其是在Java开发中。Java作为一种强大的后端编程语言,与SQL数据库的结合能够创建高效、稳定的业务系统。本文将深入探讨如何使用Java进行SQL数据库设计,涵盖相关概念、...

    Hibernate中对数据库复合主键的支持.pdf

    在创建具有复合主键的表时,需要在SQL语句中明确指定哪些字段组合构成了主键。文档中的SQL语句展示了如何创建一个包含复合主键的表: ```sql -- 创建person表 DROP TABLE person; CREATE TABLE person ( name ...

    导出数据库表结构(excel)程序

    在关系型数据库中,表结构包含了数据库表的详细信息,如表名、字段名、字段类型、长度、是否为主键、是否允许为空等。这些元数据对于理解数据的逻辑结构至关重要。通过将表结构导出到Excel,我们可以更直观地查看...

    Java期末大作业连接数据库和最短路径

    首先,我们将讨论如何在Java程序中与数据库进行交互,接着介绍最短路径算法的原理及其实现,最后将这两部分结合,阐述如何将用户信息存储在数据库中,并通过最短路径算法进行处理。 1. **数据库连接**: 在Java中...

    java JDBC与数据库访问PPT课件.pptx

    Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一种API。它提供了标准的接口,使得Java开发者可以使用相同的代码访问不同的数据库管理系统(DBMS)。本课件主要介绍了数据库的...

    Java数据库程序设计1

    在实际的Java程序设计中,常常使用JDBC(Java Database Connectivity)接口来实现与数据库的交互,包括连接数据库、执行SQL语句、处理结果集等操作。开发者需要熟悉SQL语法,以便编写高效的数据库查询和操作代码。...

    JAVA通过ACCESS数据库,对学生信息表进行添加修改删除

    - **创建数据库**:在Access中创建名为“学生信息”的数据库,并设计一个学生信息表,可能包含字段如ID(主键)、姓名、年龄、性别等。 3. **建立连接**: 使用`DriverManager.getConnection()`方法建立Java程序...

Global site tag (gtag.js) - Google Analytics