Aracılığıyla paylaş


MySQL için Azure Veritabanı - Esnek Sunucu ile Java ve JDBC kullanma

ŞUNLAR IÇIN GEÇERLIDIR: MySQL için Azure Veritabanı - Esnek Sunucu

Bu konu başlığında, bilgileri esnek MySQL için Azure Veritabanı sunucuda depolamak ve almak için Java ve JDBC kullanan örnek bir uygulama oluşturma gösterilmektedir.

JDBC, geleneksel ilişkisel veritabanlarına bağlanmak için standart Java API'dir.

Bu makalede iki kimlik doğrulama yöntemi ekleyeceğiz: Microsoft Entra kimlik doğrulaması ve MySQL kimlik doğrulaması. Parolasız sekmesi Microsoft Entra kimlik doğrulamasını, Parola sekmesi ise MySQL kimlik doğrulamasını gösterir.

Microsoft Entra kimlik doğrulaması, Microsoft Entra Id'de tanımlanan kimlikleri kullanarak MySQL için Azure Veritabanı esnek sunucuya bağlanmaya yönelik bir mekanizmadır. Microsoft Entra kimlik doğrulaması ile veritabanı kullanıcı kimliklerini ve diğer Microsoft hizmetleri merkezi bir konumda yönetebilir ve bu da izin yönetimini basitleştirir.

MySQL kimlik doğrulaması, MySQL'de depolanan hesapları kullanır. Hesaplar için kimlik bilgileri olarak parolaları kullanmayı seçerseniz, bu kimlik bilgileri tabloda depolanır user . Bu parolalar MySQL'de depolandığından, parolaların döndürmesini kendiniz yönetmeniz gerekir.

Önkoşullar

Çalışma ortamını hazırlama

İlk olarak, bazı ortam değişkenlerini ayarlamak için aşağıdaki komutu kullanın.

export AZ_RESOURCE_GROUP=database-workshop
export AZ_DATABASE_NAME=<YOUR_DATABASE_NAME>
export AZ_LOCATION=<YOUR_AZURE_REGION>
export AZ_MYSQL_AD_NON_ADMIN_USERNAME=demo-non-admin
export AZ_USER_IDENTITY_NAME=<YOUR_USER_ASSIGNED_MANAGED_IDENTITY_NAME>
export CURRENT_USERNAME=$(az ad signed-in-user show --query userPrincipalName -o tsv)
export CURRENT_USER_OBJECTID=$(az ad signed-in-user show --query id -o tsv)

Yer tutucuları, bu makale boyunca kullanılan aşağıdaki değerlerle değiştirin:

  • <YOUR_DATABASE_NAME>: Azure genelinde benzersiz olması gereken MySQL için Azure Veritabanı esnek sunucu örneğinizin adı.
  • <YOUR_AZURE_REGION>: Kullanacağınız Azure bölgesi. Varsayılan olarak eastus kullanabilirsiniz ancak bölgeyi, yaşadığınız yere yakın bir yerde yapılandırmanızı öneririz. girerek az account list-locationskullanılabilir bölgelerin tam listesini görebilirsiniz.
  • <YOUR_USER_ASSIGNED_MANAGED_IDENTITY_NAME>: Azure'da benzersiz olması gereken, kullanıcı tarafından atanan yönetilen kimlik sunucusunun adı.

Sonra, kaynak grubu oluşturun:

az group create \
    --name $AZ_RESOURCE_GROUP \
    --location $AZ_LOCATION \
    --output tsv

MySQL için Azure Veritabanı örneği oluşturma

MySQL için Azure Veritabanı esnek sunucu örneği oluşturma ve yönetici kullanıcı ayarlama

Oluşturduğunuz ilk şey, yönetilen MySQL için Azure Veritabanı esnek sunucu örneğidir.

Not

Azure portalını kullanarak MySQL için Azure Veritabanı esnek sunucu örneği oluşturma bölümünde MySQL sunucuları oluşturma hakkında daha ayrıntılı bilgi edinebilirsiniz.

Azure CLI kullanıyorsanız, yeterli izne sahip olduğundan emin olmak için aşağıdaki komutu çalıştırın:

