有同事问到在程序中怎样知道数据库表中那些字段是主键。当时不知道,晚上回来看了看JDK的文档。
在使用JDBC来查询数据库的时候,通常的步骤是:
1.
注册驱动程序
2.
获取数据库连接
3.
执行查询语句
4.
关闭连接。
在获得数据库连接后,就可以通过getMetaData()方法来获取DatabaseMetaData;然后通过DatabaseMetaData的getPrimaryKeys ()方法来获取主键的信息。
下面是我做的示例程序,该程序在JBuilder2005+oracle8i以及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`用于...
3. **JDBC驱动**:用于Java程序与MySQL数据库之间的通信,此处使用的是`mysql-connector-java-5.0.5-bin.jar`。 ### 集成JDBC驱动 要使Java应用程序能够访问MySQL数据库,首先需要将JDBC驱动集成到项目中。具体...
在Java编程中,获取数据库中表的字段信息是一项常见的任务,尤其在开发数据操作相关的应用程序时。这通常涉及到反射、JDBC(Java Database Connectivity)以及SQL查询。下面将详细介绍如何通过Java来实现这一功能。 ...
- JDBC是Java中的一个API,用于连接Java应用程序和数据库,实现数据交互。 - 它允许开发者执行SQL语句,进行CRUD(创建、读取、更新、删除)操作。 - JDBC-ODBC桥是JDBC的一种驱动类型,它允许Java应用程序通过...
在这个实验中,学生需要编写一个Java程序来操作名为Staff的数据库表。以下是对实验涉及的知识点的详细解释: 1. **Java SQL API**: 实验中使用的`java.sql`包提供了连接和操作数据库的接口和类。`Connection`接口...
在本工具中,JDBC扮演了桥梁的角色,使得Java程序能够与Oracle数据库进行交互。 3. **Apache POI**: POI是Apache软件基金会的一个开源项目,它提供了处理Microsoft Office格式文件(如Word、Excel和PowerPoint)的...
1. **Java实体类**:在Java中,实体类通常用来表示数据库中的表,每个字段对应表中的一个列。实体类包含了表的所有属性(字段)以及getter和setter方法,用于数据的读写。这样的设计符合面向对象编程的原则,使得...
本示例主要讲解如何使用Java程序创建MySQL数据库中的表以及调用存储过程。首先,确保已安装了MySQL数据库和相应的Java驱动,例如`mysql-connector-java`,这通常通过Maven或Gradle添加到项目的依赖中。 1. 创建表:...
1. **映射声明**:在XML映射文件或注解中定义实体类与数据库表的对应关系,包括字段映射、主键生成策略、外键关联等。 2. **主键生成策略**:支持多种主键生成方式,如自增(Identity)、序列(Sequence)、高/低...
5. **执行SQL语句**:连接到Oracle数据库,执行生成的SQL语句,从而在数据库中创建表。 6. **错误处理和验证**:在创建过程中,可能遇到如表已存在、权限不足等错误,程序应有适当的错误处理机制。创建完成后,还应...
在软件开发中,尤其是涉及到与数据库交互的应用程序,数据模型的构建是至关重要的。"数据库表映射成实体类"是一种常见的做法,它允许我们通过对象-关系映射(ORM)技术将数据库中的表格结构转化为Java类,这些类通常...
JDBC提供了一种标准的API,使得Java程序能够与各种类型的数据库进行交互。 要建立Java和SQLite的连接,首先需要在项目中引入SQLite-JDBC驱动。可以通过Maven或Gradle将其作为依赖项添加。然后,使用`Class.forName...
在这个通讯录应用中,Access数据库可能包含一个名为`Contacts`的表,字段可能包括`id`(主键,用于唯一标识每个联系人)、`name`(姓名)、`phone`(电话号码)、`email`(电子邮件地址)等。设计合理的数据库结构...
在IT行业中,数据库设计是至关重要的一步,尤其是在Java开发中。Java作为一种强大的后端编程语言,与SQL数据库的结合能够创建高效、稳定的业务系统。本文将深入探讨如何使用Java进行SQL数据库设计,涵盖相关概念、...
在创建具有复合主键的表时,需要在SQL语句中明确指定哪些字段组合构成了主键。文档中的SQL语句展示了如何创建一个包含复合主键的表: ```sql -- 创建person表 DROP TABLE person; CREATE TABLE person ( name ...
在关系型数据库中,表结构包含了数据库表的详细信息,如表名、字段名、字段类型、长度、是否为主键、是否允许为空等。这些元数据对于理解数据的逻辑结构至关重要。通过将表结构导出到Excel,我们可以更直观地查看...
首先,我们将讨论如何在Java程序中与数据库进行交互,接着介绍最短路径算法的原理及其实现,最后将这两部分结合,阐述如何将用户信息存储在数据库中,并通过最短路径算法进行处理。 1. **数据库连接**: 在Java中...
Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一种API。它提供了标准的接口,使得Java开发者可以使用相同的代码访问不同的数据库管理系统(DBMS)。本课件主要介绍了数据库的...
在实际的Java程序设计中,常常使用JDBC(Java Database Connectivity)接口来实现与数据库的交互,包括连接数据库、执行SQL语句、处理结果集等操作。开发者需要熟悉SQL语法,以便编写高效的数据库查询和操作代码。...
- **创建数据库**:在Access中创建名为“学生信息”的数据库,并设计一个学生信息表,可能包含字段如ID(主键)、姓名、年龄、性别等。 3. **建立连接**: 使用`DriverManager.getConnection()`方法建立Java程序...