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

时间:2015-03-25 13:39:26

标签: java sql sql-server variables

我有以下查询

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,明天它可能是完全不同的东西)。

我将如何做到这一点?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

您的代码看起来像这样。你需要获得适当的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());
        }
    }
}