[TDR Generic Tabe][Java SDK] Delete a Record

1. Interface Description

Delete data for a specified key from a specified table.

When the data of the specified key does not exist in the table, the data deletion will fail and an error code will be returned indicating that the data does not exist.

2. Version Requirements

This interface is provided in all versions without special requirements.

3. Preparations

Refer to Preparation document to complete the preparation before using this interface and create the following TDR Generic table.

Get the following information after the preparation. These details will be used by the SDK:

  1. Directory server address list
  2. App ID
  3. App access password
  4. Game zone ID
  5. Table name

4. Example Code

Basic execution process of example code:

  1. Create a client;
  2. Create a request;
  3. Send a request;
  4. Process the response;
  5. Destroy the client.

4.1 Example Code for Synchronous Call

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. Prepare the environment information
        // 1.1. Directory server address list
        List<String> dirList = new ArrayList<String>();
        dirList.add("tcp://x.x.x.x:9999");
        dirList.add("tcp://y.y.y.y:9999");
        // 1.2. App ID
        int appId = 1;
        // 1.3. App access password
        String appPassword = "****************";
        // 1.4. Game zone ID
        int zoneId = 1;
        // 1.5. Table name
        String tableName = "test";

        // 2. Create a client
        Client client = ClientFactory.createClient(appId, zoneId, appPassword, dirList);
        try {
            // 3. Construct a request to insert data
            // 3.1. Get the request object. In order to improve the SDK's performance, the Request object is reused
            Request request = client.acquireRequest();
            // 3.2. Set the request type and target table name
            request.setCmd(TcaplusProtocolCsConstants.TCAPLUS_CMD_DELETE_REQ);
            request.setTableName(tableName);
            // 3.3. Set the value of each Key field of the data to be deleted
            Record record = request.addRecord();
            record.setKeyInt("gameid", 1);
            record.setKeyInt("itemid", 1);
            record.setKeyString("name", "test");

            // 4. Send a request and get the result
            Response response = client.poll(request);

            // 5. Process the response
            if (response.getResult() == 0) {
                // Data deleting successful
                // TODO: add the code to process the result of data deleting successful here
            } else {
                // Data deleting failure
                // TODO: add the code to process the result of data deleting failure here
            }
        } finally {
            // 6. Destroy the client object
            ClientFactory.destroyClient(client);
        }
    }

}

4.2 Example Code for Asynchronous Call

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. Prepare the environment information
        // 1.1. Directory server address list
        List<String> dirList = new ArrayList<String>();
        dirList.add("tcp://x.x.x.x:9999");
        dirList.add("tcp://y.y.y.y:9999");
        // 1.2. App ID
        int appId = 1;
        // 1.3. App access password
        String appPassword = "****************";
        // 1.4. Game zone ID
        int zoneId = 1;
        // 1.5. Table name
        String tableName = "test";

        // 2. Create a client
        Client client = ClientFactory.createClient(appId, zoneId, appPassword, dirList);
        try {
            // 3. Construct a request to insert data
            // 3.1. Get the request object. In order to improve the SDK's performance, the Request object is reused
            Request request = client.acquireRequest();
            // 3.2. Set the request type and target table name
            request.setCmd(TcaplusProtocolCsConstants.TCAPLUS_CMD_DELETE_REQ);
            request.setTableName(tableName);
            // 3.3. Set the value of each Key field of the data to be deleted
            Record record = request.addRecord();
            record.setKeyInt("gameid", 1);
            record.setKeyInt("itemid", 1);
            record.setKeyString("name", "test");

            CountDownLatch latch = new CountDownLatch(1);

            // 4. Send the request asynchronously and specify the processor that returns the response. The post method will return the result immediately
            client.post(request, new Future() {

                @Override
                public void onResponse(Response response) {
                    // 5. Process the response
                    if (response.getResult() == 0) {
                        // Data deleting successful
                        // TODO: add the code to process the result of data deleting successful here
                    } else {
                        // Data deleting failure
                        // TODO: add the code to process the result of data deleting failure here
                    }
                }

            });

            latch.await();
        } finally {
            // 6. Destroy the client object
            ClientFactory.destroyClient(client);
        }
    }

}

5. Method Description in Request Object

Note: If there is an unlisted request object method, it means that this method is not needed in the scenario of deleting data, and misuse may cause an error.

Method signature Method description
void setCmd(int cmd) Set the request type (command word).
Cmd: request type, fixed to TcaplusProtocolCsConstants.TCAPLUS_CMD_INSERT_REQ.
void setTableName(String tableName) Set the target table name.
TableName: target table name, which cannot be null.
Record addRecord() Add and get the data object (Record) to be deleted. The user can then call the setKeyXXX method of the object to set the value of each key field of the data.

