All Products
Search
Document Center

Lindorm:Pengembangan aplikasi menggunakan antarmuka Java JDBC

Last Updated:Feb 04, 2026

Topik ini menjelaskan cara mengembangkan aplikasi tabel lebar Lindorm dengan SQL menggunakan antarmuka standar Java Database Connectivity (JDBC) dan menyediakan contoh kode.

Prasyarat

  • Lingkungan Java dengan JDK 1.8 atau versi yang lebih baru harus diinstal.

  • Alamat IP klien telah ditambahkan ke daftar putih Lindorm. Untuk informasi selengkapnya, lihat Setel daftar putih.

Batasan

Operasi dalam topik ini hanya berlaku untuk Lindorm dalam mode tabel lebar. Lindorm Serverless tidak didukung.

Prosedur

Catatan

Anda dapat menggunakan potongan kode pada langkah-langkah berikut atau mengunduh kode contoh lengkap untuk dikompilasi dan dijalankan secara lokal. Kode contoh untuk topik ini terdapat dalam kelas com.aliyun.lindorm.sql.demo.BasicDemo.

  1. Unduh client Lindorm. Untuk proyek Maven, tambahkan dependensi berikut ke bagian dependencies pada file pom.xml.

    <dependency> 
      <groupId>com.aliyun.lindorm</groupId>  
      <artifactId>lindorm-all-client</artifactId>
      <version>2.2.1.3</version>
    </dependency>
  2. Inisialisasi client Lindorm dan buat koneksi antara client Lindorm dan data.

    // Titik akhir untuk SQL LindormTable.
    String url = "jdbc:lindorm:table:url=http://ld-bp17j28j2y7pm****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30060";
    
    // Konfigurasikan parameter koneksi.
    Properties properties = new Properties();
    
    // Username database yang diperoleh dari Konsol Lindorm.
    properties.put("user", "root");
    // Password database yang diperoleh dari Konsol Lindorm.
    properties.put("password", "test");
    // Tentukan database saat membuat koneksi. Jika tidak ditentukan, `default` akan digunakan.
    properties.put("database", "default");
    
    // Dapatkan koneksi.
    Connection connection = DriverManager.getConnection(url, properties);
    Penting

    Untuk mengelola sumber daya server, server secara otomatis memutus koneksi client Lindorm yang tidak aktif selama 10 menit. Jika Anda mencoba menggunakan kembali koneksi tersebut, akan muncul error com.aliyun.lindorm.client.shaded.org.apache.calcite.avatica.http.ConnectionDisconnectedException. Untuk mengatasi masalah ini, Anda harus membuat koneksi ulang.

    Parameter koneksi dijelaskan sebagai berikut:

    Parameter

    Contoh

    Deskripsi

    url

    jdbc:lindorm:table:url=http://ld-bp17j28j2y7pm****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30060

    Lindorm Wide Table SQL Address. Untuk mendapatkan titik akhir, lihat Lihat titik akhir.

    Penting
    • Jika aplikasi Anda di-deploy pada Instance ECS, akses instans Lindorm melalui virtual private cloud (VPC) untuk keamanan yang lebih tinggi dan latensi jaringan yang lebih rendah.

    • Jika aplikasi Anda di-deploy secara lokal, aktifkan titik akhir publik di Konsol sebelum menghubungkan ke instans Lindorm melalui jaringan publik. Untuk melakukannya, di Konsol, pilih Database Connections > Wide Table Engine. Pada tab Wide Table Engine, klik Enable Public Endpoint.

    user

    root

    Jika Anda lupa password pengguna, Anda dapat mengubahnya di sistem manajemen kluster LindormTable.

    password

    test

    database

    default

    Nama database yang akan dihubungkan. Secara default, database `default` akan dihubungkan.

  3. Setelah koneksi berhasil dibuat, gunakan API Java SQL LindormTable untuk mengakses tabel lebar Lindorm. Contoh kode berikut menunjukkan cara penggunaannya:

    /* -------------- Contoh operasi CRUD berbasis JDBC ----------------- */
    
    String tableName = "sql_table_" + new Random().nextInt(1000);
    // Buat tabel.
    try (Statement statement = connection.createStatement()) {
      String sql = "create table if not exists " + tableName + "(id VARCHAR, name VARCHAR, primary key(id))";
      int ret = statement.executeUpdate(sql);
      System.out.println(ret);
    }
    
    // Masukkan data.
    String upsertSql = "upsert into " + tableName + "(id,name) values(?,?)";
    try (PreparedStatement ps = connection.prepareStatement(upsertSql)) {
      int batchSize = 100;
      for (int i = 0; i < batchSize; i++) {
        ps.setString(1, "aa" + i);
        ps.setString(2, "bb" + i);
        // Tambahkan ke batch.
        ps.addBatch();
      }
      // Eksekusi semua batch tulis.
      // Untuk performa dan stabilitas, jangan tambahkan terlalu banyak batch.
      // Tulis maksimal ratusan batch dalam satu pemanggilan `executeBatch()`.
      int[] ret = ps.executeBatch();
      System.out.println(Arrays.toString(ret));
    }
    
    // Kueri data.
    String querySql = "select * from " + tableName + " where id=?";
    try (PreparedStatement ps = connection.prepareStatement(querySql)) {
      ps.setString(1, "aa1");
      ResultSet rs = ps.executeQuery();
      while (rs.next()) {
        String id = rs.getString(1);
        String name = rs.getString(2);
        System.out.println("id=" + id);
        System.out.println("name=" + name);
      }
    }
    
    // Hapus data.
    String deleteSql = "delete from " + tableName + " where id=?";
    try (PreparedStatement ps = connection.prepareStatement(deleteSql)) {
      ps.setString(1, "aa1");
      ps.executeUpdate();
    }
    
    // Perbarui data.
    // Pernyataan UPDATE SQL Lindorm hanya mendukung pembaruan baris tunggal, bukan pembaruan batch.
    // Artinya, klausa WHERE harus menentukan kunci primer lengkap.
    String updateSql = "update " + tableName + " set name = ? where id=?";
    try (PreparedStatement ps = connection.prepareStatement(updateSql)) {
      ps.setString(1, "bb2update");
      ps.setString(2, "aa2");
      ps.executeUpdate();
    }
    String querySql1 = "select * from " + tableName + " where id=?";
    try (PreparedStatement ps = connection.prepareStatement(querySql1)) {
      ps.setString(1, "aa2");
      ResultSet rs = ps.executeQuery();
      System.out.println("--------- update-----------");
      while (rs.next()) {
      String id = rs.getString(1);
      String name = rs.getString(2);
      System.out.println("id=" + id);
      System.out.println("name=" + name);
     }
    }
    
    // Hapus tabel.
    String dropTable = "drop table " + tableName;
    try (Statement stmt = connection.createStatement()) {
      stmt.execute(dropTable);
    }
    
    // Tutup koneksi. Pastikan koneksi ditutup setelah operasi selesai untuk mencegah kebocoran koneksi.
    connection.close();

Contoh akses LindormTable menggunakan framework umum

Bagian ini menyediakan contoh kode untuk mengakses LindormTable menggunakan berbagai framework Java:

Referensi

Untuk informasi tentang sintaks SQL LindormTable, lihat Manual Sintaks SQL.