如何使用 SQL 查询结果作为 Java 中变量的值?

How do I use an SQL Query Result as the value of a variable in Java?

我有以下查询

SELECT CONVERT(VARCHAR(8),(select TOP 1 LBD=latest_date 
FROM some_table
WHERE latest_date < GETDATE() 
ORDER BY latest_date DESC), 112) AS [YYYYMMDD]

这会给我一个值,例如 20150324

现在我在 Java 中有一个变量 var。

我希望 var 等于查询结果(所以今天是 var = 20150324,明天可能是完全不同的东西)。

我该如何完成?

我猜你问的是如何从 java 访问数据库。 Java 有一个 API 可以与您有驱动程序的任何数据库对话。它叫做 JDBC.

对于 SQLServer,从 Microsoft 获取驱动程序,或者使用 jtds(开源)。将驱动程序添加到您的项目中并按照有关 JDBC 如何使用它的教程进行操作(例如 http://docs.oracle.com/javase/tutorial/jdbc/)。

您的代码看起来像这样。您需要获得适当的 jdbc 驱动程序并适当地配置 url,但这只是您将如何做的一小部分示例。

import java.sql.*;

class DoQuery {

    public static void main (String[] args) {
        try {
            String url = "jdbc:sqlserver://localhost;databaseName=AdventureWorks;integratedSecurity=true;";
            Connection conn = DriverManager.getConnection(url,"","");
            Statement stmt = conn.createStatement();
            ResultSet rs;

            rs = stmt.executeQuery("SELECT CONVERT(VARCHAR(8),(select TOP 1 LBD=latest_date FROM some_table WHERE latest_date < GETDATE() ORDER BY latest_date DESC), 112) AS [YYYYMMDD]");
            while ( rs.next() ) {
                String myDate = rs.getString("YYYYMMDD");
                System.out.println(myDate);
            }
            conn.close();
        } catch (Exception e) {
            System.err.println("Got an exception! ");
            System.err.println(e.getMessage());
        }
    }
}