az login --scope https://graph.microsoft.com/.default

Sunucuyu oluşturmak için aşağıdaki komutu çalıştırın:

az mysql flexible-server create \
    --resource-group $AZ_RESOURCE_GROUP \
    --name $AZ_DATABASE_NAME \
    --location $AZ_LOCATION \
    --yes \
    --output tsv

Atamak üzere kullanıcı tarafından atanan bir kimlik oluşturmak için aşağıdaki komutu çalıştırın:

az identity create \
    --resource-group $AZ_RESOURCE_GROUP \
    --name $AZ_USER_IDENTITY_NAME

Önemli

Kullanıcı tarafından atanan kimliği oluşturduktan sonra, Genel Yönetici istrator veya Privileged Role Yönetici istrator'ınızdan bu kimlik için aşağıdaki izinleri vermesini isteyin: User.Read.All, GroupMember.Read.Allve Application.Read.ALL. Daha fazla bilgi için Active Directory kimlik doğrulamasının İzinler bölümüne bakın.

Kimliği Microsoft Entra yöneticisi oluşturmak üzere esnek MySQL için Azure Veritabanı sunucuya atamak için aşağıdaki komutu çalıştırın:

az mysql flexible-server identity assign \
    --resource-group $AZ_RESOURCE_GROUP \
    --server-name $AZ_DATABASE_NAME \
    --identity $AZ_USER_IDENTITY_NAME

Microsoft Entra yönetici kullanıcısını ayarlamak için aşağıdaki komutu çalıştırın:

az mysql flexible-server ad-admin create \
    --resource-group $AZ_RESOURCE_GROUP \
    --server-name $AZ_DATABASE_NAME \
    --display-name $CURRENT_USERNAME \
    --object-id $CURRENT_USER_OBJECTID \
    --identity $AZ_USER_IDENTITY_NAME

Önemli

Yöneticiyi ayarlarken, tam yönetici izinlerine sahip MySQL için Azure Veritabanı esnek sunucu örneğine yeni bir kullanıcı eklenir. MySQL için Azure Veritabanı esnek sunucu örneği başına yalnızca bir Microsoft Entra yöneticisi oluşturulabilir ve başka bir yöneticinin seçilmesi, sunucu için yapılandırılan mevcut Microsoft Entra yöneticisinin üzerine yazılır.

Bu komut, küçük MySQL için Azure Veritabanı esnek bir sunucu örneği oluşturur ve Active Directory yöneticisini oturum açmış kullanıcıya ayarlar.

Oluşturduğunuz MySQL için Azure Veritabanı esnek sunucu örneğinde adlı flexibleserverdbboş bir veritabanı vardır.

Sorun mu yaşıyorsunuz? Bize bildirin.

MySQL için Azure Veritabanı esnek sunucu örneğiniz için güvenlik duvarı kuralı yapılandırma

MySQL için Azure Veritabanı esnek sunucu örnekleri varsayılan olarak güvenlidir. Gelen bağlantılara izin vermeyen bir güvenlik duvarı vardır.

Komut yerel IP adresinizi zaten algıladığı ve MySQL sunucusunda ayarladığı için flexible-server create Bash kullanıyorsanız bu adımı atlayabilirsiniz.

MySQL için Azure Veritabanı esnek sunucu örneğinize windows bilgisayarda Linux için Windows Alt Sistemi (WSL) üzerinden bağlanıyorsanız WSL ana bilgisayar kimliğini güvenlik duvarınıza eklemeniz gerekir. WSL'de aşağıdaki komutu çalıştırarak konak makinenizin IP adresini alın:

sudo cat /etc/resolv.conf

teriminden nameserversonra IP adresini kopyalayın ve WSL IP Adresi için bir ortam değişkeni ayarlamak üzere aşağıdaki komutu kullanın:

AZ_WSL_IP_ADDRESS=<the-copied-IP-address>

Ardından aşağıdaki komutu kullanarak sunucunun güvenlik duvarını WSL tabanlı uygulamanızda açın:

az mysql flexible-server firewall-rule create \
    --resource-group $AZ_RESOURCE_GROUP \
    --name $AZ_DATABASE_NAME \
    --start-ip-address $AZ_WSL_IP_ADDRESS \
    --end-ip-address $AZ_WSL_IP_ADDRESS \
    --rule-name allowiprange \
    --output tsv

