尝试使用 Oracle DB 和 Java 应用程序以便在 Linux 平台上使用 JDBC。
下载ojdbc6.jar和ojdbc6dms.jar
在 Linux 上安装了 SQLDeveloper。
在 SQLDeveloper 中建立了一个连接,名称为:Dummy
UserName : abc
Password : abc
DB Name : oracle
DB port : 8181
数据库中的表名:usertable 表中的列:用户名,联系人号码
表包含 3 个条目。
java代码片段是:
package com.demo.oracleDB;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JC {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("-------- Oracle JDBC Connection Testing ------");
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
System.out.println("Where is your Oracle JDBC Driver?");
e.printStackTrace();
return;
}
System.out.println("Oracle JDBC Driver Registered!");
Connection connection = null;
try {
connection = DriverManager.getConnection(
"jdbc:oracle:thin:@IP:8181:oracle", "abc",
"abc");
PreparedStatement Pstmt=connection.prepareStatement("select * from abc.usertable");
ResultSet rst=null;
rst=Pstmt.executeQuery();
System.out.println("Before LOOP");
System.out.println("Row is " + rst.getRow());
System.out.println("Count is " + rst.getFetchSize());
while(rst.next())
{
System.out.println("Values from DB are " );
System.out.println("UserName " + rst.getString("username"));
System.out.println("Contact NUmber " + rst.getString("contactnumber"));
}
} catch (SQLException e) {
System.out.println("Connection Failed! Check output console");
e.printStackTrace();
return;
}
if (connection != null) {
System.out.println("You made it.");
} else {
System.out.println("Failed to make connection!");
}
}
}
Linux 上的输出是
-------- Oracle JDBC Connection Testing ------
Oracle JDBC Driver Registered!
Before LOOP
Row is 0
Count is 10
尽管计数显示为 10,但不知道为什么它不进入 ResultSet 循环。表中仅存在 3 个条目,但计数仍显示为 10。
谁能告诉我查询字符串是否正确。
有人可以指导我如何让它工作,以便它开始从控制台上的表打印数据。
最佳答案
提取大小与返回的总行数不同。
例如,如果您的查询找到 10,000 个匹配项,它不会从数据库中返回所有 10,000 行。这是获取大小发挥作用的地方。如果 fetchSize 为 10,则它最初会检索前十行。
关于java - Oracle JDBC 在 Linux 上没有给出预期的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16965431/