すべてのプロダクト
Search
ドキュメントセンター

Lindorm:LindormDataSource に基づくアプリケーション開発

最終更新日:Feb 11, 2026

LindormDataSource は、すぐに使える最適化された設定を提供し、シングルゾーンおよびマルチゾーンインスタンスを含むすべてのタイプの Lindorm インスタンスへのアクセスをサポートします。これは、Lindorm にアクセスするためのパフォーマンス専有型の JDBC 接続プールです。マルチゾーンの Lindorm ワイドテーブルインスタンスを使用する場合、LindormDataSource は、最寄りゾーンアクセス、指定ゾーンアクセス、ランダムゾーンアクセスなど、複数のアクセス戦略をサポートします。

前提条件

接続パラメーターの説明

説明

パラメーターの説明は、このトピックのすべての例に適用されます。

MySQL プロトコルを使用して Lindorm にアクセスする場合、接続 URL または Properties ファイルに接続設定が指定されていないと、LindormDataSource は SQL アクセスパフォーマンスを向上させるために最適化された設定を自動的に入力します。したがって、次の表にリストされているパラメーターを提供するだけで済みます。詳細については、「付録」をご参照ください。

パラメーター

説明

JdbcUrl (jdbcUrl)

MySQL プロトコル用の Java JDBC 接続 URL。フォーマット: jdbc:mysql://<MySQL-compatible endpoint>/<database name>

データベース名が指定されていない場合、デフォルトで "default" データベースが使用されます。MySQL 互換エンドポイントを取得するには、「接続エンドポイントの表示」をご参照ください。

重要
  • アプリケーションが Elastic Compute Service (ECS) インスタンスにデプロイされている場合は、Virtual Private Cloud (VPC) を使用して Lindorm インスタンスにアクセスすると、セキュリティが向上し、ネットワーク遅延が低減します。

  • アプリケーションがオンプレミスにデプロイされている場合は、パブリックネットワーク経由で Lindorm インスタンスに接続する前に、コンソールでパブリックエンドポイントを有効にしてください。

  • VPC アクセスの場合、JdbcUrl を MySQL 互換アドレスの VPC エンドポイントに設定します。パブリックネットワーク アクセスの場合、JdbcUrl を MySQL 互換アドレスの Internet エンドポイントに設定します。

Username (username)

ワイドテーブルエンジンに接続するためのユーザー名とパスワードです。

パスワードを忘れた場合は、Lindorm ワイドテーブルエンジンのクラスター管理システムでリセットしてください。詳細については、「ユーザーパスワードの変更」をご参照ください。

Password (password)

JDBC アプリケーションの統合

  1. LindormDataSource を使用して Lindorm ワイドテーブルエンジンに接続する前に、必要な依存関係をインストールする必要があります。

    Maven プロジェクトの場合、dependencies セクションの pom.xml ファイルに次の依存関係を追加します。

    <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-j</artifactId>
        <version>8.3.0</version>
    </dependency>
    
    <dependency>
        <groupId>com.aliyun.lindorm</groupId>
        <artifactId>lindorm-sql-datasource</artifactId>
        <version>2.2.1.4</version>
    </dependency>
  2. 次の 2 つの方法のいずれかで Lindorm ワイドテーブルエンジンに接続できます:

    • ビジネスコードで接続を確立する

      import com.aliyun.lindorm.sql.client.datasource.LindormDataSource;
      import com.aliyun.lindorm.sql.client.datasource.LindormDataSourceConfig;
      import java.sql.Connection;
      import java.sql.PreparedStatement;
      import java.sql.ResultSet;
      
      public class test {
          public static void main(String[] args) throws Exception{
              LindormDataSourceConfig lindormDataSourceConfig = new LindormDataSourceConfig();
              lindormDataSourceConfig.setJdbcUrl("jdbc:mysql://ld-bp1mq0tdzbx1m****-proxy-lindorm-pub.lindorm.aliyuncs.com:33060/database");
              lindormDataSourceConfig.setUsername("r***");
              lindormDataSourceConfig.setPassword("p***");
              lindormDataSourceConfig.setMaximumPoolSize(30);
              LindormDataSource lindormDataSource = new LindormDataSource(lindormDataSourceConfig);
      
              try (Connection connection = lindormDataSource.getConnection()) {
                  String sql = "select * from " + tableName + " where id=?";
                  try (PreparedStatement ps = connection.prepareStatement(sql)) {
                      ps.setString(1, "001");
                      ResultSet rs = ps.executeQuery();
                      while (rs.next()) {
                          String id = rs.getString(1);
                          String name = rs.getString(2);
                          System.out.println("id=" + id);
                          System.out.println("name=" + name);
                      }
                  }
              }
      
          }
      }
    • 設定ファイルを使用して接続を確立する

      1. Maven プロジェクトの src/main/resources ディレクトリに lindorm.properties ファイルを作成し、次の内容を追加します:

        jdbcUrl=jdbc:mysql://ld-bp1mq0tdzbx1m****-proxy-lindorm-pub.lindorm.aliyuncs.com:33060/default
        username=r***
        password=p***
        maximumPoolSize=30
      2. ビジネスロジックに次のコードを追加します:

        LindormDataSourceConfig config = new LindormDataSourceConfig("lindorm.properties");
        LindormDataSource lindormDataSource = new LindormDataSource(config);

