空结果集,将JDBC与MSSQL一起使用

时间:2018-07-31 15:01:42

标签: sql-server select jdbc mssql-jdbc

我有一个Java应用程序,该应用程序已经可以与MySQL数据库一起使用。我还希望它与Microsoft SQL Server兼容,因此我在后台添加了与SQL Server(快速版本)数据库的替代连接机会。但是查询只返回空结果集。

我在SQL Server中已经完成的工作;

  • 我创建了一个新用户,并将其映射到所选数据库。
  • 我还插入了一些虚拟数据。当我在SQL Server Management Studio中执行查询时,它将返回预期的结果,因此我认为查询应该是正确的。

    我还在SQL Server中尝试了不同的配置,但在Java应用程序中仍然得到空结果集。

  • 我为用户提供了所选数据库的角色成员db_datawriter和db_datareader(我不知道这是否有必要)。
  • 对于整个服务器,我授予了使用授予权限以连接到任何数据库,连接到sql,创建任何数据库,查看任何数据库。
  • 对于数据库,我向用户授予了删除,执行,选择,插入,连接和更新授予权限。

已在Java中使用SQL Server数据库的东西:

  1. 我可以连接服务器和数据库
  2. 我也可以执行查询而不会出现任何错误,但是结果集始终为空。

我真的不知道该找我的错。我以为我没有正确配置SQL Server,因为当我对MySQL数据库执行相同的操作时,会得到正确的结果集。但是,在SQL Server Management Studio中以同一用户执行查询也会显示预期的数据。

这是一个代码片段,它执行SQL查询并将行添加到Jtable中。

public void TableShow(DefaultTableModel table_lin) 
{
    PreparedStatement ps_lin = null;
    ResultSet rs_tbl = null;
     try
     {

        String lin_sqltbl = "SELECT Linien.ID, Linien.lin_name, "
                + "Customer.cus_name FROM Customer INNER JOIN Linien "
                + "ON Customer.ID = Linien.cus_id";

         System.out.println(lin_sqltbl);


        ps_lin = this.conn.prepareStatement(lin_sqltbl);


        table_lin.setRowCount(0);
        table_lin.setColumnCount(0);


        rs_tbl = ps_lin.executeQuery();


        table_lin.addColumn("ID");
        table_lin.addColumn("Linie");
        table_lin.addColumn("Kunde");

        while(rs_tbl.next())
        {
            int col1 = rs_tbl.getInt("Linien.ID");
            String col2 = rs_tbl.getString("Linien.lin_name");
            String col3 = rs_tbl.getString("Customer.cus_name");


            Object[] row = {col1, col2, col3};
            System.out.println(i + ": " + row + "\n");
            table_lin.addRow(row);

        }

    }

    catch(SQLException ex) 
    ...

如果有人可以给我一个有用的提示,我将不胜感激。

0 个答案:

没有答案