MySQL veritabanı yapılandırma

Aşağıdaki komutu kullanarak adlı demo yeni bir veritabanı oluşturun:

az mysql flexible-server db create \
    --resource-group $AZ_RESOURCE_GROUP \
    --database-name demo \
    --server-name $AZ_DATABASE_NAME \
    --output tsv

Yönetici olmayan bir MySQL kullanıcısı oluşturma ve izin verme

Ardından yönetici olmayan bir kullanıcı oluşturun ve veritabanındaki demo tüm izinleri verin.

Not

MySQL kullanıcıları oluşturma hakkında daha ayrıntılı bilgileri MySQL için Azure Veritabanı'de kullanıcı oluşturma bölümünden okuyabilirsiniz.

Yönetici olmayan kullanıcı oluşturmak için create_ad_user.sql adlı bir SQL betiği oluşturun. Aşağıdaki içeriği ekleyin ve yerel olarak kaydedin:

export AZ_MYSQL_AD_NON_ADMIN_USERID=$CURRENT_USER_OBJECTID

cat << EOF > create_ad_user.sql
SET aad_auth_validate_oids_in_tenant = OFF;

CREATE AADUSER '$AZ_MYSQL_AD_NON_ADMIN_USERNAME' IDENTIFIED BY '$AZ_MYSQL_AD_NON_ADMIN_USERID';

GRANT ALL PRIVILEGES ON demo.* TO '$AZ_MYSQL_AD_NON_ADMIN_USERNAME'@'%';

FLUSH privileges;

EOF

Ardından aşağıdaki komutu kullanarak SQL betiğini çalıştırarak Microsoft Entra yönetici olmayan kullanıcıyı oluşturun:

mysql -h $AZ_DATABASE_NAME.mysql.database.azure.com --user $CURRENT_USERNAME --enable-cleartext-plugin --password=$(az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken) < create_ad_user.sql

Şimdi geçici SQL betik dosyasını kaldırmak için aşağıdaki komutu kullanın:

rm create_ad_user.sql

Yeni java projesi oluşturma

Sık kullandığınız IDE'yi kullanarak yeni bir Java projesi oluşturun ve kök dizinine bir pom.xml dosyası ekleyin:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>

    <properties>
        <java.version>1.8</java.version>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.30</version>
        </dependency>
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-identity-extensions</artifactId>
            <version>1.0.0</version>
        </dependency>
    </dependencies>
</project>

Bu dosya, projenizi kullanacak şekilde yapılandıran bir Apache Maven dosyasıdır:

  • Java 8
  • Java için yeni bir MySQL sürücüsü

MySQL için Azure Veritabanı bağlanmak için yapılandırma dosyası hazırlama

Src/main/resources/database.properties dosyası oluşturmak ve yapılandırma ayrıntılarını eklemek için proje kök dizininde aşağıdaki betiği çalıştırın:

mkdir -p src/main/resources && touch src/main/resources/database.properties

cat << EOF > src/main/resources/database.properties
url=jdbc:mysql://${AZ_DATABASE_NAME}.mysql.database.azure.com:3306/demo?sslMode=REQUIRED&serverTimezone=UTC&defaultAuthenticationPlugin=com.azure.identity.extensions.jdbc.mysql.AzureMysqlAuthenticationPlugin&authenticationPlugins=com.azure.identity.extensions.jdbc.mysql.AzureMysqlAuthenticationPlugin
user=${AZ_MYSQL_AD_NON_ADMIN_USERNAME}
EOF

Not

Uygulamanızda veri kaynağı olarak Mysql Bağlan ionPoolDataSource sınıfını kullanıyorsanız url'deki "defaultAuthenticationPlugin=com.azure.identity.extensions.jdbc.mysql.AzureMysqlAuthenticationPlugin" öğesini kaldırın.

mkdir -p src/main/resources && touch src/main/resources/database.properties