Spring Boot 2.x アプリケーションの統合

  1. LindormDataSource を使用して Lindorm ワイドテーブルエンジンに接続する前に、必要な依存関係をインストールする必要があります。

    Maven プロジェクトの場合、dependencies セクションの pom.xml ファイルに次の依存関係を追加します。

    <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-j</artifactId>
        <version>8.3.0</version>
    </dependency>
    
    <dependency>
        <groupId>com.aliyun.lindorm</groupId>
        <artifactId>lindorm-sql-datasource-springboot-starter</artifactId>
        <version>2.2.1.4</version>
    </dependency>
  2. Spring 設定を追加します。Maven プロジェクトの src/main/resources ディレクトリに application.yml ファイルを作成し、次の内容を追加します:

    spring:
      datasource:
        lindorm:
          jdbc-url: jdbc:mysql://ld-bp167w8n1ab5p****-proxy-sql-lindorm.lindorm.rds.aliyuncs.com:33060/db1
          username: r***
          password: t***
          maximum-pool-size: 30
  3. ビジネスコードを記述します。

    @Service
    public class DatabaseService {
    
      @Autowired
      private DataSource dataSource;
    
      public void createUser(User user) throws SQLException {
        String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
    
        try (Connection conn = dataSource.getConnection();
            PreparedStatement ps = conn.prepareStatement(sql)) {
          ps.setString(1, user.getName());
          ps.setInt(2, user.getAge());
          ps.executeUpdate();
        }
      }
    }

Spring Boot 3.x アプリケーションの統合

  1. LindormDataSource を使用して Lindorm ワイドテーブルエンジンに接続する前に、必要な依存関係をインストールする必要があります。

    Maven プロジェクトの場合、pom.xml ファイルの dependencies セクションに、以下の依存関係を追加します。

    <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-j</artifactId>
        <version>8.3.0</version>
    </dependency>
    
    <dependency>
        <groupId>com.aliyun.lindorm</groupId>
        <artifactId>lindorm-sql-datasource-springboot-3-starter</artifactId>
        <version>2.2.1.4</version>
    </dependency>
  2. Spring 設定を追加します。Maven プロジェクトの src/main/resources ディレクトリに application.yml ファイルを作成し、次の内容を追加します:

    spring:
      datasource:
        lindorm:
          jdbc-url: jdbc:mysql://ld-bp167w8n1ab5p****-proxy-sql-lindorm.lindorm.rds.aliyuncs.com:33060/db1
          username: r***
          password: r***
          maximum-pool-size: 30
  3. ビジネスコードを記述します。

    @Service
    public class DatabaseService {
    
      @Autowired
      private DataSource dataSource;
    
      public void createUser(User user) throws SQLException {
        String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
    
        try (Connection conn = dataSource.getConnection();
            PreparedStatement ps = conn.prepareStatement(sql)) {
          ps.setString(1, user.getName());
          ps.setInt(2, user.getAge());
          ps.executeUpdate();
        }
      }
    }

MyBatis アプリケーションの統合

