有 Java 编程相关的问题?

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

java显示来自JDBCSELECT语句的数据

我正在创建一个程序,允许显示和操作数据库中的数据。我根据找到的教程编写了以下代码:

public class JavaApplication25 {
    public static void main(String[] args) {
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            String url = "jdbc:odbc:*****";
            Connection conn = DriverManager.getConnection(url, "****", "****");

            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT * FROM dbo.Patients");

            System.out.println(rs);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

这是代码的输出:

run:
sun.jdbc.odbc.JdbcOdbcResultSet@1cda59b
BUILD SUCCESSFUL (total time: 1 second)

我的问题是,为什么程序不向我显示SQL Server数据库中的数据?谁能告诉我怎么显示它吗

我将其重新编码为:

import java.sql.*;
public class JavaApplication25 {

    public static void main(String[] args) {

    try{
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        String url = "jdbc:odbc:OJT_dsn";
        String user = "sa";
        String pass = "";
        Connection connection = DriverManager.getConnection(url, user, pass);

        Statement statement = connection.createStatement();
        String sql = "SELECT pIDNo,pLName,pFName,pMI,pSex,pStatus FROM dbo.Patients";
        ResultSet result = statement.executeQuery(sql);

        while(result.next()){
            int ID = result.getInt("ID");
            String Lname = result.getString("Lname");
            String Fname = result.getString("Fname");
            String MI = result.getString("MI");
            String Sex = result.getString("Sex");
            String Status = result.getString("Status");

            System.out.println(ID);
            System.out.println(Lname);
            System.out.println(Fname);
            System.out.println(MI);
            System.out.println(Sex);
            System.out.println(Status);
        }
        result.close();
        statement.close(); 

}catch(Exception ex){

  ex.printStackTrace();

}

}
}

我的编码有什么问题?现在我得到了这个错误:

爪哇。sql。SQLException:未找到列 在太阳下。jdbc。odbc。JdbcOdbcResultSet。findColumn(JdbcOdbcResultSet.java:1849) 在太阳下。jdbc。odbc。JdbcOdbcResultSet。getInt(JdbcOdbcResultSet.java:600) 在javaapplication25。JavaApplication25。main(JavaApplication25.java:28) 生成成功(总时间:1秒)


共 (2) 个答案

  1. # 1 楼答案

    试用

     System.out.println(rs.getString("DATA"));
    

    System.out.println(rs);只打印ResultSet对象。您需要使用ResultSet#getString(String columnLabel)方法获取列以获取列详细信息。不要忘记使用rs.next()方法来导航结果集

    编辑: 为了你的案子

    while (rs.next()) {
          // Read the values
          int pIDno = rs.getInt("pIDno");
          String pFName = rs.getString("pFName");
          String pLName = rs.getString("pLName");
    
          // Print the values
          System.out.println(name);
          System.out.println(pFName);
          System.out.println(pLName);   
    }
    
  2. # 2 楼答案

    您正在显示ResultSetObject#toString表示。您需要在其中导航

    while (rs.next()) {
          String name = rs.getString("name");
          System.out.println(name);
          // display more fields, etc.
          ...
    }
    

    也考虑使用^ {< CD3>}来防范SQL Injection攻击。

    the javadoc