cat << EOF > src/main/resources/database.properties
url=jdbc:mysql://${AZ_DATABASE_NAME}.mysql.database.azure.com:3306/demo?sslMode=REQUIRED&serverTimezone=UTC&authenticationPlugins=com.azure.identity.extensions.jdbc.mysql.AzureMysqlAuthenticationPlugin
user=${AZ_MYSQL_AD_NON_ADMIN_USERNAME}
EOF

Not

Yapılandırma özelliği url?serverTimezone=UTC , JDBC sürücüsüne veritabanına bağlanırken UTC tarih biçimini (veya Eşgüdümlü Evrensel Saat) kullanmasını bildirmek için eklenmiştir. Aksi takdirde Java sunucunuz veritabanıyla aynı tarih biçimini kullanmaz ve bu da hataya neden olur.

Veritabanı şemasını oluşturmak için SQL dosyası oluşturma

Veritabanı şeması oluşturmak için src /main/resources/schema.sql dosyası kullanacaksınız. Aşağıdaki içerikle bu dosyayı oluşturun:

DROP TABLE IF EXISTS todo;
CREATE TABLE todo (id SERIAL PRIMARY KEY, description VARCHAR(255), details VARCHAR(4096), done BOOLEAN);

Uygulamayı kodlama

Veritabanına bağlanın

Ardından, MySQL sunucunuzda verileri depolamak ve almak için JDBC kullanacak Java kodunu ekleyin.

Src /main/java/DemoApplication.java dosyası oluşturun ve aşağıdaki içeriği ekleyin:

package com.example.demo;

import com.mysql.cj.jdbc.AbandonedConnectionCleanupThread;

import java.sql.*;
import java.util.*;
import java.util.logging.Logger;

public class DemoApplication {

    private static final Logger log;

    static {
        System.setProperty("java.util.logging.SimpleFormatter.format", "[%4$-7s] %5$s %n");
        log =Logger.getLogger(DemoApplication.class.getName());
    }

    public static void main(String[] args) throws Exception {
        log.info("Loading application properties");
        Properties properties = new Properties();
        properties.load(DemoApplication.class.getClassLoader().getResourceAsStream("database.properties"));

        log.info("Connecting to the database");
        Connection connection = DriverManager.getConnection(properties.getProperty("url"), properties);
        log.info("Database connection test: " + connection.getCatalog());

        log.info("Create database schema");
        Scanner scanner = new Scanner(DemoApplication.class.getClassLoader().getResourceAsStream("schema.sql"));
        Statement statement = connection.createStatement();
        while (scanner.hasNextLine()) {
            statement.execute(scanner.nextLine());
        }

        /*
        Todo todo = new Todo(1L, "configuration", "congratulations, you have set up JDBC correctly!", true);
        insertData(todo, connection);
        todo = readData(connection);
        todo.setDetails("congratulations, you have updated data!");
        updateData(todo, connection);
        deleteData(todo, connection);
        */

        log.info("Closing database connection");
        connection.close();
        AbandonedConnectionCleanupThread.uncheckedShutdown();
    }
}

Sorun mu yaşıyorsunuz? Bize bildirin.

Bu Java kodu, MySQL için Azure Veritabanı esnek sunucu örneğine bağlanmak ve verilerinizi depolayacak bir şema oluşturmak için daha önce oluşturduğunuz database.properties ve schema.sql dosyalarını kullanır.

Bu dosyada verileri eklemek, okumak, güncelleştirmek ve silmek için yöntemlere açıklama eklediğimizi görebilirsiniz: Bu yöntemleri bu makalenin geri kalanında kodlayacaksınız ve bunları birbiri ardına çözebileceksiniz.

Not

Veritabanı kimlik bilgileri database.properties dosyasının kullanıcı ve parola özelliklerinde depolanır. Özellikler dosyası bağımsız değişken olarak geçirildiğinden, bu kimlik bilgileri yürütülürken DriverManager.getConnection(properties.getProperty("url"), properties);kullanılır.

Not

AbandonedConnectionCleanupThread.uncheckedShutdown(); Sonundaki satır, uygulamayı kapatırken bir iç iş parçacığını yok etmek için MySQL sürücüsüne özgü bir komutdur. Güvenli bir şekilde yoksayılabilir.

