Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何使用JDBC检索数据_Database_Jdbc_Resultset - Fatal编程技术网

Database 如何使用JDBC检索数据

Database 如何使用JDBC检索数据,database,jdbc,resultset,Database,Jdbc,Resultset,我一直在尝试以下代码 正在建立连接。但是,resultSet是空的(不是空的),而数据库中有两个条目(每个字段两个)用于相同的属性 它不进入while条件。我是JDBC新手,请帮忙 我的代码是: import java.sql.*; public class JDBCTest123 { public static void main(String[] args) { System.out.println("oracle Connect Example.");

我一直在尝试以下代码

正在建立连接。但是,
resultSet
是空的(不是空的),而数据库中有两个条目(每个字段两个)用于相同的属性

它不进入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()
方法,因为应用程序可能会崩溃,然后连接将无法关闭。最后,将始终调用的块保证



第三个建议如果它在没有
异常的情况下无法工作,则可能是空表。

正确格式化输出,就像它出现的那样(尽管在这种情况下,很明显,按照终端显示的方式给出输出通常是一种好的做法。)