MyBatis adalah kerangka kerja persistensi Java yang mendukung pernyataan SQL kustom, prosedur tersimpan, dan pemetaan tingkat lanjut. Anda dapat menggunakan MyBatis untuk memanfaatkan driver JDBC untuk Tablestore guna mengakses Tablestore.
Informasi latar belakang
MyBatis adalah kerangka kerja persistensi Java yang mendukung pernyataan SQL kustom, prosedur tersimpan, dan pemetaan tingkat lanjut. MyBatis menghilangkan kebutuhan untuk menggunakan kode JDBC manual, mengonfigurasi parameter secara manual, dan mengambil set hasil. Untuk informasi lebih lanjut, lihat Dokumentasi MyBatis.
Catatan penggunaan
Fitur kueri SQL tersedia di wilayah berikut: Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Beijing), Tiongkok (Zhangjiakou), Tiongkok (Ulanqab), Tiongkok (Shenzhen), Tiongkok (Chengdu), Tiongkok (Hong Kong), Jepang (Tokyo), Singapura, Malaysia (Kuala Lumpur), Inggris (London), AS (Silicon Valley), Indonesia (Jakarta), Jerman (Frankfurt), SAU (Riyadh - Wilayah Mitra), dan AS (Virginia).
Driver JDBC untuk Tablestore memiliki kumpulan koneksi bawaan. Oleh karena itu, disarankan untuk tidak menggunakan kumpulan koneksi dari database eksternal guna mencegah masalah yang disebabkan oleh ketidakcocokan atau faktor lain yang tidak diketahui.
Prasyarat
Jika Anda ingin menanyakan data sebagai pengguna RAM, pastikan pengguna RAM telah dibuat dan semua izin operasi SQL diberikan kepada pengguna tersebut. Anda dapat mengonfigurasi
"Action": "ots:SQL*"dalam kebijakan kustom yang dilampirkan pada pengguna RAM untuk memberikan semua izin operasi SQL kepada pengguna RAM. Untuk informasi lebih lanjut, lihat Gunakan kebijakan RAM untuk memberikan izin kepada pengguna RAM.Pasangan AccessKey yang terdiri dari ID AccessKey dan Rahasia AccessKey harus diperoleh. Untuk informasi lebih lanjut, lihat Buat pasangan AccessKey.
Tabel data harus dibuat, serta tabel pemetaan untuk tabel data. Untuk informasi lebih lanjut, lihat Prosedur dan Buat tabel pemetaan untuk tabel.
Prosedur
Langkah 1: Instal driver JDBC
Anda dapat menginstal driver JDBC menggunakan salah satu metode berikut:
Unduh driver JDBC untuk Tablestore dan impor driver tersebut ke proyek. Untuk informasi lebih lanjut tentang jalur unduhan, lihat Driver JDBC untuk Tablestore.
Tambahkan dependensi ke proyek Maven.
Untuk menggunakan driver JDBC untuk Tablestore di Maven, tambahkan dependensi yang sesuai ke file pom.xml. Dalam contoh ini, driver JDBC versi 5.17.0 digunakan. Tambahkan konten berikut ke <dependencies>:
<dependency> <groupId>com.aliyun.openservices</groupId> <artifactId>tablestore-jdbc</artifactId> <version>5.17.0</version> </dependency>
Langkah 2: Instal MyBatis
Anda dapat menginstal MyBatis menggunakan salah satu metode berikut:
Unduh paket instalasi MyBatis mybatis-x.x.x.jar dan impor paket tersebut ke proyek. Untuk informasi lebih lanjut tentang jalur unduhan, lihat Paket Instalasi MyBatis.
Dalam mybatis-x.x.x.jar,
x.x.xmenunjukkan nomor versi MyBatis. Pilih paket instalasi MyBatis berdasarkan kebutuhan bisnis Anda.Tambahkan dependensi ke proyek Maven.
Untuk menggunakan MyBatis di Maven, tambahkan dependensi yang sesuai ke file pom.xml. Dalam contoh ini, SDK Tablestore untuk Java V3.5.9 digunakan. Tambahkan konten berikut ke <dependencies>:
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.9</version> </dependency>
Langkah 3: Pemetaan bidang SQL
Buat Java Bean yang berisi variabel anggota dengan nama yang sama dengan nama bidang dalam tabel data. Dalam contoh ini, trip_id adalah satu-satunya kolom kunci utama dalam tabel data.
PentingSaat membuat Java Bean, pastikan nama variabel anggota dalam Java Bean sama dengan nama bidang dalam 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; // Tambahkan metode yang digunakan untuk menentukan nama bidang dan mengembalikan nilai bidang. // Dalam contoh ini, bidang trip_id digunakan. Anda dapat menambahkan metode yang digunakan untuk menentukan nama bidang dan mengembalikan nilai bidang untuk bidang lainnya dengan cara serupa berdasarkan kebutuhan bisnis Anda. public void setTrip_Id(Long trip_id){ this.trip_id =trip_id } public Long getTrip_Id() { return trip_id; } }Buat file konfigurasi pemetaan tempat kondisi kueri didefinisikan. Contoh kode berikut menunjukkan cara membuat file konfigurasi pemetaan bernama TripMapper.xml di direktori mybatis.
Untuk informasi tentang fitur SQL yang didukung, lihat Fitur SQL.
<?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 digunakan untuk membuat sesi MyBatis. Anda dapat menggunakan sesi MyBatis untuk menghubungkan klien ke Tablestore.
Tambahkan konten berikut ke file konfigurasi MyBatis bernama mybatis-config.xml. Modifikasi item konfigurasi dalam file konfigurasi berdasarkan kebutuhan bisnis 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"/> <!-- Tentukan jenis sumber data. Untuk keluar dari proses, Anda harus mematikan driver JDBC untuk Tablestore. Pilih jenis sumber data yang sesuai dengan kebutuhan Anda. --> <!-- Jika Anda ingin program tetap berjalan setelah kueri data, Anda dapat mengatur jenis sumber data menjadi POOLED untuk mempertahankan kumpulan koneksi. Jika Anda ingin program keluar setelah kueri data, Anda hanya dapat mengatur jenis sumber data menjadi UNPOOLED. --> <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> <!-- Tentukan jalur file konfigurasi pemetaan. --> <mapper resource="mybatis/TripMapper.xml"/> </mappers> </configuration>Tabel berikut menjelaskan item yang harus Anda konfigurasikan dalam file konfigurasi MyBatis.
Item konfigurasi
Tipe
Diperlukan
Contoh
Deskripsi
driver
class
Ya
com.alicloud.openservices.tablestore.jdbc.OTSDriver
Nama kelas untuk driver JDBC untuk Tablestore. Atur item konfigurasi ini ke com.alicloud.openservices.tablestore.jdbc.OTSDriver.
url
string
Ya
jdbc:ots:https://myinstance.cn-hangzhou.ots.aliyuncs.com/myinstance
Titik akhir instance. Nilai harus dalam format berikut:
jdbc:ots:endpoint/instanceName. endpoint menunjukkan titik akhir instance. Untuk informasi lebih lanjut, lihat Titik akhir. instanceName menunjukkan nama instance. Ganti instanceName dengan nama instance sebenarnya.Saat menentukan nilai untuk item konfigurasi ini, awalan
jdbc:ots:harus disertakan dalam nilai.username
string
Ya
************************
ID AccessKey akun Alibaba Cloud Anda atau pengguna RAM.
password
string
Ya
********************************
Rahasia AccessKey akun Alibaba Cloud Anda atau pengguna RAM.
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: Buat SqlSession untuk menanyakan data
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();Kode sampel lengkap
Kode sampel berikut menunjukkan cara menanyakan baris di mana nilai kolom kunci utama adalah 99 dan mengembalikan kolom tertentu dari baris tersebut:
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 {
// Tentukan jalur file konfigurasi MyBatis.
String resource = "mybatis/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// Tablestore tidak mendukung transaksi. Oleh karena itu, Anda harus mengatur parameter yang menentukan apakah akan mengonfirmasi konfigurasi secara otomatis ke true.
SqlSession session = sqlSessionFactory.openSession(true);
// Masukkan pengenal pernyataan SELECT yang ingin Anda jalankan dan atur nilai kunci utama menjadi 99.
// Pengenal pernyataan SELECT harus dalam format berikut: Jalur file konfigurasi pemetaan.ID pernyataan SELECT yang ingin Anda jalankan. Dalam contoh ini, mybatis.TripMapper.selectTrip menunjukkan bahwa pernyataan SELECT yang ID-nya adalah selectTrip dalam file TripMapper.xml pada node mybatis dijalankan.
Trip trip = (Trip) session.selectOne("mybatis.TripMapper.selectTrip", 99L);
// Tampilkan nilai kolom yang ingin Anda peroleh.
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();
}
}Referensi
Anda dapat mengakses Tablestore menggunakan Java Database Connectivity (JDBC) atau menggunakan Hibernate untuk memanfaatkan driver JDBC untuk Tablestore. Untuk informasi lebih lanjut, lihat Gunakan Hibernate untuk menanyakan data dengan menjalankan pernyataan SQL dan Gunakan JDBC untuk mengakses Tablestore dengan menjalankan pernyataan SQL.
Anda dapat mengakses Tablestore melalui konsol Tablestore atau CLI Tablestore, atau menggunakan SDK Tablestore atau driver Tablestore untuk Go. Untuk informasi lebih lanjut, lihat Gunakan Konsol Tablestore, Gunakan Fitur Kueri SQL di CLI Tablestore, Gunakan SDK Tablestore, dan Gunakan Driver Tablestore untuk Go.
Anda juga dapat menghubungkan instance Tablestore ke DataWorks atau Data Management (DMS) dan kemudian menjalankan pernyataan SQL untuk menanyakan dan menganalisis data Tablestore. Untuk informasi lebih lanjut, lihat Hubungkan Instance Tablestore ke DataWorks dan Hubungkan Tablestore ke DMS.
Jika Anda ingin mempercepat kueri data dan komputasi dengan menjalankan pernyataan SQL, Anda dapat membuat indeks sekunder atau indeks pencarian. Untuk informasi lebih lanjut, lihat Kebijakan Pemilihan Indeks dan Pushdown Komputasi.
Anda juga dapat menggunakan mesin komputasi seperti MaxCompute, Spark, Hive, HadoopMR, Function Compute, Flink, dan PrestoDB untuk menghitung dan menganalisis data dalam tabel. Untuk informasi lebih lanjut, lihat Ikhtisar.
Untuk memvisualisasikan data, Anda dapat menggunakan Grafana. Misalnya, Anda dapat menggunakan Grafana untuk menampilkan data Tablestore dalam bentuk grafik. Untuk informasi lebih lanjut, lihat Hubungkan Tablestore ke Grafana.