Artık bu ana sınıfı sık kullandığınız araçla yürütebilirsiniz:

  • IDE'nizi kullanarak DemoApplication sınıfına sağ tıklayıp bunu yürütebilmeniz gerekir.
  • Maven kullanarak şu komutu yürüterek uygulamayı çalıştırabilirsiniz: mvn exec:java -Dexec.mainClass="com.example.demo.DemoApplication".

Uygulamanın MySQL için Azure Veritabanı esnek sunucu örneğine bağlanması, bir veritabanı şeması oluşturması ve ardından konsol günlüklerinde görebileceğiniz gibi bağlantıyı kapatması gerekir:

[INFO   ] Loading application properties
[INFO   ] Connecting to the database
[INFO   ] Database connection test: demo
[INFO   ] Create database schema
[INFO   ] Closing database connection

Etki alanı sınıfı oluşturma

sınıfının yanında DemoApplication yeni Todo bir Java sınıfı oluşturun ve aşağıdaki kodu ekleyin:

package com.example.demo;

public class Todo {

    private Long id;
    private String description;
    private String details;
    private boolean done;

    public Todo() {
    }

    public Todo(Long id, String description, String details, boolean done) {
        this.id = id;
        this.description = description;
        this.details = details;
        this.done = done;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getDetails() {
        return details;
    }

    public void setDetails(String details) {
        this.details = details;
    }

    public boolean isDone() {
        return done;
    }

    public void setDone(boolean done) {
        this.done = done;
    }

    @Override
    public String toString() {
        return "Todo{" +
                "id=" + id +
                ", description='" + description + '\'' +
                ", details='" + details + '\'' +
                ", done=" + done +
                '}';
    }
}

Bu sınıf, schema.sql betiğini yürütürken oluşturduğunuz tabloya todoeşlenen bir etki alanı modelidir.

MySQL için Azure Veritabanı veri ekleme

src/main/java/DemoApplication.java dosyasında, main yönteminden sonra veritabanına veri eklemek için aşağıdaki yöntemi ekleyin:

private static void insertData(Todo todo, Connection connection) throws SQLException {
    log.info("Insert data");
    PreparedStatement insertStatement = connection
            .prepareStatement("INSERT INTO todo (id, description, details, done) VALUES (?, ?, ?, ?);");

    insertStatement.setLong(1, todo.getId());
    insertStatement.setString(2, todo.getDescription());
    insertStatement.setString(3, todo.getDetails());
    insertStatement.setBoolean(4, todo.isDone());
    insertStatement.executeUpdate();
}

Artık yönteminde aşağıdaki iki satırın açıklamalarını main kaldırabilirsiniz:

Todo todo = new Todo(1L, "configuration", "congratulations, you have set up JDBC correctly!", true);
insertData(todo, connection);

Ana sınıfın yürütülmesi artık aşağıdaki çıkışı üretmelidir:

[INFO   ] Loading application properties
[INFO   ] Connecting to the database
[INFO   ] Database connection test: demo
[INFO   ] Create database schema
[INFO   ] Insert data
[INFO   ] Closing database connection

MySQL için Azure Veritabanı'dan veri okuma

Ardından, kodunuzun düzgün çalıştığını doğrulamak için daha önce eklenen verileri okuyun.

src/main/java/DemoApplication.java dosyasında, yönteminden insertData sonra veritabanındaki verileri okumak için aşağıdaki yöntemi ekleyin:

private static Todo readData(Connection connection) throws SQLException {
    log.info("Read data");
    PreparedStatement readStatement = connection.prepareStatement("SELECT * FROM todo;");
    ResultSet resultSet = readStatement.executeQuery();
    if (!resultSet.next()) {
        log.info("There is no data in the database!");
        return null;
    }
    Todo todo = new Todo();
    todo.setId(resultSet.getLong("id"));
    todo.setDescription(resultSet.getString("description"));
    todo.setDetails(resultSet.getString("details"));
    todo.setDone(resultSet.getBoolean("done"));
    log.info("Data read from the database: " + todo.toString());
    return todo;
}

Artık yönteminde aşağıdaki satırın açıklamasını main kaldırabilirsiniz:

todo = readData(connection);

Ana sınıfın yürütülmesi artık aşağıdaki çıkışı üretmelidir:

[INFO   ] Loading application properties
[INFO   ] Connecting to the database
[INFO   ] Database connection test: demo
[INFO   ] Create database schema
[INFO   ] Insert data
[INFO   ] Read data
[INFO   ] Data read from the database: Todo{id=1, description='configuration', details='congratulations, you have set up JDBC correctly!', done=true}
[INFO   ] Closing database connection

Sorun mu yaşıyorsunuz? Bize bildirin.

Esnek MySQL için Azure Veritabanı sunucuda verileri güncelleştirme

Ardından, daha önce eklediğiniz verileri güncelleştirin.

Src/main/java/DemoApplication.java dosyasında, yönteminden sonra veritabanının readData içindeki verileri güncelleştirmek için aşağıdaki yöntemi ekleyin:

private static void updateData(Todo todo, Connection connection) throws SQLException {
    log.info("Update data");
    PreparedStatement updateStatement = connection
            .prepareStatement("UPDATE todo SET description = ?, details = ?, done = ? WHERE id = ?;");

    updateStatement.setString(1, todo.getDescription());
    updateStatement.setString(2, todo.getDetails());
    updateStatement.setBoolean(3, todo.isDone());
    updateStatement.setLong(4, todo.getId());
    updateStatement.executeUpdate();
    readData(connection);
}

Artık yönteminde aşağıdaki iki satırın açıklamalarını main kaldırabilirsiniz:

todo.setDetails("congratulations, you have updated data!");
updateData(todo, connection);

Ana sınıfın yürütülmesi artık aşağıdaki çıkışı üretmelidir:

[INFO   ] Loading application properties
[INFO   ] Connecting to the database
[INFO   ] Database connection test: demo
[INFO   ] Create database schema
[INFO   ] Insert data
[INFO   ] Read data
[INFO   ] Data read from the database: Todo{id=1, description='configuration', details='congratulations, you have set up JDBC correctly!', done=true}
[INFO   ] Update data
[INFO   ] Read data
[INFO   ] Data read from the database: Todo{id=1, description='configuration', details='congratulations, you have updated data!', done=true}
[INFO   ] Closing database connection

Esnek MySQL için Azure Veritabanı sunucudaki verileri silme

Son olarak, daha önce eklediğiniz verileri silin.

Src/main/java/DemoApplication.java dosyasında, yönteminden updateData sonra veritabanının içindeki verileri silmek için aşağıdaki yöntemi ekleyin:

private static void deleteData(Todo todo, Connection connection) throws SQLException {
    log.info("Delete data");
    PreparedStatement deleteStatement = connection.prepareStatement("DELETE FROM todo WHERE id = ?;");
    deleteStatement.setLong(1, todo.getId());
    deleteStatement.executeUpdate();
    readData(connection);
}

Artık yönteminde aşağıdaki satırın açıklamasını main kaldırabilirsiniz:

deleteData(todo, connection);

Ana sınıfın yürütülmesi artık aşağıdaki çıkışı üretmelidir:

[INFO   ] Loading application properties
[INFO   ] Connecting to the database
[INFO   ] Database connection test: demo
[INFO   ] Create database schema
[INFO   ] Insert data
[INFO   ] Read data
[INFO   ] Data read from the database: Todo{id=1, description='configuration', details='congratulations, you have set up JDBC correctly!', done=true}
[INFO   ] Update data
[INFO   ] Read data
[INFO   ] Data read from the database: Todo{id=1, description='configuration', details='congratulations, you have updated data!', done=true}
[INFO   ] Delete data
[INFO   ] Read data
[INFO   ] There is no data in the database!
[INFO   ] Closing database connection

Kaynakları temizleme

Tebrikler! Esnek MySQL için Azure Veritabanı sunucudan veri depolamak ve almak için JDBC kullanan bir Java uygulaması oluşturdunuz.

Bu hızlı başlangıç sırasında kullanılan tüm kaynakları temizlemek için aşağıdaki komutu kullanarak kaynak grubunu silin:

az group delete \
    --name $AZ_RESOURCE_GROUP \
    --yes

Sonraki adımlar