如何使用 JDBC 检索数据
Posted
技术标签:
【中文标题】如何使用 JDBC 检索数据【英文标题】:How to retrieve data using JDBC 【发布时间】:2012-07-01 08:47:23 【问题描述】:我一直在尝试使用以下代码。
正在建立连接。但是resultSet
是空的(非空),而数据库中有几个相同的条目(每个 2 个字段)。
不进入while条件。我是 JDBC 新手,请帮忙!
我的代码是:
import java.sql.*;
public class JDBCTest123
public static void main(String[] args)
System.out.println("oracle Connect Example.");
Connection conn = null;
String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE";
String driver = "oracle.jdbc.driver.OracleDriver";
String userName = "system";
String password = "mumpymamai";
Statement stmt = null;
String query = "select * from table1";
try
Class.forName(driver);
conn = DriverManager.getConnection(url, userName, password);
stmt = conn.createStatement();
System.out.println("Connected to the database");
ResultSet rs = stmt.executeQuery(query);
while (rs.next())
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
conn.close();
System.out.println("Disconnected from database");
catch (Exception e)
e.printStackTrace();
输出是:
oracle Connect Example.
Connected to the database
Disconnected from database
【问题讨论】:
按原样正确格式化输出(尽管在这种情况下很明显,按照终端显示的方式提供输出通常是一个好习惯。) 【参考方案1】:建议很少。我建议您使用更快、更安全的PreparedStatements
。
PreparedStatement ps = null;
conn = DriverManager.getConnection(url, userName, password);
ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
while (rs.next())
// do some work
第二个建议,在 finally 块中调用 close()
方法,因为应用程序可能会崩溃,然后您的连接将不会关闭。 finally 块保证将始终被调用。
第三个建议,如果没有Exception
就不行,可能你有空表。
【讨论】:
以上是关于如何使用 JDBC 检索数据的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 jdbc 连接从数据库中检索数据并将其显示在 jsp 文本字段中
如何从vert.x scala jdbc客户端检索数据库元数据?
如何优化我的 Google 脚本以更快地检索 SQL 数据?
JDBC:如何从结果集中检索 SQL COUNT 函数的结果?