Todos os produtos
Search
Central de documentação

Tablestore:Use MyBatis to query data with SQL

Última atualização: Jul 03, 2026

Integre o driver JDBC do Tablestore ao MyBatis, um framework de persistência Java, para executar consultas SQL no Tablestore em seus projetos Java. Para mais informações, consulte MyBatis.

Pré-requisitos

  • Um par de AccessKey de um usuário RAM com a permissão "Action": "ots:SQL*"

  • Uma tabela de dados e uma tabela de mapeamento (consulte Operações DDL)

Procedimento

Para integrar o MyBatis ao driver JDBC do Tablestore, siga as etapas abaixo.

Importante

O driver JDBC do Tablestore inclui pool de conexões integrado. Para evitar problemas de compatibilidade, não use ferramentas externas de pool de conexões.

Etapa 1: Instale o driver JDBC

O driver JDBC está disponível via Maven ou instalação manual.

Adicionar uma dependência Maven

Para usar o driver JDBC do Tablestore em um projeto Maven, adicione a seguinte dependência ao elemento <dependencies> no arquivo pom.xml. Este exemplo usa a versão 5.17.0:

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

Instalação manual

Baixe o driver JDBC do Tablestore e importe-o para seu projeto.

Etapa 2: Instale o MyBatis

O MyBatis está disponível via Maven ou instalação manual.

Adicionar uma dependência Maven

Para usar o MyBatis em um projeto Maven, adicione a seguinte dependência ao elemento <dependencies> no arquivo pom.xml. Este exemplo usa a versão 3.5.9:

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

Instalação manual

Baixe o pacote do MyBatis e importe-o para seu projeto.

Etapa 3: Mapear campos SQL

  1. Crie um Java Bean para as colunas da tabela de dados. Neste exemplo, trip_id é a chave primária da tabela.

    Importante

    Os nomes das variáveis membro do Java Bean devem corresponder aos nomes das colunas da tabela de dados.

    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;
    
        // The following example uses trip_id. Other fields follow the same pattern.
        public void setTrip_Id(Long trip_id){
            this.trip_id = trip_id;
        }
        public Long getTrip_Id() {
            return trip_id;
        }
    }
  2. Crie um arquivo de configuração de mapeamento e defina as condições de consulta. Crie o arquivo TripMapper.xml no diretório mybatis com o seguinte conteúdo:

    <?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>

Etapa 4: Construir o SqlSessionFactory

O SqlSessionFactory cria sessões do MyBatis conectadas ao Tablestore.

  1. Crie o arquivo de configuração do MyBatis mybatis-config.xml com o conteúdo abaixo. Substitua os espaços reservados pelos valores reais.

    <?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"/>
                <!-- The Tablestore JDBC driver requires explicit closure to exit the process. Use POOLED for long-running applications or UNPOOLED for one-time queries. -->
                <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>
            <!-- Set to the path of your mapping configuration file. -->
            <mapper resource="mybatis/TripMapper.xml"/>
        </mappers>
    </configuration>

    Parâmetro

    Tipo

    Obrigatório

    Descrição

    driver

    classe

    Sim

    Nome da classe do driver JDBC do Tablestore. Defina como com.alicloud.openservices.tablestore.jdbc.OTSDriver.

    url

    string

    Sim

    Endpoint da instância no formato jdbc:ots:endpoint/instanceName. Substitua endpoint pelo endereço de serviço da instância e instanceName pelo nome da instância.

    username

    string

    Sim

    AccessKey ID da conta Alibaba Cloud ou do usuário RAM.

    password

    string

    Sim

    AccessKey secret da conta Alibaba Cloud ou do usuário RAM.

  2. Carregue o arquivo de configuração do MyBatis para construir o SqlSessionFactory.

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

Etapa 5: Consultar dados com SqlSession

O Tablestore não suporta transações. Defina o parâmetro autoCommit do método openSession como 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();

Exemplo completo

O exemplo a seguir consulta a linha com valor de chave primária 99 e recupera os valores de colunas específicas.

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 does not support transactions. Set autoCommit to 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();
    }
}