快速入门:使用 Java 查询 Azure SQL 数据库

本文演示了如何使用 Java 连接到 Azure SQL 数据库。 然后即可使用 T-SQL 语句来查询数据。

先决条件

若要完成此示例,请确保具备以下先决条件:

  • Azure SQL 数据库。 可以根据下述快速入门中的一个的说明在 Azure SQL 数据库中创建数据库,然后对其进行配置:

    单一数据库
    创建 Portal
    CLI
    PowerShell
    配置 服务器级别 IP 防火墙规则
    加载数据 根据快速入门加载的 Adventure Works
  • 已为操作系统安装与 Java 相关的软件:

获取 SQL Server 连接信息

获取连接到 Azure SQL 数据库所需的连接信息。 在后续过程中,将需要完全限定的服务器名称或主机名称、数据库名称和登录信息。

  1. 登录到 Azure 门户

  2. 导航到“SQL 数据库”页面。

  3. 在“概述”页中,查看单一数据库的“服务器名称”旁边的完全限定的服务器名称。 若要复制服务器名称或主机名称,请将鼠标悬停在其上方,然后选择“复制”图标。

创建项目

  1. 从命令提示符创建名为 sqltest 的新 Maven 项目。

    mvn archetype:generate "-DgroupId=com.sqldbsamples" "-DartifactId=sqltest" "-DarchetypeArtifactId=maven-archetype-quickstart" "-Dversion=1.0.0" --batch-mode
    
  2. 将文件夹更改为 sqltest,然后使用喜欢的文本编辑器打开 pom.xml。 使用以下代码,将 Microsoft JDBC Driver for SQL Server 添加到项目的依赖项。

    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
        <version>7.0.0.jre8</version>
    </dependency>
    
  3. 另请在 pom.xml 中向项目添加以下属性。 如果没有 properties 节,可以将其添加到 dependencies 后面。

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    
  4. 保存并关闭 pom.xml。

添加用于查询数据库的代码

  1. 此时,你应该在 Maven 项目中有了一个名为 App.java 的文件,其位置为:

    ..\sqltest\src\main\java\com\sqldbsamples\App.java

  2. 打开该文件并将其内容替换为以下代码。 然后,为服务器、数据库、用户和密码添加相应的值。

    package com.sqldbsamples;
    
    import java.sql.Connection;
    import java.sql.Statement;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.DriverManager;
    
    public class App {
    
        public static void main(String[] args) {
    
            // Connect to database
            String hostName = "your_server.database.chinacloudapi.cn"; // update me
            String dbName = "your_database"; // update me
            String user = "your_username"; // update me
            String password = "your_password"; // update me
            String url = String.format("jdbc:sqlserver://%s:1433;database=%s;user=%s;password=%s;encrypt=true;"
                + "hostNameInCertificate=*.database.chinacloudapi.cn;loginTimeout=30;", hostName, dbName, user, password);
            Connection connection = null;
    
            try {
                connection = DriverManager.getConnection(url);
                String schema = connection.getSchema();
                System.out.println("Successful connection - Schema: " + schema);
    
                System.out.println("Query data example:");
                System.out.println("=========================================");
    
                // Create and execute a SELECT SQL statement.
                String selectSql = "SELECT TOP 20 pc.Name as CategoryName, p.name as ProductName "
                    + "FROM [SalesLT].[ProductCategory] pc "  
                    + "JOIN [SalesLT].[Product] p ON pc.productcategoryid = p.productcategoryid";
    
                try (Statement statement = connection.createStatement();
                ResultSet resultSet = statement.executeQuery(selectSql)) {
    
                    // Print results from select statement
                    System.out.println("Top 20 categories:");
                    while (resultSet.next())
                    {
                        System.out.println(resultSet.getString(1) + " "
                            + resultSet.getString(2));
                    }
                    connection.close();
                }
            }
            catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    

    Note

    代码示例使用适用于 Azure SQL 的 AdventureWorksLT 示例数据库。

运行代码

  1. 在命令提示符下运行此应用。

    mvn package -DskipTests
    mvn -q exec:java "-Dexec.mainClass=com.sqldbsamples.App"
    
  2. 验证是否返回了前 20 行,然后关闭应用窗口。

后续步骤