有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Resultset未返回具有特殊字符/,

我的oracle db表中的某些列具有具有特殊字符的值。 示例值:

| 1 | Doe, John | 44/3 Demo-City | SomeCountry |

当我从java(jdbc)代码中查询db时,第2列和第3列得到了空字符串(“”),并且没有返回任何错误。其他两列的值正确匹配


package pack;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Tester {
    
    static String url = "jdbc:oracle:thin:@domain:1521:pid";
    static String user = "userid";
    static String pwd = "password";

    public static void main(String[] args) {
        
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        
        String id = "1";    // I am receiving id value in method as parameter for reproducing purpose i am hardcoding it;
        
        String query = "SELECT * FROM EMPLOYEE WHERE ID =" + id;
        
        String name = "";
        String address = ""; 
        String country = "";

        try {
            conn = DriverManager.getConnection(url,user,pwd);
            stmt = conn.createStatement();
            rs = stmt.executeQuery(query);
            
            while(rs.next()) {
                
                name = rs.getString(2);
                address = rs.getString(3);
                country = rs.getString(4);
            }
            
            System.out.println("Name: "+name+"  Address:  "+address+"  Country:  "+country);
        }catch(Exception e) {
            e.printStackTrace();
        }
        
    }

    
}


为上述内容返回的值:-

  • id=1
  • name=“”
  • 地址=”
  • country=“SomeCountry”

请建议检索缺少的两列的值


共 (1) 个答案

  1. # 1 楼答案

    本例中的问题是因为使用了不匹配的ojdbc jar版本和安装的db。当我解决了这个问题并使用了正确版本的jar后,问题就解决了