All Products
Search
Document Center

Tablestore:Gunakan MyBatis untuk mengkueri data dengan SQL

Last Updated:Jun 06, 2026

Integrasikan driver JDBC Tablestore dengan MyBatis, sebuah framework persistensi Java, untuk menjalankan kueri SQL terhadap Tablestore dalam proyek Java Anda. Untuk informasi lebih lanjut, lihat MyBatis.

Prasyarat

  • Pasangan Kunci Akses untuk Pengguna RAM dengan izin "Action": "ots:SQL*"

  • Sebuah tabel data dan tabel pemetaan (lihat Operasi DDL)

Prosedur

Untuk mengintegrasikan MyBatis dengan driver JDBC Tablestore, ikuti langkah-langkah berikut.

Penting

Driver JDBC Tablestore mencakup pooling koneksi bawaan. Untuk menghindari masalah kompatibilitas, jangan gunakan alat kolam koneksi eksternal.

Langkah 1: Instal driver JDBC

Driver JDBC tersedia melalui Maven atau instalasi manual.

Tambahkan dependensi Maven

Untuk menggunakan driver JDBC Tablestore dalam proyek Maven, tambahkan dependensi berikut ke elemen <dependencies> dalam file pom.xml Anda. Contoh ini menggunakan versi 5.17.0:

<dependency>
  <groupId>com.aliyun.openservices</groupId>
  <artifactId>tablestore-jdbc</artifactId>
  <version>5.17.0</version>
</dependency>

Instalasi manual

Unduh driver JDBC Tablestore dan impor ke dalam proyek Anda.

Langkah 2: Instal MyBatis

MyBatis tersedia melalui Maven atau instalasi manual.

Tambahkan dependensi Maven

Untuk menggunakan MyBatis dalam proyek Maven, tambahkan dependensi berikut ke elemen <dependencies> dalam file pom.xml Anda. Contoh ini menggunakan versi 3.5.9:

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.5.9</version>
</dependency>

Instalasi manual

Unduh paket MyBatis dan impor ke dalam proyek Anda.

Langkah 3: Petakan bidang SQL

  1. Buat Java Bean untuk kolom tabel data. Dalam contoh ini, trip_id adalah primary key dari tabel data.

    Penting

    Nama variabel anggota pada Java Bean harus sesuai dengan nama kolom pada tabel data.

    package mybatis;
    
    public class Trip {
    
        private long trip_id;
        private long duration;
        private String start_date;
        private String end_date;
        private long start_station_number;
        private long end_station_number;
        private String start_station;
        private String end_station;
        private String bike_number;
        private String member_type;
    
        // Contoh berikut menggunakan trip_id. Bidang lain mengikuti pola yang sama.
        public void setTrip_Id(Long trip_id){
            this.trip_id = trip_id;
        }
        public Long getTrip_Id() {
            return trip_id;
        }
    }
  2. Buat file konfigurasi pemetaan dan definisikan kondisi kueri. Buat TripMapper.xml di direktori mybatis dengan konten berikut:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="mybatis.TripMapper">
        <select id="selectTrip" resultType="mybatis.Trip">
            select * from trips where trip_id = #{id}
        </select>
    </mapper>

Langkah 4: Bangun SqlSessionFactory

SqlSessionFactory membuat session MyBatis yang terhubung ke Tablestore.

  1. Buat file konfigurasi MyBatis mybatis-config.xml dengan konten berikut. Ganti placeholder dengan nilai aktual Anda.

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"/>
                <!-- Driver JDBC Tablestore memerlukan penutupan eksplisit untuk keluar dari proses. Gunakan POOLED untuk aplikasi jangka panjang atau UNPOOLED untuk kueri satu kali. -->
                <dataSource type="UNPOOLED">
                    <property name="driver" value="com.alicloud.openservices.tablestore.jdbc.OTSDriver"/>
                    <property name="url" value="jdbc:ots:https://myinstance.cn-hangzhou.ots.aliyuncs.com/myinstance"/>
                    <property name="username" value="***********************"/>
                    <property name="password" value="********************************"/>
                </dataSource>
            </environment>
        </environments>
        <mappers>
            <!-- Atur ke path file konfigurasi pemetaan Anda. -->
            <mapper resource="mybatis/TripMapper.xml"/>
        </mappers>
    </configuration>

    Parameter

    Tipe

    Wajib

    Deskripsi

    driver

    class

    Ya

    Nama kelas driver JDBC Tablestore. Atur nilai ini ke com.alicloud.openservices.tablestore.jdbc.OTSDriver.

    url

    string

    Ya

    Titik akhir instans dalam format jdbc:ots:endpoint/instanceName. Ganti endpoint dengan alamat layanan instans Anda dan instanceName dengan nama instans Anda.

    username

    string

    Ya

    ID AccessKey dari Akun Alibaba Cloud atau Pengguna RAM Anda.

    password

    string

    Ya

    Rahasia AccessKey dari Akun Alibaba Cloud atau Pengguna RAM Anda.

  2. Muat file konfigurasi MyBatis untuk membangun SqlSessionFactory.

    String resource = "mybatis/mybatis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

Langkah 5: Kueri data dengan SqlSession

Tablestore tidak mendukung transaksi. Atur parameter autoCommit dari openSession ke true.

SqlSession session = sqlSessionFactory.openSession(true);
Trip trip = (Trip) session.selectOne("mybatis.TripMapper.selectTrip", 99L);
System.out.println("trip id: " + trip.getTrip_id());
System.out.println("start date: " + trip.getStart_date());
System.out.println("end date: " + trip.getEnd_date());
System.out.println("duration: " + trip.getDuration());
session.close();

Contoh lengkap

Contoh berikut mengkueri baris dengan nilai primary key 99 dan mengambil nilai kolom tertentu.

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import mybatis.Trip;

import java.io.IOException;
import java.io.InputStream;

public class MyBatisDemo {
    public static void main(String[] args) throws IOException {
        String resource = "mybatis/mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        // Tablestore tidak mendukung transaksi. Atur autoCommit ke true.
        SqlSession session = sqlSessionFactory.openSession(true);
        Trip trip = (Trip) session.selectOne("mybatis.TripMapper.selectTrip", 99L);
        System.out.println("trip id: " + trip.getTrip_id());
        System.out.println("start date: " + trip.getStart_date());
        System.out.println("end date: " + trip.getEnd_date());
        System.out.println("duration: " + trip.getDuration());
        session.close();
    }
}