使用 Java 查询 Azure SQL 数据库

本快速入门演示了如何使用 Java 连接到 Azure SQL 数据库,然后使用 Transact-SQL 语句查询数据。

先决条件

若要完成本快速入门教程,请确保具备以下先决条件:

SQL Server 连接信息

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

  1. 登录到 Azure 门户
  2. 从左侧菜单中选择“SQL 数据库”,并单击“SQL 数据库”页上的数据库。
  3. 在数据库的“概述”页上,查看完全限定的服务器名称(如下图所示):可以将鼠标悬停到服务器名称上方以显示“单击以复制”选项。

    server-name

  4. 如果忘了服务器的登录信息,请导航到 SQL 数据库服务器页,以查看服务器管理员名称。 如有必要,可重置密码。

创建 Maven 项目和依赖项

  1. 从终端创建一个名为 sqltest 的新 Maven 项目。

    mvn archetype:generate "-DgroupId=com.sqldbsamples" "-DartifactId=sqltest" "-DarchetypeArtifactId=maven-archetype-quickstart" "-Dversion=1.0.0"
    
  2. 出现提示时输入“Y”。

  3. 将目录更改为 sqltest,然后使用常用文本编辑器打开 pom.xml。 使用以下代码,将 Microsoft JDBC Driver for SQL Server 添加到项目的依赖项:

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

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

插入用于查询 SQL 数据库的代码

  1. 应该已在 Maven 项目中有了一个名为 App.java 的文件,其位置为:\sqltest\src\main\java\com\sqlsamples\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";
            String dbName = "your_database";
            String user = "your_username";
            String password = "your_password";
            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();
            }
        }
    }
    

运行代码

  1. 在命令提示符下运行以下命令:

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

后续步骤