【深入理解TcaplusDB技術】插入資料到列表指定位置示例程式碼——[List表]
阿新 • • 發佈:2022-04-18
本文準備工作
參見章節: 準備工作。
示例程式碼
示例程式碼
import com.tencent.tcaplus.client.Client;
import com.tencent.tcaplus.client.ClientFactory;
import com.tencent.tcaplus.client.Record;
import com.tencent.tcaplus.client.Request;
import com.tencent.tcaplus.client.Response;
import com.tencent.tdr.tcaplus_protocol_cs.TcaplusProtocolCsConstants;
import java.util.ArrayList;
import java.util.List;
public class Example {
public static void main(String[] arguments) {
// 1. 準備環境資訊
// 1.1. 目錄服務地址列表
List<String> dirList = new ArrayList<String>();
dirList.add("tcp://x.x.x.x:9999");
dirList.add("tcp://y.y.y.y:9999");
// 1.2. 業務ID
int appId = 1;
// 1.3. 業務密碼
String appPassword = "****************";
// 1.4. 表格組ID
int tableGroupId = 1;
// 1.5. 表格名稱
String tableName = "test";
// 2. 建立客戶端
Client client = ClientFactory.createClient(appId, tableGroupId, appPassword, dirList);
try {
// 3. 構造插入資料的請求
// 3.1. 獲取請求物件。為了提升SDK效能,Request物件是複用的
Request request = client.acquireRequest();
// 3.2. 設定請求型別和目標表名。注意:目標表必須是List表
request.setCmd(TcaplusProtocolCsConstants.TCAPLUS_CMD_LIST_ADDAFTER_REQ);
request.setTableName(tableName);
// 3.3. 指定將新資料插入到列表中的位置
// 本例中的-1,表示插入到列表的尾部。如果為0,表示插入到列表的第1條資料之後,以此類推
Record record = request.addRecord(-1);
// 3.4. 設定資料各欄位的值。注意:Key欄位和Value欄位,使用的是不同的方法設定欄位值
record.setKeyInt("gameid", 1);
record.setKeyInt("itemid", 1);
record.setKeyString("name", "test");
record.setValueByte("typeid", (byte) 1);
record.setValueByte("Data", (byte) 1);
record.setValueString("uname", "test");
// 4. 傳送請求,並獲取結果
Response response = client.poll(request);
// 5. 處理結果
if (response.getResult() == 0) {
// 插入資料成功
// TODO 可在此處新增資料插入成功的後續處理程式碼
} else {
// 插入資料失敗
// TODO 可在此處新增資料插入失敗的後續處理程式碼
}
} finally {
// 6. 銷燬客戶端物件
ClientFactory.destroyClient(client);
}