All Products
Search
Document Center

Lindorm:Gunakan driver JDBC untuk terhubung ke dan mengirim permintaan SQL ke LindormSearch

Last Updated:Mar 29, 2026

LindormSearch mendukung akses SQL melalui driver Solr JDBC yang disediakan oleh Lindorm, sehingga aplikasi Java dapat menggunakan antarmuka JDBC standar untuk membuat tabel, menulis, melakukan kueri, dan menghapus data.

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • Mengaktifkan LindormSearch untuk instans Lindorm Anda. Untuk informasi selengkapnya, lihat Activate LindormSearch.

  • Menambahkan alamat IP klien Anda ke daftar putih instans Lindorm. Untuk informasi selengkapnya, lihat Configure whitelists.

  • Memiliki titik akhir SQL kluster LindormSearch. Untuk informasi selengkapnya, lihat View endpoints.

Tambahkan dependensi Maven

Tambahkan dependensi berikut ke file pom.xml proyek Anda:

<dependency>
  <groupId>com.aliyun.lindorm</groupId>
  <artifactId>lindorm-all-client</artifactId>
  <version>2.1.2</version>
</dependency>

Buat koleksi

Buat koleksi pada halaman Cluster Management di Konsol Lindorm sebelum menjalankan kode contoh. Untuk informasi selengkapnya, lihat Manage collections.

Parameter koneksi

Gunakan parameter berikut untuk terhubung ke LindormSearch:

ParameterNilaiDeskripsi
Driver classcom.aliyun.lindorm.search.client.DriverDiberikan ke Class.forName()
Connection URLjdbc:lindorm:search:url=http://<endpoint>:30070Ganti <endpoint> dengan titik akhir SQL kluster LindormSearch Anda
userUsername AndaProperti autentikasi
passwordPassword AndaProperti autentikasi

Kode contoh

Contoh berikut terhubung ke LindormSearch dan menjalankan rangkaian operasi DDL dan DML: membuat tabel, memasukkan baris, melakukan kueri hasil, menghapus baris, dan menghapus tabel.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;

public class SearchSqlDemo {
    public static void main(String[] args) {
        Connection pconn = null;
        Statement stmt = null;
        try {
            // Muat driver JDBC LindormSearch.
            Class.forName("com.aliyun.lindorm.search.client.Driver");

            // Tetapkan titik akhir SQL kluster LindormSearch Anda.
            String url = "jdbc:lindorm:search:url=http://ld-xxxx:30070";

            Properties props = new Properties();
            props.put("user", "testuser");
            props.put("password", "password");

            // Buat koneksi.
            pconn = DriverManager.getConnection(url, props);

            // Buat statement.
            stmt = pconn.createStatement();

            // Buat tabel.
            stmt.execute("create table if not exists test(c1 int, c2 varchar, primary key(c1))");

            // Tulis satu baris.
            stmt.execute("upsert into test(c1,c2) values(1,'Shenzhen')");
            stmt.execute("upsert into test(c1,c2) values(2,'Shanghai')");

            // Tulis beberapa baris.
            stmt.execute("upsert into test(c1,c2) values(3,'Beijing'),(4,'Guangzhou'),(5,'Hangzhou')");

            // Lakukan kueri semua baris.
            ResultSet rs = stmt.executeQuery("select * from test order by c1");
            System.out.println("#####before delete:");
            while (rs.next()) {
                System.out.println("c1=" + rs.getInt("c1") + ",c2=" + rs.getString("c2"));
            }

            // Hapus baris dengan c1 > 3.
            stmt.execute("delete from test where c1 >3");

            // Lakukan kueri baris yang tersisa.
            rs = stmt.executeQuery("select * from test order by c1");
            System.out.println("#####after delete:");
            while (rs.next()) {
                System.out.println("c1=" + rs.getInt("c1") + ",c2=" + rs.getString("c2"));
            }

            // Hapus tabel.
            stmt.execute("drop table if exists test");
        } catch (Throwable e) {
            e.printStackTrace();
        } finally {
            try {
                if (stmt != null) {
                    stmt.close();
                }
                if (pconn != null) {
                    pconn.close();
                }
            } catch (Throwable e) {
                e.printStackTrace();
            }
        }
    }
}
Gunakan kolam koneksi untuk mengelola koneksi. Kolam koneksi menghindari beban pembuatan dan penutupan koneksi untuk setiap operasi, sehingga meningkatkan performa kueri.