Spring Boot で MyBatis を使用する場合は、Spring Boot 内で MyBatis を設定する必要があります。Spring Boot を使用せずに MyBatis を単独で使用する場合は、次の手順に従ってください。

  1. LindormDataSource を使用して Lindorm ワイドテーブルエンジンに接続する前に、必要な依存関係をインストールする必要があります。

    Maven プロジェクトでは、pom.xml ファイルの dependencies セクションに、次の依存関係を追加します。

    <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-j</artifactId>
        <version>8.3.0</version>
    </dependency>
    
    <dependency>
        <groupId>com.aliyun.lindorm</groupId>
        <artifactId>lindorm-sql-datasource</artifactId>
        <version>2.2.1.4</version>
    </dependency>
  2. 次の 2 つの方法のいずれかで Lindorm ワイドテーブルエンジンに接続できます:

    • ビジネスコードで接続を確立する

      SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
      
      LindormDataSource dataSource = new LindormDataSource();
      dataSource.setJdbcUrl("jdbc:mysql://ld-bp1mq0tdzbx1m****-proxy-lindorm-pub.lindorm.aliyuncs.com:33060");
      dataSource.setUsername("r***");
      dataSource.setPassword("r***");
      sessionFactoryBean.setDataSource(dataSource);
      
      SqlSessionFactory sessionFactory = sessionFactoryBean.getObject();
      try (SqlSession session = sessionFactory.openSession(true)) {
          UserMapper mapper = session.getMapper(UserMapper.class);
          mapper.insert(user);
      }
    • 設定ファイルを使用して接続を確立する

      1. MyBatis と互換性のある DataSourceFactory を定義します。

        package com.example.datasource;
        
        import com.aliyun.lindorm.sql.client.datasource.LindormDataSource;
        import com.aliyun.lindorm.sql.client.datasource.LindormDataSourceConfig;
        import org.apache.ibatis.datasource.DataSourceFactory;
        
        public class LindormDataSourceFactory implements DataSourceFactory {
          private Properties props;
        
          @Override
          public void setProperties(Properties props) {
            this.props = props;
          }
        
          @Override
          public DataSource getDataSource() {
            LindormDataSourceConfig config = new LindormDataSourceConfig(props);
            LindormDataSource dataSource = new LindormDataSource(config);
            return dataSource;
          }
        }
        
      2. mybatis-config.properties ファイルを、Maven プロジェクトの src/main/resources ディレクトリに作成し、以下の内容を追加します:

        <?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"/>
                    <dataSource type="com.example.datasource.LindormDataSourceFactory">
                        <property name="jdbcUrl"
                                  value="jdbc:mysql://ld-8vbn68478unu8****-proxy-sql-lindorm.lindorm.rds.aliyuncs.com:33060/lindorm_test"/>
                        <property name="username" value="r***"/>
                        <property name="password" value="t***"/>
                        <property name="maximumPoolSize" value="30"/>
                    </dataSource>
                </environment>
            </environments>
        
            <mappers>
                <mapper class="com.example.mapper.UserMapper"/>
            </mappers>
        </configuration>
        
      3. ビジネスロジックに次のコードを追加します:

          public static void main(String[] args) throws SQLException, IOException {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory =
                new SqlSessionFactoryBuilder().build(inputStream);
        
            UserService userService = new UserService(sqlSessionFactory);
            userService.run();
          }

オプションの設定項目

通常、設定する必要があるのは、最大接続プールサイズを指定する maximumPoolSize 設定項目のみです。他の設定項目は追加の設定を必要としません。

設定項目

説明

maximumPoolSize

最大接続数。デフォルト値: 10。必要に応じて調整してください。

minimumIdle

最小アイドル接続数。デフォルト値は maximumPoolSize と同じで、パフォーマンスフレンドリです。接続数がこの値を超え、接続が idleTimeout 値より長くアイドル状態のままである場合、接続は閉じられます。

connectionTimeout

接続取得タイムアウト (ミリ秒単位)。デフォルト値: 30000 (30 秒)。

keepaliveTime

キープアライブ間隔 (ミリ秒単位)。デフォルト値: 60000 (1 分)。

idleTimeout

アイドル接続タイムアウト (ミリ秒単位)。デフォルト値: 600000 (10 分)。

maxLifetime

最大接続生存期間 (ミリ秒単位)。デフォルト値: 1800000 (30 分)。

付録

MySQL プロトコルを使用して Lindorm にアクセスする場合、URL (エンドポイント) または Properties ファイルで指定されていない場合、LindormDataSource は SQL アクセスパフォーマンスを向上させるために次のパラメーターを自動的に入力します。

自動的に入力されるデフォルトのパラメーターは次のとおりです:

    ("sslMode", "DISABLED");
    ("allowPublicKeyRetrieval", "true");
    ("useServerPrepStmts", "true");
    ("useLocalSessionState", "true");
    ("rewriteBatchedStatements", "true");
    ("cachePrepStmts", "true");
    ("prepStmtCacheSize", "300");
    ("prepStmtCacheSqlLimit", "50000000");

したがって、LindormDataSource を使用する場合、MySQL プロトコル用の JDBC 接続 URL (`url` パラメーター) を提供し、ターゲットデータベース (`database` パラメーター) を指定するだけで済みます。接続設定を接続文字列に追加しないでください。例: jdbc:mysql://ld-uf6k8yqb741t3****-proxy-sql-lindorm-public.lindorm.rds.aliyuncs.com:33060/default