繁体   English   中英

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

[英]Can't get data from a SQL Server with my select query (using jdbc driver)

我正在尝试连接到使用sql身份验证的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%正确。 数据库正在运行等。查询是从存在的表中简单选择*。 使用完后没有空对象,没有设置连接对象,但是结果集有0行。

有什么想法我做错了吗? 我正在使用Microsoft SQL Server JDBC Driver 3.0

谢谢

在这里做一些假设:

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

  2. 您可以在1433上telnet到服务器,即确保没有防火墙或端口转发问题。 使用telnet 123.123.123.1231433。您应该立即建立连接。 如果不是,则需要修复该问题。

我拿了您的代码,然后使用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();
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM