如何使用JDBC程序检索表的特定列?
在JDBC中, ResultSet 接口表示SQL查询生成的表格数据。它具有指向当前行的指针。最初,此光标位于第一行之前。
您可以使用 next() 方法移动光标,并且可以使用ResultSet接口的getter方法(getInt(),getString(),getDate()等)检索行的列值。
检索表中所需的数据:
- 连接到数据库。
-
创建Statement对象。
-
使用 executeQuery() 方法执行语句。向此方法传递String格式的select查询。要检索所有值,我们使用以下查询:
Select * from TableName;
- 要检索特定列,请将所需的列名指定为*:
select Name, DOB from Emp
阅读更多:MySQL 教程
例子
假设我们在数据库中有一个名为Emp的表,其描述如下:
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| Name | varchar(255) | YES | | NULL | |
| DOB | date | YES | | NULL | |
| Location | varchar(255) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
以下JDBC示例从Emp表中检索员工的Name和DOB值。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class RetrievingParticularColumn {
public static void main(String args[]) throws Exception {
//注册驱动程序
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//获取连接
String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
System.out.println("连接已建立......");
//创建Statement对象
Statement stmt = con.createStatement();
//检索数据
ResultSet rs = stmt.executeQuery("select Name, DOB from Emp");
System.out.println("表格的内容");
while(rs.next()) {
System.out.print("员工的姓名: "+rs.getString("Name")+", ");
System.out.print("出生日期: "+rs.getDate("DOB"));
System.out.println("");
}
}
}
输出
连接已建立......
表格的内容
员工的姓名: Amit,出生日期:1970-01-08
员工的姓名: Sumith,出生日期:1970-01-08
员工的姓名: Sudha,出生日期:1970-01-05
极客教程