全部产品
Search
文档中心

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

更新时间:Jun 24, 2025

Anda dapat menggunakan driver Java Database Connectivity (JDBC) untuk mengirim permintaan SQL ke layanan mesin pencari (LindormSearch) yang disediakan oleh Lindorm. Topik ini menjelaskan cara menggunakan driver JDBC Solr yang disediakan oleh Lindorm untuk mengakses LindormSearch.

Prasyarat

  • LindormSearch telah diaktifkan untuk instance Lindorm Anda. Untuk informasi lebih lanjut, lihat Aktifkan LindormSearch.
  • Alamat IP klien LindormSearch Anda telah ditambahkan ke daftar izin instance Lindorm. Untuk informasi lebih lanjut, lihat Konfigurasi Daftar Izin.
  • Titik akhir SQL dari kluster LindormSearch instance Lindorm Anda telah diperoleh. Untuk informasi lebih lanjut, lihat Lihat Titik Akhir.

Tambahkan dependensi Maven

Tambahkan dependensi berikut ke file pom.xml aplikasi Anda dalam Java:

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

Buat koleksi

Anda dapat membuat koleksi di halaman Cluster Management di konsol Lindorm. Untuk informasi lebih lanjut, lihat Kelola Koleksi.

Kode contoh

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 {
            // Memuat driver LindormSearch.
            Class.forName("com.aliyun.lindorm.search.client.Driver");

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

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

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

            // Membuat objek pernyataan.
            stmt = pconn.createStatement();
            // Membuat tabel.
            stmt.execute("create table if not exists test(c1 int, c2 varchar, primary key(c1))");

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

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

            // Mengambil data.
            ResultSet rs = stmt.executeQuery("select * from test order by c1 ");
            System.out.println("#####sebelum hapus:");
            while (rs.next()) {
                System.out.println("c1=" + rs.getInt("c1") + ",c2=" + rs.getString("c2"));
            }

            // Menghapus rekaman.
            stmt.execute("delete from test where c1 >3");

            // Mengambil data.
            rs = stmt.executeQuery("select * from test order by c1 ");
            System.out.println("#####setelah hapus:");
            while (rs.next()) {
                System.out.println("c1=" + rs.getInt("c1") + ",c2=" + rs.getString("c2"));
            }

            // Menghapus tabel.
            stmt.execute("drop table if exists test");
        } catch (Throwable e) {
            e.printStackTrace();
        } finally {
            // Menutup pernyataan dan koneksi.
            // Kami sarankan Anda menggunakan kumpulan koneksi untuk mengelola koneksi. Dengan cara ini, Anda tidak perlu membuat koneksi untuk setiap operasi dan menutup koneksi setelah operasi selesai. Ini membantu meningkatkan kinerja kueri. 
            try {
                if (stmt != null) {
                    stmt.close();
                }
                if (pconn != null) {
                    pconn.close();
                }
            } catch (Throwable e) {
                e.printStackTrace();
            }
        }
    }
}