All Products
Search
Document Center

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

Last Updated:Aug 28, 2026

LindormSearch mendukung akses SQL melalui driver Solr JDBC yang disediakan oleh Lindorm, memungkinkan aplikasi Java menggunakan antarmuka JDBC standar untuk membuat tabel, menulis data, 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.

  • Titik akhir SQL kluster LindormSearch. Untuk informasi selengkapnya, lihat Lihat titik akhir.

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:

Parameter Nilai Deskripsi
Driver class com.aliyun.lindorm.search.client.Driver Diberikan ke Class.forName()
Connection URL jdbc:lindorm:search:url=http://<endpoint>:30070 Ganti <endpoint> dengan titik akhir SQL kluster LindormSearch Anda
user Username Anda Properti autentikasi
password Password Anda Properti autentikasi

Kode contoh

Contoh berikut terhubung ke LindormSearch dan menjalankan serangkaian 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.