进行查找并编写查询以从 sql server 获取数据

Posted

技术标签:

【中文标题】进行查找并编写查询以从 sql server 获取数据【英文标题】:doing a look-up and writing a query to get the data from sql server 【发布时间】:2012-09-17 08:10:29 【问题描述】:

在使用 Tomcat 作为服务器并使用 Derby 作为数据库时,我进行了查找并执行如下查询:

        Context initContext = new InitialContext();
        Context envContext = (Context)initContext.lookup("java:comp/env");
        DataSource ds = (DataSource)envContext.lookup("jdbc/PollDatasource");
        Connection connection = ds.getConnection();
        // write the query that tells the current weight of actor
        String currentWeightQuery = "SELECT " + justPolled + ",total FROM pollresult";
        PreparedStatement currentWeight = connection.prepareStatement(currentWeightQuery);
        ResultSet cwSet = currentWeight.executeQuery();

现在我正在使用 Microsoft SQL Server 2005 并且必须从 java 桌面应用程序查询数据库。我需要做什么来查询 sql server 2005 ?我已经加载了sqlserver-jdbc驱动并连接到数据库,但是我不知道如何从数据库中获取数据。

【问题讨论】:

代码应该相同。究竟是什么问题? @JBNizet 如何定义数据源 (jdbc/PollDatasource) ?之前我在 web-app 的 context.xml 中定义 您的意思是问题在于您现在正尝试从桌面应用程序而不是 Web 应用程序访问数据库,并且不知道如何定义数据源,对吧?如果是这样,直接使用DriverManager获取1个连接,或者选择一个连接ppol实现(如C3P0)并阅读说明:mchange.com/projects/c3p0/#using_c3p0 【参考方案1】:

现在您需要迭代 ResultSet:Retrieving and Modifying Values from Result Sets。

ResultSet 实际上是 SQL Server 中游标的包装器。 在这种情况下,您可能只会得到一个结果。 您需要使用 java.sql.ResultSet 的一种 getter 方法从查询中检索值,具体取决于查询结果的预期数据类型。作为方法参数,您可以使用字符串形式的列名 (""),或者查询中列的序列号,从 1 开始。(一个!)

【讨论】:

【参考方案2】:

在上面的最后一行代码之后试试这个:

while (cwSet.next()) 
    String string = cwSet.getString(1); // instead of the 1 you can also use the name of the column as a String
    int i = cwSet.getInt("total"); //could also have used getInt(2)
    // etc...

【讨论】:

以上是关于进行查找并编写查询以从 sql server 获取数据的主要内容,如果未能解决你的问题,请参考以下文章

用于从其他表中查找数据的 SQL / Oracle SQL 代码

选择查询以从 SQL Server 获取数据

编写 SQL 查询以从下表中获取数据 [关闭]

如何使用 PHP 编写类似 sql 的查询以从 BigQuery 获取数据

将 SQL Server 存储过程转换为 Oracle 过程以从表中查询

子查询 django 查询以从对象中获取最大的不同值并返回这些对象