数据源示例

下载 JDBC 驱动程序

此 Microsoft JDBC Driver for SQL Server 示例应用程序说明了如何使用数据源对象来连接 SQL Server 数据库。 还说明了如何使用存储过程从 SQL Server 数据库中检索数据。

此示例的代码文件名为“ConnectDataSource.java”,位于以下位置:

\<installation directory>\sqljdbc_<version>\<language>\samples\connections

要求

若要运行此示例应用程序,必须设置 classpath 以包含 mssql-jdbc jar 文件。 还将需要访问 AdventureWorks2022 示例数据库。 若要详细了解如何设置类路径,请参阅使用 JDBC 驱动程序

注意

Microsoft JDBC Driver for SQL Server 提供要使用的 mssql-jdbc 类库文件,具体使用哪个文件取决于首选的 Java Runtime Environment (JRE) 设置。 有关选择哪个 JAR 文件的详细信息,请参阅 JDBC 驱动程序的系统要求

示例

在下面的实例中,示例代码使用 SQLServerDataSource 对象的 setter 方法设置各种连接属性,然后调用 SQLServerDataSource 对象的 getConnection 方法,以返回 SQLServerConnection 对象。

接下来,示例代码使用 SQLServerConnection 对象的 prepareCall 方法来创建 SQLServerCallableStatement 对象,然后调用 executeQuery 方法来执行存储过程。

最后,示例代码使用 executeQuery 方法返回的 SQLServerResultSet 对象来循环访问存储过程返回的结果。

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.microsoft.sqlserver.jdbc.SQLServerDataSource;

public class ConnectDataSource {

    public static void main(String[] args) {

        // Create datasource.
        SQLServerDataSource ds = new SQLServerDataSource();
        ds.setUser("<user>");
        ds.setPassword("<password>");
        ds.setServerName("<server>");
        ds.setPortNumber(<port>);
        ds.setDatabaseName("AdventureWorks");

        try (Connection con = ds.getConnection();
                CallableStatement cstmt = con.prepareCall("{call dbo.uspGetEmployeeManagers(?)}");) {
            // Execute a stored procedure that returns some data.
            cstmt.setInt(1, 50);
            ResultSet rs = cstmt.executeQuery();

            // Iterate through the data in the result set and display it.
            while (rs.next()) {
                System.out.println("EMPLOYEE: " + rs.getString("LastName") + ", " + rs.getString("FirstName"));
                System.out.println("MANAGER: " + rs.getString("ManagerLastName") + ", " + rs.getString("ManagerFirstName"));
                System.out.println();
            }
        }
        // Handle any errors that may have occurred.
        catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

另请参阅

连接和检索数据