DataService Studio memungkinkan Anda menghasilkan API melalui code editor. Di code editor, Anda dapat menulis logika kueri menggunakan sintaksis SQL dasar atau SQL advanced. SQL advanced mencakup tag MyBatis umum, seperti if, choose, when, otherwise, trim, foreach, dan where. Tag-tag ini memungkinkan penerapan logika kueri kompleks, seperti pemeriksaan nilai null, traversal multi-nilai, kueri tabel dinamis, pengurutan dinamis, dan agregasi.
Catatan penggunaan
Topik ini menyediakan contoh penulisan logika kueri SQL advanced saat menghasilkan API di code editor. Topik ini juga menjelaskan hubungan antara kode SQL dengan Request Parameters dan Return Parameters pada halaman pembuatan API. Untuk mencegah kegagalan waktu proses, gantilah nama tabel, bidang, dan kondisi kueri dengan yang sesuai kebutuhan Anda.
Pada halaman pembuatan API, memberikan nilai contoh untuk parameter permintaan dan parameter respons bersifat opsional. Jika Anda menguji API dengan nilai yang sama setiap kali, Anda dapat memasukkannya sebagai nilai contoh. Sistem akan memuat otomatis nilai-nilai tersebut untuk parameter permintaan selama pengujian, sehingga Anda tidak perlu memasukkannya berulang kali. Nilai contoh hanya digunakan sebagai referensi.
Untuk informasi lebih lanjut tentang cara menghasilkan API di code editor, lihat Generate an API in the code editor.
Topik ini menyediakan contoh berikut untuk skenario SQL advanced (sintaksis MyBatis):
Contoh 1: Mengurutkan hasil berdasarkan bidang tabel yang berbeda sesuai kondisi
Contoh ini menggunakan pernyataan kueri SQL dinamis. Nilai var menentukan metode pengurutan yang digunakan.
Jika nilai
varadalah 1, hasil diurutkan menggunakanorder by col01.Jika nilai
varadalah 2, hasil diurutkan menggunakanorder by col02.Jika nilai
varadalah 3, hasil diurutkan menggunakanorder by col01,col02.Jika nilai
varadalah 4, hasil diurutkan menggunakanorder by col02,col01.
Berikut ini adalah contoh kode SQL.
Saat menggunakan kode ini, gantilah nama tabel, bidang, dan kondisi lainnya sesuai kebutuhan.
select col01,col02
from table_name
<choose>
<when test='var == 1'>
order by col01
</when>
<when test='var == 2'>
order by col02
</when>
<when test='var == 3'>
order by col01,col02
</when>
<when test='var == 4'>
order by col02,col01
</when>
</choose>Tabel berikut menunjukkan pengaturan parameter untuk contoh ini pada halaman pembuatan API. Anda dapat mengganti nilai contoh sesuai kebutuhan.
Request Parameters:
Parameter Name
Parameter Type
Parameter Location
Required
Example Value
Default Value
Description
var
INT
QUERY
Yes
1
1
Metode pengurutan
Return Parameters:
Parameter Name
Parameter Type
Example Value
col01
STRING
shortname
col02
STRING
name
Contoh 2: Melakukan kueri pada tabel data yang berbeda berdasarkan kondisi
Contoh ini menggunakan pernyataan kueri SQL dinamis. Nilai var menentukan tabel mana yang akan dikueri. Kueri mengembalikan data dari bidang col01.
Jika nilai
varadalah 1, kueri mengambil bidang col01 dari tabel table_name01.Jika nilai
varadalah 2, kueri mengambil bidang col01 dari tabel table_name02.
Kode berikut memberikan contohnya.
Saat menggunakan kode ini, gantilah nama tabel, bidang, dan kondisi lainnya sesuai kebutuhan.
select col01
from
<choose>
<when test='var == 1'>
table_name01
</when>
<when test='var == 2'>
table_name02
</when>
</choose>Tabel berikut menunjukkan pengaturan parameter untuk contoh ini pada halaman pembuatan API. Anda dapat mengganti nilai contoh sesuai kebutuhan.
Request Parameters:
Parameter Name
Parameter Type
Parameter Location
Required
Example Value
Default Value
var
INT
QUERY
Yes
1
1
Return Parameters:
Parameter Name
Parameter Type
Example Value
col01
STRING
123
Contoh 3: Mengontrol apakah kondisi kueri where disertakan berdasarkan apakah nilai bidang kosong
Contoh ini secara dinamis menghasilkan kondisi kueri berdasarkan nilai area dalam koleksi list untuk mengambil data.
Jika koleksi list tidak null, sistem menghasilkan kondisi kueri yang berisi nilai bidang area dengan melakukan traversal pada koleksi list dan menggabungkan setiap elemen sesuai ketentuan. Kueri mengembalikan data dari bidang area_id, area, dan amount.
Kode berikut memberikan contohnya.
Saat menggunakan kode ini, gantilah nama tabel, bidang, dan kondisi lainnya sesuai kebutuhan.
SELECT area_id, area, amount
FROM table_name
<where>
<if test='list!=null'>
area in
<foreach collection="list" open="(" close=")" separator="," item="area">
#{area}
</foreach>
</if>
</where>Tabel berikut menunjukkan pengaturan parameter untuk contoh ini pada halaman pembuatan API. Anda dapat mengganti nilai contoh sesuai kebutuhan.
Request Parameters:
Parameter Name
Parameter Type
Parameter Location
Required
Example Value
Default Value
list
STRING_LIST
QUERY
Yes
Beijing, Hangzhou
Beijing
Return Parameters:
Parameter Name
Parameter Type
Example Value
area_id
STRING
123120
area
STRING
Beijing
amount
STRING
50