java - 无法使用我的选择查询从 SQL Server 获取数据(使用 jdbc 驱动程序)

标签 java sql-server jdbc

我正在尝试连接到使用 sql auth 的 SQL Server 2008 R2 实例。没有引发异常(我正在捕获 SqlException),我的代码如下:

                    SQLServerDataSource ds = new SQLServerDataSource();
        ds.setUser(dbUserID);
        ds.setPassword(Password);
        ds.setServerName(DBServer);
        ds.setPortNumber(1433);

        ds.setDatabaseName(dbName);

        con = (SQLServerConnection) ds.getConnection();


        Statement statement = con.createStatement();
                     resultSet = statement.executeQuery(SQL);

所有参数(用户名、密码等)100%正确。数据库正在运行等。查询是从现有表中简单的 select * 。使用后没有空对象,连接对象已设置等,但结果集有0行。

你知道我做错了什么吗?我正在使用Microsoft SQL Server JDBC Driver 3.0 .

谢谢

最佳答案

在这里做出一些假设:

  1. 您正在使用 SQL Auth,并且可以从命令行甚至 SQL Management Studio 使用 dbuserid 和密码参数进行连接。

  2. 您可以 telnet 到 1433 上的服务器,即确保不存在防火墙或端口转发问题。使用telnet 123.123.123.123 1433。您应该立即建立连接。如果没有,您需要解决这个问题。

我获取了您的代码,然后使用 JDBC 3 对我的一个 SQL 2008 数据库运行了它(请原谅代码又快又脏)。

import com.microsoft.sqlserver.jdbc.SQLServerConnection;
import com.microsoft.sqlserver.jdbc.SQLServerDataSource;

import java.sql.ResultSet;
import java.sql.Statement;

public class testdelete
{
   private static void displayRow(String title, ResultSet rs) {
      try {
         System.out.println(title);
         System.out.println("Sales ID - Pkts Sold");
         while (rs.next()) {
            System.out.println(rs.getString("SALES_ID") + " : " + rs.getString("Pkts"));
         }
      } catch (Exception e) {
         e.printStackTrace();
      }
   }

    public static void main(String[] args)
    {
        System.out.println("testing...");

        String dbUserID = "sa";
        String Password = "MYPWD";
        String DBServer = "123.123.123.123";
        String dbName = "MYDB";

        SQLServerConnection con;
        ResultSet rs;

        String SQL = "select top 10 * from Sales";

        SQLServerDataSource ds = new SQLServerDataSource();
        ds.setUser(dbUserID);
        ds.setPassword(Password);
        ds.setServerName(DBServer);
        ds.setPortNumber(1433);

        ds.setDatabaseName(dbName);

        try
        {
            con = (SQLServerConnection) ds.getConnection();
            Statement statement = con.createStatement();
            rs = statement.executeQuery(SQL);
            displayRow("SALES", rs);
        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

关于java - 无法使用我的选择查询从 SQL Server 获取数据(使用 jdbc 驱动程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4660023/

相关文章:

java - 读取文件夹中的整个文件

java - 重定向/转发我的 JSP 页面

java - Hibernate 集成访谈

mysql - 如何在weka中连接mysql数据库?

ssl - 如何使用 Liberty 上的 TLS_CLIENT_CERTIFICATE_SECURITY 选项设置 JDBC 驱动程序的 securityMechanism 属性?

javascript - 安卓 WebView : How to change JavaScript alert title text in android webview?

java - java中随机数生成器详解

SQL累进和

sql-server - 我可以在 Visual Studio 数据库项目存储过程中使用 SQLCMD 命令吗?

sql - 嵌套查询或连接