5.1. Method Description in Data Object

The data deletion scenario mainly uses the setKeyXXX interface of the data object to set the value of each key field of the data to be deleted.

Note: TcaplusDB supports unsigned integer type fields, but Java statements do not support unsigned integers. Therefore, when the field value exceeds the value range of the corresponding type in Java (it appears as a negative number in Java), the app needs to convert the negative number to a positive number. Note: If there is an unlisted data object method, it means that this method is not needed in the scenario of deleting data, and misuse may cause an error.

Method signature Method description
void setVersion(int version) Set the version number of the data.
Version: if it is set to a negative number, it means that version control is not started for the current data.
Version control is mainly used in optimistic locking scenarios.
void setKeyByte(String fieldName, byte value) Set the value of the Key field for the specified name.
fieldName: field name, which cannot be null. Value: the new value of the field.
Note: This method can only be called to set the field value when the field type defined in the TDR table description file corresponds to the Java byte type. Otherwise, the server will report parameter errors when processing the request. See Relationship between TDR Table Field Types and Java Types.
void setKeyShort(String fieldName, short value) Set the value of the Key field for the specified name.
fieldName: field name, which cannot be null. Value: the new value of the field.
Note: This method can only be called to set the field value when the field type defined in the TDR table description file corresponds to the Java short type. Otherwise, the server will report parameter errors when processing the request. See Relationship between TDR Table Field Types and Java Types.
void setKeyInt(String fieldName, int value) Set the value of the Key field for the specified name.
fieldName: field name, which cannot be null. Value: the new value of the field.
Note: This method can only be called to set the field value when the field type defined in the TDR table description file corresponds to the Java int type. Otherwise, the server will report parameter errors when processing the request. See Relationship between TDR Table Field Types and Java Types.
void setKeyLong(String fieldName, long value) Set the value of the Key field for the specified name.
fieldName: field name, which cannot be null. Value: the new value of the field.
Note: This method can only be called to set the field value when the field type defined in the TDR table description file corresponds to the Java long type. Otherwise, the server will report parameter errors when processing the request. See Relationship between TDR Table Field Types and Java Types.
void setKeyFloat(String fieldName, float value) Set the value of the Key field for the specified name.
fieldName: field name, which cannot be null. Value: the new value of the field.
Note: This method can only be called to set the field value when the field type defined in the TDR table description file corresponds to the Java float type. Otherwise, the server will report parameter errors when processing the request. See Relationship between TDR Table Field Types and Java Types.
void setKeyDouble(String fieldName, double value) Set the value of the Key field for the specified name.
fieldName: field name, which cannot be null. Value: the new value of the field.
Note: This method can only be called to set the field value when the field type defined in the TDR table description file corresponds to the Java double type. Otherwise, the server will report parameter errors when processing the request. See Relationship between TDR Table Field Types and Java Types.
void setKeyString(String fieldName, String value) Set the value of the Key field for the specified name.
fieldName: field name, which cannot be null. Value: the new value of the field.
Note: This method can only be called to set the field value when the field type defined in the TDR table description file corresponds to the Java String type. Otherwise, the server will report parameter errors when processing the request. See Relationship between TDR Table Field Types and Java Types.
void setKeyBlob(String fieldName, byte[] value) Set the value of the Key field for the specified name.
fieldName: field name, which cannot be null. Value: the new value of the field.
Note: This method can only be called to set the field value when the field type defined in the TDR table description file corresponds to the Java[]. Otherwise, the server will report parameter errors when processing the request. See Relationship between TDR Table Field Types and Java Types.

6. Method Description in Response Object

Note: If there is an unlisted response object method, it means that this method is not needed in the scenario of deleting data, and misuse may cause an error.

Method signature Method description
int getResult() Get the response code of the data deletion request. 0 indicates that the operation succeeds. If the value is not 0, the operation is abnormal. Common error codes include:
261: The data record of the specified key does not exist.
For details, see Error Code Meaning and Processing Method.

7. FAQ

For details, see Meaning and Handling of Error Codes.

8. Other Reference Documents

[[TDR Generic Table][C++ SDK] Interface Description for Deleting a Record](../../01C++_SDK/02Interface_Documents/05[Generic_Table]Delete_a_Record.md

[TDR Generic Table] [Go SDK] Interface Description for Deleting a Record.

[TDR Generic Table] [MySQL Protocol Compatibility Interface] Interface Description for Deleting a Record.

results matching ""

    No results matching ""