我一直在尝试使用以下代码。
正在建立连接。但是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
建议太少了。我建议您使用更快,更安全的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()
方法,因为应用程序可能会崩溃,然后您的连接将不会关闭。最后,将始终调用的块保证。
第三个建议,如果没有Exception
它不起作用,可能你有空表。