OceanBase logo

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

プロダクト概要
デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

ドキュメント

会社概要

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

トラストセンター

法的情報

お問い合わせ

日本 - 日本語
International - English
中国站 - 简体中文
クラウドで始める

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

プロダクト概要
デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

トラストセンター

法的情報

お問い合わせ

クラウドで始める
编组
すべての製品
    • データベース
    • アイコンOceanBaseデータベース
    • アイコンOceanBase Cloud
アイコン

OceanBase Cloud

すべてのバージョン

  • 製品アップデート
    • What's new
      • 2026年のリリースノート
  • プロダクトの紹介
    • OB Cloudクラウドデータベースの概要
    • 製品シリーズ
    • コア機能
      • クロスクラウドデュアルアクティブによる高可用性の実現
      • クロスクラウドのプライマリ/スタンバイデータベースによる高可用性の実現
      • データのバックアップとリストア
      • 多層的オンラインスケーリングとオンデマンド構成変更
    • 適用シナリオ
    • デプロイメントプラン
    • ストレージアーキテクチャ
    • 製品仕様
    • プロダクト課金
      • 請求の概要
      • インスタンス課金説明
        • アリババクラウドインスタンスの課金
        • AWS インスタンスの料金
        • GCPインスタンスの課金
      • バックアップとリストアの課金
      • SQL監査の課金について
      • データ移行の料金に関する説明
      • データベースプロキシの課金について
      • Binlogサービスの料金説明
      • OceanBase Cloud サポートプランの概要
      • リソース構成変更による課金の説明
      • 読み取り専用レプリカの料金説明
    • データベースサポートバージョン
  • クイックスタート
    • フラッグシップ版クイックスタート
    • フラッグシップ版クラスタインスタンスの作成
    • テナントの作成
    • データベースの使用
  • DBaaS インスタンスの使用
    • フラッグシップ版インスタンスの使用
      • フラッグシップ版インスタンスの概要
      • インスタンスの作成
        • 概要
        • OceanBase Cloud公式サイト経由での作成
        • AWS Marketplace経由での作成
        • GCP Marketplace経由での作成
        • Alibaba Cloud Marketplace経由での作成
      • インスタンスへの接続
        • ネットワーク接続の設定
          • 概要
          • パブリックIPアドレスを使用したデータベースへの接続
          • AWS PrivateLink を使用したデータベースへの接続
          • Alibaba Cloudのプライベートネットワーク接続を使用したデータベース接続
        • MySQL モード接続
          • クライアントを介した接続
            • デスクトップ版 ODC を使用した OB Cloud クラウドデータベースへの接続
            • MySQLクライアントを使用したOB Cloudクラウドデータベースへの接続
            • OBClient を使用した OB Cloud クラウドデータベースへの接続
          • ドライバー/ORM フレームワークを介した接続
            • Java
              • SpringBootを使用してOB Cloudデータベースに接続するサンプルプログラム
              • SpringBatch を使用して OB Cloud データベースに接続するサンプルプログラム
              • spring-jdbc
              • SpringDataJPAによるOB Cloudデータベース接続のサンプルプログラム
              • Hibernate を使用して OB Cloud に接続するサンプルプログラム
              • MyBatis を使用して OB Cloud データベースに接続するサンプルプログラム
              • connector-j
              • TestContainers Java を使用して OB Cloud データベースに接続するサンプルプログラム
            • Python
              • mysqlclient を使用した OB Cloud クラウドデータベース接続のサンプルプログラム
              • PyMySQL による OB Cloud データベース接続のサンプルプログラム
              • MySQL-connector-pythonによるOB Cloud接続のサンプルプログラム
              • SQLAlchemyを使用したOB Cloudクラウドデータベースへの接続サンプルプログラム
              • Djangoを使用したOB Cloud接続のサンプルプログラム
              • peeweeを使用したOB Cloudへの接続サンプルプログラム
            • C
              • MySQL Connector/C を使用した OB Cloud データベースへの接続サンプルプログラム
            • Go
              • Go-SQL-Driver/MySQL を使用して OB Cloud クラウドデータベースに接続するサンプルプログラム
              • GORM を使用した OB Cloud データベース接続のサンプルプログラム
            • PHP
              • EXTドライバを使用してOB Cloudクラウドデータベースに接続するサンプルプログラム
              • MySQLiドライバを使用したOB Cloudへの接続
              • PDOドライバを使用したOB Cloudクラウドデータベースへの接続
            • Rust
              • Rustを使用したOB Cloud接続のサンプルプログラム
              • SeaORM を使用した OB Cloud クラウドデータベース接続のサンプルプログラム
            • Ruby
              • ActiveRecordによるOB Cloud接続のサンプルプログラム
              • mysql2 を使用した OB Cloud クラウドデータベース接続のサンプルプログラム
              • Sequelを使用したOB Cloudへの接続サンプルプログラム
          • データベース接続プールの使用
            • 数据库连接池配置
            • Tomcat接続プールを使用してOceanBase データベースに接続するサンプルプログラム
            • C3P0 コネクションプールを使用して OceanBase データベースに接続するサンプルプログラム
            • Proxoolコネクションプールを使用してOceanBaseデータベースに接続するサンプルプログラム
            • HikariCP コネクションプールを使用して OceanBase データベースに接続するサンプルプログラム
            • DBCPコネクションプールを使用してOceanBaseデータベースに接続するサンプルプログラム
            • Commons Pool を使用して OceanBase データベースに接続するサンプルプログラム
            • Druid コネクションプールを使用して OceanBase データベースに接続するサンプルプログラム
        • Oracle モード接続
          • Bud1
          • クライアントを介した接続
            • OBClient を使用した OB Cloud クラウドデータベースへの接続
            • デスクトップ版 ODC を使用した OB Cloud クラウドデータベースへの接続
          • ドライバー/ORM フレームワークを介した接続
            • Bud1
            • Java
              • OceanBase Connector/J を使用して OB Cloud クラウドデータベースに接続するサンプルプログラム
              • SpringBootを使用してOB Cloudデータベースに接続するサンプルプログラム
              • SpringBatch を使用した OB Cloud クラウドデータベース接続のサンプルプログラム
              • Spring JDBC を使用した OB Cloud データベースへの接続サンプルプログラム
              • SpringDataJPA を使用した OB Cloud クラウドデータベース接続のサンプルプログラム
              • Hibernate を使用して OB Cloud クラウドデータベースに接続するサンプルプログラム
              • MyBatis を使用した OB Cloud データベース接続のサンプルプログラム
              • Jfinal を使用した OB Cloud データベース接続のサンプルプログラム
            • Python
              • Python Driver Oracle Mode
            • C/C++
              • OceanBase Connector/C を使用した OB Cloud クラウドデータベース接続のサンプルプログラム
              • OceanBase Connector/ODBC を使用した OB Cloud クラウドデータベースへの接続サンプルプログラム
              • SqlSugar を使用して OB Cloud クラウドデータベースに接続するサンプルプログラム
          • データベース接続プールの使用
            • 数据库连接池配置
            • Tomcat接続プールを使用してOB Cloudデータベースに接続するサンプルプログラム
            • C3P0接続プールを使用してOB Cloudデータベースに接続するサンプルプログラム
            • Proxool接続プールを使用してOB Cloudに接続するサンプルプログラム
            • HikariCP コネクションプールを使用して OB Cloud データベースに接続するサンプルプログラム
            • DBCP连接池连接 OB Cloud 云数据库示例程序
            • Commons Pool を使用した OB Cloud データベース接続のサンプルプログラム
            • Druid接続プールを使用してOB Cloudデータベースに接続するサンプルプログラム
        • KV モード接続
          • OBKV-HBase クライアントを使用したクラスタへの接続
      • 開発リファレンス
        • Bud1
        • MySQL モード
          • Bud1 databa
          • データオブジェクトの設計
            • データベースの作成
            • テーブルグループの作成
            • テーブルの作成
            • インデックスの作成
            • 外部テーブルの作成
          • データの書き込み
            • データの挿入
            • データの更新
            • データの削除
            • データの置換
            • テストデータのバッチ生成
          • データの読み取り
            • 単一テーブルクエリ
            • マルチテーブル結合
              • INNER JOIN
              • FULL JOIN
              • LEFT JOIN
              • RIGHT JOIN
              • サブクエリ
              • ラテラル派生テーブル
            • クエリでの演算子と関数の使用
              • クエリでの算術演算子の使用
              • クエリでの数値関数の使用
              • クエリでの文字列結合演算子の使用
              • クエリでの文字列関数の使用
              • クエリでの時間関数の使用
              • クエリでの集計関数の使用
              • クエリでの NULL 関連関数の使用
              • クエリでの CASE 条件演算子の使用
              • クエリ結果のロック SELECT FOR UPDATE
              • クエリ結果のロック LOCK IN SHARE MODE
            • DBLinkを使用したクエリ
            • 集合操作
          • トランザクション
            • トランザクション管理の概要
            • トランザクションの開始
            • セーブポイント
              • セーブポイントのマーク
              • トランザクションを特定のセーブポイントにロールバックする
              • セーブポイントの解放
            • トランザクションのコミット
            • トランザクションのロールバック
        • Oracle モード
          • Bud1 databa
          • データオブジェクトの設計
            • テーブルグループの作成
            • テーブルの作成
            • インデックスの作成
            • 外部テーブルの作成
          • データの書き込み
            • データの挿入
            • データの更新
            • データの削除
            • データの置換
            • テストデータのバッチ生成
          • データの読み取り
            • 単一テーブルクエリ
            • マルチテーブル結合
              • INNER JOIN
              • FULL JOIN
              • LEFT JOIN
              • RIGHT JOIN
              • サブクエリ
              • ラテラル派生テーブル
            • クエリでの演算子と関数の使用
              • クエリでの算術演算子の使用
              • クエリでの数値関数の使用
              • クエリでの文字列連結演算子の使用
              • クエリでの文字列関数の使用
              • クエリでの時間関数の使用
              • クエリでの集計関数の使用
              • クエリでの CASE 関数の使用
            • DBLinkを使用したクエリ
            • 集合操作
          • トランザクション
            • トランザクション管理の概要
            • トランザクションの開始
            • セーブポイント
              • セーブポイントのマーク
              • トランザクションを特定のセーブポイントにロールバックする
            • トランザクションのコミット
            • トランザクションのロールバック
        • KV モード
          • Bud1
          • KV モード
          • Table データ操作サンプル
            • OBKV-Table 操作例一覧
          • OBKV Table Java 開発
            • OBKV-Table Java クライアントを使用したクラスタへの接続
          • HBase データ操作サンプル
            • HBase データ操作の例
      • インスタンス管理
        • インスタンス管理
          • インスタンスリストの表示
          • インスタンスワークベンチ概要
          • インスタンスの一時停止/起動
          • Unit 移行
        • インスタンステナント管理
          • テナントワークベンチ
          • 新建租户
          • テナント仕様の変更
          • テナント名の変更
          • アクセスアドレスの追加
          • リソース分離管理
            • リソース分離の概要
            • リソースグループ管理
              • リソースグループの作成
              • リソースグループの表示
              • リソースグループの編集
              • リソースグループの削除
            • 分離ルールの管理
              • 分離ルールの作成
              • 隔離ルールの表示
              • 分離ルールの編集
              • 隔離ルールの削除
          • プライマリゾーンの変更
          • プロキシアドレスの最大接続数の変更
          • AI Function 組み込みモデルの有効化
          • テナントパフォーマンスモニタリング
            • テナント監視の概要
            • パフォーマンスと SQL 監視
            • トランザクション監視
            • ストレージとキャッシュの監視
            • Binlog サービスの監視
            • テナントのカスタム監視レポート
          • 診断
            • 查看性能监控数据
            • リアルタイム診断
              • SQL 診断
                • Top SQL
                • Slow SQL
                • 疑わしい SQL
                • 高リスク SQL
                • SQL の詳細
              • セッション管理
                • セッション管理
              • 最適化管理
                • 有効な Outline の管理
                • 最適化履歴の表示
              • SQL 監査
          • パラメータ管理
            • テナントパラメータ管理
            • 参数列表说明
            • パラメータテンプレートの説明
          • テナントの削除
          • データベースとアカウント管理
            • アカウントの作成
            • アカウントの管理
            • データベースの作成(MySQLのみ)
            • データベースの管理(MySQLのみ)
        • インスタンズパフォーマンスモニタリング
          • クラスタ監視の概要
          • クラスタデータベースのパフォーマンス監視
          • クラスタ多次元指標のパフォーマンス監視
          • クラスタホストのパフォーマンス監視
          • データベースプロキシ監視の詳細
          • データベースプロキシホスト監視の詳細
          • クロスクラウドネットワークのパフォーマンス監視
          • クラスタのカスタム監視レポート
        • データマージ
          • メジャーコンパクションの開始
          • メジャーコンパクション記録の表示
          • メジャーコンパクション時間の変更
        • インスタンスパラメータ管理
          • パラメータ管理
          • パラメータ一覧の説明
        • インスタンス設定の変更
          • 设置存储自动扩容
          • インスタンスの拡張(Huawei Cloud)
          • クラスタインスタンスの構成変更履歴の表示
          • インスタンス設定の変更(従量課金)
          • インスタンスのスペック変更(月額/年額払い)
          • 一時的な構成変更の設定
          • デプロイメントプランの切り替え
        • スタンバイインスタンス管理
          • スタンバイインスタンスの概要
          • スタンバイインスタンスの作成
          • クロスクラウドスタンバイインスタンスの作成
          • Alibaba CloudプライマリインスタンスのHuawei Cloudスタンバイインスタンスの作成
          • プライマリ/スタンバイインスタンスワークベンチ
          • プライマリ/スタンバイデータベースのグローバルアドレス設定
          • スタンバイデータベースの書き込みリクエスト自動ルーティングを設定する
          • プライマリ/スタンバイインスタンスの切り替え
          • 災害復旧切り替え
          • プライマリ/スタンバイインスタンスのデカップリング
          • スタンバイインスタンスの解放
        • インスタンスの解放
        • データベースプロキシ
          • データベースプロキシの概要
          • データベースプロキシ管理
          • ダイレクトロード
        • アラート管理
          • アラート管理
          • アラートルールの管理
            • アラートルールの作成
            • アラートルールの表示
            • アラートルールの編集
            • アラートルールの削除
          • アラート履歴の表示
          • アラートルールテンプレートの管理
            • アラートルールテンプレートの作成
            • アラートルールテンプレートの編集
            • アラートルールテンプレートのコピー
            • アラートルールテンプレートの削除
          • アラーム抑制ルールの管理
            • アラートミュート規則の作成
            • アラートミュートルールの確認
            • アラートミュートルールの編集
          • アラート通知テンプレートの管理
            • 创建告警通知模板
            • アラート通知テンプレートの表示
            • アラート通知テンプレートの編集
            • アラート通知テンプレートのコピー
            • アラート通知テンプレートの削除
          • アラート連絡先管理
            • アラート連絡先グループの追加
          • カスタムアラートの選択可能な監視メトリクス
        • バックアップとリカバリ
          • バックアップとリストアの概要
          • バックアップポリシー
          • 今すぐバックアップ
          • データバックアップ
          • リストアの開始
          • データリストア
          • インスタンスごみ箱内のデータバックアップのリストア
        • 診断
          • 性能監視データの表示
          • 容量診断
          • ワンクリック診断
            • ワンクリック診断の開始
            • ワンクリック診断レポートの表示
              • 異常イベント
              • リアルタイム診断
              • 最適化の推奨事項
              • 容量管理
              • セキュリティ管理
          • リアルタイム診断
            • SQL 診断
              • Top SQL
              • Slow SQL
              • 不審な SQL
              • 高リスク SQL
              • SQL 詳細
              • SQL 監視メトリクスリスト
            • セッション管理
              • セッション管理
            • リクエスト分析
              • リクエスト分析
          • ルート cause 診断
            • 異常イベントの表示
            • システム自律機能の有効化
          • SQL監査
          • マテリアライズドビュー分析
          • 最適化センター
            • 最適化の推奨事項
            • 有効な Outline の管理
            • SQL Review
            • 最適化履歴の表示
        • タグ管理
        • 読み取り専用レプリカ管理
          • 読み取り専用レプリカ概要
          • インスタンス読み取り専用レプリカ
            • インスタンスの読み取り専用レプリカを追加する
            • インスタンスの読み取り専用レプリカ関連情報の表示
            • 読み取り専用レプリカの構成変更管理
            • インスタンスの読み取り専用レプリカを削除
          • テナント読み取り専用レプリカ
            • テナントの読み取り専用レプリカを追加する
            • テナントの読み取り専用レプリカ関連情報の表示
            • テナントの読み取り専用レプリカの変更
            • テナントの読み取り専用レプリカの削除
        • JVM 環境依存サービス管理
      • データソース管理
        • データソースの新規作成
        • データソースの管理
        • ユーザー権限の説明
          • 互換性評価ユーザー特権
          • データ移行ユーザー特権
          • 性能評価ユーザー特権
          • データアーカイブのユーザー特権
          • データクリーンアップのユーザー特権
        • プライベート接続の選択
          • AWS
          • Alibaba Cloud
          • プライベートIPアドレスセグメントの説明
        • パブリック接続の選択
          • AWS
          • Alibaba Cloud
      • データライフサイクル管理
        • 数据归档
        • 数据清理
      • ゴミ箱管理
        • 实例回收站
        • データベーステーブルゴミ箱管理
          • 概要
          • 实例库表回收站
          • テナントのデータベース/テーブルごみ箱
    • トランザクション型インスタンスの使用
      • トランザクション型インスタンスの概要
      • 300.create-instance-tp
        • 概要
        • OceanBase Cloud公式サイト経由での作成
        • AWS Marketplace経由での作成
        • GCP Marketplace経由での作成
        • Alibaba Cloud Marketplace経由での作成
      • インスタンスへの接続
        • MySQL モード
          • 接続方法の概要
          • 接続文字列の取得
            • 概要
            • AWS PrivateLinkを使用してデータベースに接続する
            • Google Cloud Private Service Connectを使用した接続
            • アリババクラウドの専用ネットワーク接続を使用したデータベース接続
            • パブリックアドレスを使用してデータベースに接続する
          • クライアントを介した接続
            • デスクトップ版ODCによるOB Cloudデータベースへの接続
            • MySQLクライアントを使用したOB Cloudデータベースへの接続
            • OBClientを使用してOB Cloudデータベースに接続する
          • ドライバー/ORM フレームワークを介した接続
            • Java
              • SpringBootでOB Cloudデータベースに接続するサンプルプログラム
              • SpringBatchによるOB Cloudデータベース接続サンプルプログラム
              • spring-jdbc
              • SpringDataJPA による OB Cloud への接続サンプルプログラム
              • Hibernateを使用したOB Cloudデータベース接続サンプルプログラム
              • MyBatisでOB Cloudに接続するサンプルプログラム
              • connector-j
              • TestContainers JavaによるOB Cloudデータベース接続サンプルプログラム
            • Python
              • mysqlclient による OB Cloud データベース接続サンプルプログラム
              • PyMySQLによるOB Cloudデータベース接続サンプルプログラム
              • MySQL-connector-pythonによるOB Cloudデータベース接続サンプルプログラム
              • SQLAlchemyでOB Cloudに接続するサンプルプログラム
              • DjangoでOB Cloudデータベースに接続するサンプルプログラム
              • peeweeでOB Cloudに接続するサンプルプログラム
            • C
              • MySQL Connector/C による OB Cloud クラウドデータベース接続サンプルプログラム
            • Go
              • Go-SQL-Driver/MySQL で OB Cloud に接続するサンプルプログラム
              • GORM による OB Cloud クラウドデータベース接続サンプルプログラム
            • PHP
              • EXTドライバーによるOB Cloudデータベース接続サンプルプログラム
              • MySQLiドライバーを使用してOB Cloudに接続する
              • PDOドライバーを使用してOB Cloudに接続する
            • Rust
              • RustによるOB Cloudデータベース接続サンプルプログラム
              • SeaORM による OB Cloud クラウドデータベース接続サンプルプログラム
            • Ruby
              • ActiveRecordを使用したOB Cloudデータベース接続サンプルプログラム
              • mysql2 による OB Cloud データベース接続サンプルプログラム
              • SequelでOB Cloudに接続するサンプルプログラム
          • データベース接続プールの使用
            • データベース接続プールの設定
            • Tomcat接続プールでOceanBaseデータベースに接続するサンプルプログラム
            • C3P0接続プールでOceanBaseデータベースに接続するサンプルプログラム
            • Proxool接続プールを使用したOceanBaseデータベース接続サンプルプログラム
            • HikariCP接続プールでOceanBaseデータベースに接続するサンプルプログラム
            • DBCP接続プールでOceanBaseデータベースに接続するサンプルプログラム
            • Commons Pool による OceanBase データベース接続サンプルプログラム
            • Druid接続プールでOceanBaseデータベースに接続するサンプルプログラム
        • Oracle モード
          • 接続方法の概要
          • 接続文字列の取得
            • 概要
            • AWS PrivateLinkを使用してデータベースに接続する
            • パブリックアドレスを使用してデータベースに接続する
          • クライアントを介した接続
            • OBClientを使用してOB Cloudデータベースに接続する
            • デスクトップ版ODCによるOB Cloudデータベースへの接続
          • ドライバー/ORM フレームワークを介した接続
            • Java
              • OceanBase Connector/J による OB Cloud クラウドデータベース接続サンプルプログラム
              • SpringBootでOB Cloudに接続するサンプルプログラム
              • SpringBatchでOB Cloudに接続するサンプルプログラム
              • Spring JDBCでOB Cloudデータベースに接続するサンプルプログラム
              • SpringDataJPA による OB Cloud への接続サンプルプログラム
              • HibernateによるOB Cloudデータベース接続サンプルプログラム
              • MyBatisでOceanBase Cloudに接続するサンプルプログラム
              • JfinalによるOB Cloudデータベース接続サンプルプログラム
            • Python
              • Python Driver Oracle Mode
            • C/C++
              • OceanBase Connector/C による OB Cloud クラウドデータベース接続サンプルプログラム
              • OceanBase Connector/ODBC による OB Cloud クラウドデータベース接続サンプルプログラム
              • SqlSugarでOB Cloudに接続するサンプルプログラム
          • データベース接続プールの使用
            • データベース接続プールの設定
            • Tomcat接続プールでOB Cloudに接続するサンプルプログラム
            • C3P0接続プールを使用したOB Cloudデータベース接続サンプルプログラム
            • Proxool接続プールを使用したOB Cloudデータベース接続サンプルプログラム
            • HikariCP接続プールを使用したOB Cloudデータベース接続サンプルプログラム
            • DBCP接続プールでOB Cloudに接続するサンプルプログラム
            • Commons Pool による OB Cloud への接続サンプルプログラム
            • Druid接続プールを使用したOB Cloudデータベース接続サンプルプログラム
      • 開発リファレンス
        • MySQL モード
          • データオブジェクトの設計
            • データベースの作成
            • テーブルグループの作成
            • テーブルの作成
            • インデックスの作成
            • 外部テーブルの作成
          • データの書き込み
            • データの挿入
            • データの更新
            • データの削除
            • データの置換
            • テストデータの一括生成
          • データの読み取り
            • 単一テーブルのクエリ
            • 複数テーブルの結合
              • INNER JOIN
              • FULL JOIN
              • LEFT JOIN
              • RIGHT JOIN
              • サブクエリ
              • ラテラル派生テーブル
            • クエリでの演算子と関数の使用
              • クエリでの算術演算子の使用
              • クエリでの数値関数の使用
              • クエリでの文字列連結演算子の使用
              • クエリでの文字列関数の使用
              • クエリでの時刻関数の使用
              • クエリでの集約関数の使用
              • クエリでのNULL関連関数の使用
              • クエリでCASE条件演算子の使用
              • クエリ結果のロック SELECT FOR UPDATE
              • クエリ結果のロック LOCK IN SHARE MODE
            • DBLinkを使用したクエリの実行
            • 集合演算
          • トランザクション
            • トランザクション管理の概要
            • トランザクションの開始
            • セーブポイント
              • セーブポイントの設定
              • トランザクションを特定のセーブポイントまでロールバックする
              • セーブポイントの解放
            • トランザクションのコミット
            • トランザクションのロールバック
        • Oracle モード
          • データオブジェクトの設計
            • テーブルグループの作成
            • テーブルの作成
            • インデックスの作成
            • 外部テーブルの作成
          • データの書き込み
            • データの挿入
            • データの更新
            • データの削除
            • データの置換
            • テストデータの一括生成
          • データの読み取り
            • 単一テーブルのクエリ
            • 複数テーブルの結合
              • INNER JOIN
              • FULL JOIN
              • LEFT JOIN
              • RIGHT JOIN
              • サブクエリ
              • ラテラル派生テーブル
            • クエリでの演算子と関数の使用
              • クエリにおける算術演算子の使用
              • クエリでの数値関数の使用
              • クエリにおける文字列連結演算子の使用
              • クエリにおける文字列関数の使用
              • クエリでの時刻関数の使用
              • クエリでの集約関数の使用
              • クエリでCASE関数の使用
            • DBLinkを使用したクエリの実行
            • 集合演算
          • トランザクション
            • トランザクション管理の概要
            • トランザクションの開始
            • セーブポイント
              • セーブポイントの設定
              • トランザクションを特定のセーブポイントまでロールバックする
            • トランザクションのコミット
            • トランザクションのロールバック
      • インスタンス管理
        • インスタンス管理
          • インスタンスリストの表示
          • インスタンスのダッシュボード概要
          • インスタンスの一時停止・起動
          • Unit移行
        • インスタンステナント管理
          • テナントダッシュボード
          • テナントの作成
          • テナント構成の変更
          • テナント名の変更
          • アクセスアドレスの追加
          • リソース分離管理
            • リソース分離の概要
            • リソースグループ管理
              • リソースグループの作成
              • リソースグループの表示
              • リソースグループの編集
              • リソースグループの削除
            • 分離ルールの管理
              • 分離ルールの作成
              • 分離ルールの表示
              • 隔離ルールの編集
              • 隔離ルールの削除
          • プライマリゾーンの変更
          • プロキシアドレスの最大接続数の変更
          • AI Functionの組み込みモデルを有効にする
          • テナントパフォーマンスモニタリング
            • テナント監視の概要
            • パフォーマンスとSQLの監視
            • トランザクション監視
            • ストレージとキャッシュの監視
            • Binlogサービス監視
            • テナントのカスタムモニタリングレポート
          • 診断
            • パフォーマンス監視データの表示
            • リアルタイム診断
              • SQL 診断
                • Top SQL
                • スローSQL
                • 疑わしいSQL
                • ハイリスクSQL
                • SQLの詳細
              • セッション管理
                • セッション管理
              • 最適化管理
                • 有効なアウトラインの管理
                • 最適化履歴の表示
              • SQL監査
          • パラメータ管理
            • テナントパラメータの管理
            • パラメータ一覧の説明
            • パラメータテンプレートの説明
          • テナントの削除
          • データベースとアカウント管理
            • アカウントの作成
            • アカウントの管理
            • データベースの作成 (MySQLモードのみ)
            • データベースの管理 (MySQLのみ)
        • インスタンズパフォーマンスモニタリング
          • クラスタ監視の概要
          • クラスタデータベースのパフォーマンス監視
          • クラスタの多次元指標によるパフォーマンス監視
          • クラスタホストのパフォーマンス監視
          • データベースプロキシ監視の詳細
          • データベースプロキシホストの監視詳細
          • クロスクラウドネットワークパフォーマンス監視
          • クラスタのカスタムモニタリングレポート
        • データマージ
          • メジャーコンパクションの開始
          • マージレコードの表示
          • メジャーコンパクションのタイミングを変更する
        • インスタンスパラメータ管理
          • パラメータ管理
          • パラメータ一覧の説明
        • インスタンス設定の変更
          • ストレージの自動拡張を設定する
          • インスタンスのスケールアウト(Huawei Cloud)
          • クラスタインスタンスのリソース構成履歴を確認する
          • インスタンス構成の変更(従量課金)
          • インスタンスのスケーリング(月額課金)
          • 一時的なリソース構成の変更
          • デプロイメントスキームの切り替え
        • スタンバイインスタンス管理
          • スタンバイインスタンスの概要
          • スタンバイインスタンスの作成
          • クロスクラウドスタンバイインスタンスの作成
          • アリババクラウドのプライマリインスタンスに対するHuawei Cloudのスタンバイインスタンスを作成する
          • プライマリ/スタンバイインスタンスのダッシュボード
          • プライマリ/スタンバイデータベースのグローバルアドレスの設定
          • スタンバイデータベースの書き込みリクエストの自動ルーティングを設定する
          • プライマリ/スタンバイインスタンスの切り替え
          • ディザスタリカバリフェイルオーバー
          • プライマリ/スタンバイインスタンスの分離
          • スタンバイインスタンスのリリース
        • インスタンスのリリース
        • データベースプロキシ
          • データベースプロキシの概要
          • データベースプロキシ管理
          • ダイレクトロード
        • アラート管理
          • アラート管理
          • アラートルールの管理
            • アラートルールの作成
            • アラートルールの表示
            • アラートルールの編集
            • アラートルールの削除
          • アラート履歴の表示
          • アラートルールテンプレートの管理
            • アラートルールテンプレートの作成
            • アラートルールテンプレートの表示
            • アラートルールテンプレートの編集
            • アラートルールテンプレートのコピー
            • アラートルールテンプレートの削除
          • アラーム抑制ルールの管理
            • アラートブロックルールの作成
            • アラートミューティングルールの表示
            • アラートミューティングルールの編集
            • アラートミューティングルールの削除
          • アラート通知テンプレートの管理
            • アラート通知テンプレートの作成
            • アラート通知テンプレートの表示
            • アラート通知テンプレートの編集
            • 警報通知テンプレートのコピー
            • アラート通知テンプレートの削除
          • アラート連絡先管理
            • アラート連絡先の追加
            • アラート連絡先グループの追加
            • アラート連絡先の表示
            • アラート連絡先の編集
            • アラート連絡先の削除
            • Webhookアドレスの取得
          • カスタムアラートで利用可能な監視メトリクス
        • バックアップとリカバリ
          • バックアップ・リストアの概要
          • バックアップポリシー
          • 即時バックアップ
          • データバックアップ
          • データ復元の開始
          • データの復元
          • インスタンスのごみ箱からデータバックアップを復元する
        • 診断
          • パフォーマンス監視データの表示
          • 容量診断
          • ワンクリック診断
            • ワンクリック診断の開始
            • ワンクリック診断レポートの表示
              • 例外イベント
              • リアルタイム診断
              • 最適化の推奨事項
              • 容量管理
              • セキュリティ管理
          • リアルタイム診断
            • SQL 診断
              • Top SQL
              • スローSQL
              • 疑わしいSQL
              • ハイリスクSQL
              • SQLの詳細
              • SQLモニタリング指標一覧
            • セッション管理
              • セッション管理
            • リクエスト分析
              • リクエスト分析
          • ルート cause 診断
            • 例外イベントの確認
            • システムの自律性を有効にする
          • SQL監査
          • マテリアライズドビューの分析
          • 最適化センター
            • 最適化の推奨事項
            • 有効なアウトラインの管理
            • SQL Review
            • 最適化履歴の表示
        • タグの管理
        • 読み取り専用レプリカ管理
          • 読み取り専用レプリカの概要
          • インスタンス読み取り専用レプリカ
            • インスタンスに読み取り専用レプリカを追加する
            • インスタンスの読み取り専用レプリカ関連情報の表示
            • 読み取り専用レプリカの構成管理
            • インスタンスの読み取り専用レプリカを削除する
          • テナント読み取り専用レプリカ
            • テナントの読み取り専用レプリカを追加する
            • テナントの読み取り専用レプリカ関連情報の表示
            • テナントの読み取り専用レプリカを変更する
            • テナントの読み取り専用レプリカを削除する
        • JVM環境依存サービスの管理
      • データソース管理
        • データソースの新規作成
        • データソースの管理
        • ユーザー権限の説明
          • 互換性評価ユーザー権限
          • データ移行ユーザー権限
          • パフォーマンス評価ユーザー権限
          • データアーカイブユーザー権限
          • データクリーンアップユーザー権限
        • プライベート接続の選択
          • Tencent Cloud
          • AWS
          • Huawei Cloud
          • Alibaba Cloud
          • Azure
          • プライベートアドレスのサブネット範囲について
        • パブリック接続の選択
          • Tencent Cloud
          • AWS
          • Huawei Cloud
          • Alibaba Cloud
          • Azure
      • データライフサイクル管理
        • データアーカイブ
        • データのクリーンアップ
      • ゴミ箱管理
        • インスタンスのリサイクルバインド
        • データベーステーブルゴミ箱管理
          • 概要
          • インスタンスデータベース・テーブルのごみ箱
          • テナントデータベース・テーブルのゴミ箱
    • 分析型インスタンスの使用
      • エコシステム統合
      • パフォーマンステスト
      • アナリティクスインスタンスの概要
      • インスタンスの作成
      • データ加工
      • OceanBase APのコア機能
      • データのエクスポート
      • クエリアクセラレーション
        • 統計情報
        • マテリアライズドビューによるクエリの高速化
        • クエリ並列度の選択
      • インスタンス管理
        • インスタンスのダッシュボードを表示する
        • インスタンス構成の変更
        • プライマリゾーンの変更
        • AI Functionの組み込みモデルを有効にする
        • パラメータの管理
        • バックアップとリカバリ
          • バックアップ・リストアの概要
          • バックアップポリシー
          • 即時バックアップ
          • データバックアップ
          • リストアの開始
          • データの復元
        • パフォーマンスモニタリング
          • クラスタ監視の概要
          • インスタンスのデータベースパフォーマンス監視を表示する
          • インスタンスホストのパフォーマンス監視を表示する
        • データマージ
          • マージの開始
          • メジャーコンパクションレコードの表示
          • マージタイムの変更
        • データベースプロキシ
          • データベースプロキシの概要
          • データベースプロキシの管理
          • ダイレクトロード
        • アラート管理
          • 概要
          • アラートルールの管理
            • アラートルールの作成
            • アラートルールの表示
            • アラートルールの編集
            • アラートルールの削除
          • アラート履歴の表示
          • アラートルールテンプレートの管理
            • アラートルールテンプレートの作成
            • アラートルールテンプレートの編集
            • アラートルールテンプレートの編集
            • アラートルールテンプレートのコピー
            • アラートルールテンプレートの削除
          • アラーム抑制ルールの管理
            • アラートマスキングルールの作成
            • アラートミューティングルールの表示
            • アラートミューティングルールの編集
            • アラートミューティングルールの削除
          • アラート通知テンプレートの管理
            • アラート通知テンプレートの作成
            • アラート通知テンプレートの表示
            • アラート通知テンプレートの編集
            • 警報通知テンプレートのコピー
            • アラート通知テンプレートの削除
          • アラート連絡先管理
            • アラート連絡先の追加
            • アラート連絡先グループの追加
            • アラート連絡先の表示
            • アラート連絡先の編集
            • アラート連絡先の削除
            • Webhookアドレスの取得
          • カスタムアラートで利用可能なモニタリング指標
        • 診断
          • パフォーマンス監視データの表示
          • 容量診断
          • リアルタイム診断
            • SQL 診断
              • Top SQL
              • SQLの詳細
              • SQLモニタリング指標一覧
            • セッション管理
              • セッション管理
            • リクエスト分析
              • リクエスト分析
          • 最適化センター
            • 最適化の推奨事項
            • 有効なアウトラインの管理
            • SQL Review
            • 最適化履歴の表示
        • インスタンスの一時停止・再開
        • インスタンスのリリース
        • データベースとアカウント管理
          • アカウントの作成
          • データベースの作成
          • データベースの管理
        • タグの管理
      • インスタンスへの接続
        • 接続方法の概要
        • 接続文字列の取得
          • 概要
          • テンセントクラウドのプライベートリンクを使用してデータベースに接続する
          • Huawei Cloud VPCエンドポイントを使用してデータベースに接続する
          • アリババクラウドのプライベートネットワーク接続を使用したデータベース接続
          • パブリックアドレスを使用してデータベースに接続する
        • クライアントを介した接続
          • デスクトップ版ODCによるOB Cloudデータベースへの接続
          • MySQLクライアントを使用したOB Cloudデータベースへの接続
          • OBClientを使用してOB Cloudデータベースに接続する
        • ドライバー/ORM フレームワークを介した接続
          • Java
            • SpringBootでOB Cloudに接続する
            • SpringBatchによるOB Cloudデータベースへの接続
            • Spring JDBCでOB Cloudデータベースに接続する
            • SpringJPAでOB Cloudデータベースに接続する
            • HibernateによるOB Cloudデータベースへの接続
            • MyBatisによるOB Cloudデータベースへの接続
            • MySQL Connector/Jを使用してOB Cloudデータベースに接続する
          • Python
            • mysqlclientによるOB Cloudデータベース接続サンプルプログラム
            • PyMySQLでOB Cloudに接続するサンプルプログラム
            • MySQL Connector/Pythonを使用してOB Cloudに接続する
          • C
            • MySQL Connector/Cを使用してOB Cloudデータベースに接続する
          • Go
            • Go-SQL-Driver/MySQLを使用してOB Cloudに接続する
          • PHP
            • PHPを使用してOB Cloudデータベースに接続する
        • データベース接続プールの使用
          • データベース接続プールの設定
          • Tomcat接続プールでOceanBaseデータベースに接続するサンプルプログラム
          • C3P0接続プールでOceanBaseデータベースに接続するサンプルプログラム
          • Proxool接続プールを使用したOceanBaseデータベース接続サンプルプログラム
          • HikariCP接続プールでOceanBaseデータベースに接続するサンプルプログラム
          • DBCP接続プールでOceanBaseデータベースに接続するサンプルプログラム
          • Commons Pool による OceanBase データベース接続サンプルプログラム
          • Druid接続プールでOceanBaseデータベースに接続するサンプルプログラム
      • パフォーマンス診断とチューニング
        • 診断の実践:DBMS_XPLANシステムパッケージを使用したパフォーマンス診断
        • 診断の実践:SQL_PLAN_MONITORを使用したパフォーマンス問題の分析
        • AP性能分析関連ビュー
      • ゴミ箱管理
        • クラスタインスタンスのリサイクルバイン
        • データベーステーブルゴミ箱管理
          • 概要
          • インスタンスデータベース・テーブルのゴミ箱
      • データテーブル設計
        • データテーブルの概要
        • データテーブル設計のベストプラクティス
          • Unit 1:ストレージ構造とクエリパフォーマンスを最適化するためのベストプラクティス
          • Unit 2:特殊インデックスを作成する際のベストプラクティス
      • データライフサイクル管理
        • データライフサイクル機能リスト
        • データアーカイブ
        • データのクリーンアップ
    • キーバリュー型インスタンスの使用
      • OBKVの概要
      • HBase モデルの使用
        • OBKV-HBaseの概要
        • OBKV-HBase を使用したアプリケーション開発
          • 接続文字列の取得
            • 概要
          • OBKV-HBaseクライアントを使用してクラスタに接続する
        • インスタンス管理
          • インスタンス管理
            • クラスタインスタンスのダッシュボード概要
          • インスタンステナント管理
            • テナントダッシュボード
            • テナントの作成
            • リソース分離管理
              • リソース分離の概要
              • リソースグループ管理
                • リソースグループ管理機能一覧
              • 分離ルールの管理
                • 分離ルール管理機能一覧
            • テナントパフォーマンスモニタリング
              • テナント監視の概要
              • パフォーマンスとSQL監視
              • トランザクション監視
              • ストレージとキャッシュの監視
              • OBKV-HBase
              • テナントのカスタムモニタリングレポート
            • 診断
              • パフォーマンス監視データの表示
              • Top SQL
            • パラメータ管理
              • パラメータ一覧の説明
            • データベースとアカウント処理
              • アカウントの作成と管理
              • データベースの作成
              • データベースの管理
          • インスタンズパフォーマンスモニタリング
            • クラスタ監視の概要
            • クラスタデータベースのパフォーマンス監視
            • クラスタの多次元指標によるパフォーマンス監視
            • クラスタホストのパフォーマンス監視
            • クラスタのカスタムモニタリングレポート
          • データマージ
            • データマージ機能一覧
          • インスタンスパラメータ管理
            • パラメータ管理の概要
            • パラメータ管理リスト
          • インスタンス設定の変更
            • 構成変更機能一覧
          • データベースプロキシ
            • データベースプロキシの概要
          • アラート管理
            • アラートルールの管理
              • アラート管理機能一覧
            • アラートルールテンプレートの管理
              • アラートルールテンプレート管理機能一覧
            • アラーム抑制ルールの管理
              • アラートマスキングルール管理機能一覧
            • アラート通知テンプレートの管理
              • アラート通知テンプレート管理機能一覧
            • アラート連絡先管理
              • アラート連絡先管理機能一覧
            • カスタムアラートで利用可能な監視メトリクス
          • バックアップとリカバリ
            • バックアップ・リストアの概要
            • バックアップポリシー
            • 即時バックアップ
            • データバックアップ
            • リストアの開始
            • データの復元
          • 診断
            • パフォーマンス監視データの表示
            • Top SQL
            • 容量診断
            • リクエスト分析
          • ゴミ箱管理
            • クラスタインスタンスのリサイクルバインド
            • データベーステーブルゴミ箱管理
              • 概要
              • インスタンスデータベース・テーブルのごみ箱
              • テナントのデータベース・テーブルのゴミ箱
        • リファレンスガイド
          • 参考ガイドの概要
        • OBKV-HBaseの性能テスト
      • Table モデルの使用
        • OBKV クライアントを使用したインスタンス接続
          • 接続文字列の取得
            • 概要
            • Tencent Cloud Private Linkを使用してOBKVに接続する
            • Huawei Cloud VPCエンドポイントを使用してOBKVに接続する
            • パブリックアドレスを使用してOBKVに接続する
          • OBKV-Table Javaクライアントを使用したクラスタへの接続
          • データ操作サンプル
            • OBKV-Table操作例一覧
        • インスタンス管理
          • インスタンス管理
            • クラスタインスタンスのダッシュボード概要
          • インスタンステナント管理
            • テナントダッシュボード
            • テナントの作成
            • リソース分離管理
              • リソース分離の概要
              • リソースグループ管理
                • リソースグループ管理機能一覧
              • 分離ルールの管理
                • 分離ルール管理機能一覧
            • テナントパフォーマンスモニタリング
              • テナント監視の概要
              • パフォーマンスとSQL監視
              • トランザクション監視
              • ストレージとキャッシュの監視
              • OBKV-Table
              • テナントのカスタムモニタリングレポート
            • 診断
              • パフォーマンス監視データの表示
              • Top SQL
            • パラメータ管理
              • パラメータ一覧の説明
            • データベースとアカウント処理
              • アカウントの作成と管理
              • データベースの作成
              • データベースの管理
          • インスタンズパフォーマンスモニタリング
            • クラスタ監視の概要
            • クラスタデータベースのパフォーマンス監視
            • クラスタの多次元指標によるパフォーマンス監視
            • クラスタホストのパフォーマンス監視
            • インスタンスのカスタムモニタリングレポート
          • データマージ
            • データマージ機能一覧
          • インスタンスパラメータ管理
            • パラメータ管理の概要
            • パラメータ管理リスト
          • インスタンス設定の変更
            • 構成変更機能一覧
          • データベースプロキシ
            • データベースプロキシの概要
          • アラート管理
            • アラートルールの管理
              • アラート管理機能一覧
            • アラートルールテンプレートの管理
              • アラートルールテンプレート管理機能一覧
            • アラーム抑制ルールの管理
              • アラートマスキングルール管理機能一覧
            • アラート通知テンプレートの管理
              • アラート通知テンプレート管理機能一覧
            • アラート連絡先管理
              • アラート連絡先管理機能一覧
            • カスタムアラートで利用可能な監視メトリクス
          • バックアップとリカバリ
            • バックアップ・リストアの概要
            • バックアップポリシー
            • 即時バックアップ
            • データバックアップ
            • リストアの開始
            • データの復元
          • 診断
            • パフォーマンス監視データの表示
            • Top SQL
            • 容量診断
            • リクエスト分析
          • ゴミ箱管理
            • クラスタインスタンスのリサイクルバイン
            • データベーステーブルゴミ箱管理
              • 概要
              • インスタンスデータベース・テーブルのごみ箱
              • テナントのデータベース・テーブルのゴミ箱
        • リファレンスガイド
          • 参考ガイドの概要
      • キーバリュー型インスタンスの体験
        • インスタンスの作成
        • テナントの作成
        • アカウントの作成
  • AI
    • AI APIキーの管理
    • AIサービスの概要
    • AIモデルの使用
    • 組み込みモデル一覧
    • クイックスタート
    • AI API
      • アクセスの仕方
      • AI サービス API インターフェース
        • AI API一覧
        • Anthropic 互換インターフェース
          • List Anthropic Models - Anthropicモデルの一覧を取得する
          • Create a Message - Anthropic メッセージの作成
          • Create a Message (Default Base) - Anthropic Messages
        • OpenAI 互換インターフェース
          • List Models - モデルリストの取得
          • Create Chat Completion - OpenAI 聊天補完
          • Create Embedding - OpenAI Embeddings
          • Rerank - リランキング
          • Reranks - 再ソート
          • Create Response - OpenAI Responses
        • Vertex AI 互換インターフェース
          • generateContent - Vertex AIによるコンテンツ生成
          • streamGenerateContent - Vertex AI ストリーミングコンテンツ生成
  • データ移行とインポート
    • データ評価と移行のクイックスタート
    • データ移行とインポートの概要
    • データ移行
      • データ移行の概要
      • データ移行仕様説明
      • データ移行インスタンスの購入
      • MySQLデータベースのデータをOceanBaseデータベースのMySQL互換モードに移行する
      • OceanBaseデータベースのMySQL互換モードのデータをMySQLデータベースに移行する
      • OceanBaseデータベースの同一互換モード間でのデータ移行
      • OceanBaseデータベースの異なる互換モード間でのデータ移行
      • OracleデータベースのデータをOceanBaseデータベースのOracle互換モードに移行する
      • OceanBaseデータベースのOracle互換モードのデータをOracleデータベースに移行する
      • 双方向同期タスクの設定
      • OceanBaseデータベースのデータをKafkaに移行する
      • TiDBデータベースからOceanBaseデータベース(MySQL互換モード)へデータを移行する
      • OceanBaseデータベースのMySQL互換モードからTiDBデータベースへの増分データ移行
      • PostgreSQLデータベースのデータをOceanBaseデータベースに移行する
      • OceanBaseデータベースの増分データをPostgreSQLデータベースに移行する
      • データ移行タスクの管理
        • データ移行タスクの詳細を表示する
        • データ移行タスクの名前を変更する
        • 移行オブジェクトの表示と変更
        • パラメータの確認と変更
        • アラートの設定
        • ラベルによるデータ移行タスクの管理
        • データ移行タスクの開始、一時停止、および再開
        • データ移行タスクのクローン
        • データ移行タスクの終了と解放
      • 機能紹介
        • DML/DDLのカスタム設定
        • DDL同期範囲
        • SQL条件でデータをフィルタリングする
        • データベースのデータベースまたはテーブル名の変更
        • 増分同期のタイムスポットの設定
        • 構造移行の操作手順
        • 一致ルールの設定と変更
        • ワイルドカード規則の説明
        • 移行オブジェクトのインポート
        • 矛盾データのダウンロード
        • Topicの変更
        • 列フィルタリング
        • データ形式の説明
      • Alipayアカウントの認証
      • テーブルオブジェクトのSQLクエリ
      • Online DDLツールの適用について
      • トリガーの作成
      • 自社構築PostgreSQLインスタンスのログレベルを変更する
      • 増分移行のサポート対象 DDL 操作と制限
        • MySQLデータベースからOceanBaseデータベースのMySQL互換モードテナントへのDDL同期の概要
        • OceanBaseデータベースのMySQL互換モードテナントからMySQLデータベースへのDDL同期
        • OceanBaseデータベースのMySQL互換モードテナント間のDDL同期
        • OracleデータベースからOceanBaseデータベースのOracle互換モードテナントへのDDL同期
        • OceanBaseデータベースのOracle互換モードテナントからOracleデータベースへのDDL同期
        • OceanBaseデータベースのOracle互換モードにおけるテナント間のDDL同期
        • OceanBaseデータベースからKafkaへのDDL同期
    • 互換性評価
      • 互換性評価の概要
      • オンライン評価の実行
      • オフライン評価の実行
      • 互換性評価タスクの管理
        • 互換性評価タスクの表示
        • 互換性評価レポートの表示とダウンロード
        • 互換性評価タスクの一時停止
        • 互換性評価タスクの削除
      • アップロードファイルの取得
    • データサブスクリプション
      • データサブスクリプションタスクの作成
      • データサブスクリプションタスクの管理
        • データサブスクリプションタスクの詳細を表示する
        • サブスクリプション情報の設定
        • データサブスクリプションタスクの名前を変更する
        • サブスクリプションオブジェクトの表示と変更
        • データサブスクリプションパラメータの表示
        • データサブスクリプションのアラートを設定する
        • データサブスクリプションタスクの開始、一時停止、および再開
        • データサブスクリプションタスクのクローン
        • データサブスクリプションタスクの解除
      • データサブスクリプションのプライベート接続を管理する
      • サブスクリプションの設定と消費
      • メッセージ形式の説明
    • データ検証
      • データ検証の概要
      • 検証タスクの新規作成
      • データ検証タスクの管理
        • データ検証タスクの詳細を表示する
        • 検証オブジェクトの表示と変更
        • データ検証パラメータの表示と変更
        • タグを使用したデータ検証タスクの管理
        • データ検証タスクの開始、一時停止、および再開
        • データ検証タスクのクローン
        • データ検証タスクの解放
      • 機能紹介
        • 検証オブジェクトのインポート
        • 検証オブジェクトの名前変更
        • SQL条件を使用した検証オブジェクトのフィルタリング
        • 検証オブジェクトのマッチングルールの設定
    • パフォーマンス評価
      • 概要
      • データベースインスタンスのトラフィックファイルを取得する
      • 完全なパフォーマンス評価タスクの新規作成
      • SQLファイル解析タスクの新規作成
      • SQLファイル再生タスクの新規作成
      • パフォーマンス評価タスクの管理
        • パフォーマンス評価タスクの詳細を表示する
        • パフォーマンス評価レポートの表示
        • パフォーマンス評価タスクの再試行と停止
        • パフォーマンス評価タスクの削除
      • データベースインスタンスの取得
    • Binlog
      • 概要
      • Binlogサービスの購入
      • Binlog サービスの管理
        • Binlogサービスの詳細を表示する
        • 構成の変更
        • 自動スケーリングポリシーの変更
        • エラスティシティ戦略の変更
        • Binlogサービスの停止
    • データのインポート
      • データのインポート
      • データインポートでサポートされているファイル形式とエンコーディング形式
      • ダイレクトロード
  • セキュリティ管理
    • イベントセンター
    • モニタリングダッシュボード
    • 組織プロジェクト管理
      • 組織・プロジェクト管理の概要
      • 組織情報の管理
      • プロジェクト管理
        • プロジェクト管理
        • プロジェクト間の双方向権限付与
        • AI設定
        • プロジェクトメッセージのサブスクリプション
      • メンバー管理
      • ロール権限一覧
      • 組織コスト管理
        • 組織コストの概要
        • コスト明細
        • コストユニットの管理
      • 操作監査
    • アカウント設定
      • ログインパスワードの変更
      • マルチファクタ認証
      • AccessKeyの管理
      • タイムゾーンの設定
      • クラウドマーケットアカウントの管理
      • アカウント監査
    • セキュリティ暗号化
      • アローリストグループの設定
      • SSLリンク層暗号化
      • TDE 透過的データ暗号化
    • アカウントと権限管理
      • アカウント管理
      • アカウント権限リスト
      • クラウドベンダーアカウントの認可
      • テクニカルサポートサービスのライセンス認証
  • SQL コンソール
    • 概要
    • SQLの編集と実行
    • セッション変数の管理
    • SQLコンソールへのログイン
    • 結果セットの編集
    • 実行分析
    • SQLコンソールの機能キー一覧
    • スマートSQLの開発
    • PLコンパイル
    • データベースオブジェクト管理
      • テーブルの作成
      • ビューの作成
      • 関数の作成
      • ストアドプロシージャの作成
      • プログラムパッケージの作成
      • トリガーの作成
      • タイプの作成
      • シーケンスの作成
      • シノニムの作成
  • エコシステム統合
    • エコシステム統合の概要
    • データベースバージョニング
      • Liquibase
      • Flyway
    • データ統合
      • Canal
      • dbt
      • Debezium
      • Flink
      • Glue
      • Informatica Cloud
      • Kafka
      • Maxwell
      • SeaTunnel
      • DataWorks
      • NiFi
    • オブザーバビリティ
      • Datadog
      • Prometheus
    • SQL 開発
      • DataGrip
      • DBeaver
      • Navicat
      • TablePlus
    • AI
      • LlamaIndex
      • Dify
      • LangChain
      • Tongyi Qianwen
      • OpenAI
      • n8n
      • Trae
      • SpringAI
      • Cline
      • Cursor
      • Continue
      • Toolbox
      • CamelAI
      • Firecrawl
      • Hugging Face
      • Ollama
      • Google Gemini
      • Cloudflare Workers AI
      • Jina AI
      • Augment Code
      • Claude Code
      • Kiro
    • 開発ツール
      • Cloudflare Workers
      • Vercel
    • 可視化
      • Grafana
      • Power BI
      • Quick BI
      • Superset
      • Tableau
    • オーケスト레이션 スケジューリング
      • DolphinScheduler
      • Linkis
      • Airflow
    • データベース管理
      • Bytebase
  • 実践チュートリアル
    • 複雑なSQL処理をサポートし、クエリ効率を大幅に向上
    • OceanBaseのマルチモーダル融合による文化観光アシスタントの構築
    • OceanBaseに基づく画像検索アプリケーションの構築
    • 独創の二段階圧縮で、ストレージコストを70~90%削減
    • OceanBaseに基づく可視化データボードの構築
    • OB Cloud分析型インスタンスのクイック体験
    • OB CloudのリアルタイムSQL診断を体験する
    • OB Cloudに基づくWordPress Webサイトの構築
    • OB Cloudトランザクション型(MySQL)のクイックスタート
    • OB Cloudトランザクション型(Oracle)のクイックスタート
    • OB Cloudを活用したオフラインデータウェアハウスと可視化ダッシュボードの構築
    • OceanBaseに基づくインテリジェントQ&Aボットの構築
    • OceanBaseの分散パーティション分割機能による大規模テーブルのクエリ性能向上
    • OB Cloudを基盤としたモバイル注文APPでHTAPを体験する
    • OceanBaseデータベースのマルチテナント機能を体験する
    • MySQLとの高い互換性により、従来のデータベースをクラウドへスムーズに移行
  • ベストプラクティス
    • OB Cloudクラウドデータベースの読み書き分離に関するベストプラクティス
    • クロスクラウドのプライマリ/スタンバイデータベースによる高可用性(1プライマリ1スタンバイ)
    • クロスクラウドのプライマリ/スタンバイデータベースによる高可用性の実現(1プライマリ・複数スタンバイ)
    • クロスクラウドデュアルアクティブによる高可用性の実現に関するベストプラクティス
    • ホストのCPU使用率が高すぎる
  • リファレンスガイド
    • システム管理
    • システム原理
    • 構成パラメータとシステム変数
    • SQLリファレンス
    • システムビュー
    • パフォーマンスチューニング
    • エラーコード
    • データベース設計と仕様制約
    • データベースオブジェクト管理
    • クライアントダウンロード
      • OceanBaseクライアント(OBClient)のダウンロード
      • JDBCドライバーのダウンロード
      • クライアント版ODCのダウンロード
      • ODBCドライバーのダウンロード
      • OBClient Libsドライバーのダウンロード
    • Open API リファレンス
      • Open APIの概要
      • サービスアクセスポイント
      • API接続について
      • Open API ディレクトリ
        • インスタンス管理
          • DescribeInstances - クラスターリストの取得
          • DescribeInstance - クラスタ情報の取得
          • CreateInstance - クラスタの作成
          • DeleteInstance - クラスタの削除
          • ModifyInstanceName - クラスタ名の変更
          • DescribeNodeOptions - ノード監視オプションのクエリ
          • StopCluster - クラスタインスタンスの一時停止
          • StartCluster - クラスタインスタンスの起動
          • ModifyInstanceSpec - クラスタ仕様の変更
          • DescribeInstanceTopology - インスタンスのトポロジー情報を取得する
          • DescribeReadonlyInstances - インスタンスの読み取り専用レプリカ情報を取得する
          • CreateReadonlyInstance - 読み取り専用レプリカインスタンスを作成する
          • ModifyReadonlyInstanceSpec - 読み取り専用レプリカインスタンスの仕様を変更する
          • ModifyReadonlyInstanceDiskSize - 読み取り専用レプリカのディスクサイズの変更
          • ModifyReadonlyInstanceNodeNum - 読み取り専用レプリカのノード数を変更する
          • DeleteReadonlyInstance - 読み取り専用レプリカインスタンスの削除
          • DescribeInstanceAvailableRoZones - 読み取り専用レプリカの利用可能ゾーンを照会する
          • DescribeInstanceParameters - クラスタレベルパラメータのクエリ
          • UpdateInstanceParameters - クラスタレベルパラメータの変更
          • DescribeInstanceParametersHistory - クラスタレベルパラメータ変更履歴の取得
          • ModifyInstanceTagList - インスタンスタグの変更
          • ModifyInstanceNodeNum - クラスタノード数の変更
        • テナント管理
          • DescribeTenants - 条件を指定してテナントを検索する
          • DescribeTenant - 指定クラスタ内の指定テナント情報を照会する
          • CreateTenants - テナントの作成
          • DeleteTenants - テナントの削除
          • ModifyTenantName - テナント名の変更
          • ModifyTenant - テナントの変更
          • ModifyTenantUserDescription - テナントユーザーの説明を変更する
          • ModifyTenantUserStatus - テナントユーザーの状態を変更する
          • GetTenantCreateConstraints - テナント作成時の制約の確認
          • ModifyTenantPrimaryZone - テナントのプライマリゾーンを変更する
          • GetTenantCreateCpuConstraints - テナント作成時のCPU制約の確認
          • GetTenantCreateMemConstraints - テナント作成時のメモリ制約の確認
          • GetTenantModifyCpuConstraints - テナントのCPU制約の変更を照会する
          • GetTenantModifyMemConstraints - テナントのメモリ制約の変更を照会する
          • CreateTenantSecurityIpGroup - テナントのセキュリティホワイトリスト情報を作成する
          • DescribeTenantSecurityIpGroups - テナントのホワイトリストIPグループ一覧を取得する
          • ModifyTenantSecurityIpGroup - テナントのホワイトリストグループ情報を変更する
          • DeleteTenantSecurityIpGroup - テナントのホワイトリストグループ情報を削除する
          • DescribeTenantPrivateLink - テナントのPrivateLinkアドレス情報を照会する
          • DeletePrivatelinkConnection - テナント接続アドレスの削除
          • CreatePrivatelinkService - テナント接続の開始
          • ConnectPrivatelinkService - PrivateLinkエンドポイントを介してデータベースに接続する
          • AddPrivatelinkServiceUser - ユーザーのホワイトリスト追加
          • BatchKillProcessList - 指定テナントのセッションプロセスを一括終了する
          • DescribeProcessStatsComposition - セッションプロセス統計情報のクエリ
          • DescribeTenantAddressInfo - テナントのアドレス情報を照会する
          • DescribeTenantAvailableRoZones - テナントの読み取り専用レプリカの利用可能ゾーンを照会する
          • ModifyTenantReadonlyReplica - テナントの読み取り専用レプリカを変更する
          • DescribeTenantParameters - テナントレベルパラメータのクエリ
          • UpdateTenantParameters - テナントレベルパラメータの更新
          • DescribeTenantParametersHistory - テナントレベルのパラメータ変更履歴の取得
          • ModifyTenantTagList - テナントタグの変更
        • テナントアカウント管理
          • CreateTenantUser - テナントユーザーの作成
          • DescribeTenantUsers - テナントアカウントリストのクエリ
          • DeleteTenantUsers - テナントユーザーの削除
          • ModifyTenantUserPassword - テナントユーザーのパスワードを変更する
          • ModifyTenantUserRoles - テナントユーザーのロールを変更する
        • データベース管理
          • CreateDatabase - データベースの作成
          • DescribeDatabases - データベースリストのクエリ
          • DeleteDatabases - データベースの削除
          • ModifyDatabaseUserRoles - データベースユーザーのロールを変更する
        • バックアップとリカバリ管理
          • ModifyBackupStrategy - バックアップ戦略の変更
          • DescribeRestorableTenants - 復元可能なテナントのクエリ
          • CreateDataBackupTask - バックアップタスクの作成
          • CreateTenantRestoreTask - テナント復元タスクの作成
          • DescribeOneDataBackupSet - タスクIDバックアップセットを取得する
          • DescribeDataBackupSet - データバックアップセット情報のクエリ
        • データベースプロキシ管理
          • ConfirmPrivatelinkConnection - Private Link接続の確認を完了
          • DescribeTenantAddressInfo - すべてのテナントのアドレス情報を照会する
          • ModifyTenantAddressPort - テナントのアドレスポートを変更する
          • CreateTenantAddress - テナントアドレスの作成
          • ModifyOdpClusterSpec - データベースプロキシクラスタ仕様の変更
          • ModifyTenantAddressDomainPrefix - テナントのアドレスドメインプレフィックスを変更する
          • CreateTenantSingleTunnelSLBAddress - テナントのsingleTunnelSLBアドレスを新規作成
          • DeleteTenantAddress - テナントアドレスの削除
          • DescribeTenantAddress - テナントのアドレスを照会する
        • モニタリング管理
          • DescribeMetricsData - モニタリングメトリクスデータのクエリ
          • DescribeNodeMetrics - ノードメトリクス情報の取得
          • DescribeTenantMetrics - テナントメトリクス情報の取得
        • 診断管理
          • DescribeOasSQLText - SQLテキストのクエリ
          • DescribeOasSlowSQLList - SlowSQLリストのクエリ
          • DescribeOasSQLTrends - SQL実行履歴のクエリ
          • DescribeOasTopSQLList - TopSQLリストのクエリ
          • DescribeSampleSqlRawTexts - SQL原始テキストサンプルのクエリ
          • DescribeOasSQLPlanGroup - SQL実行計画のクエリ
          • DescribeOasAnomalySQLList - 疑わしいSQLリストのクエリ
          • DescribeOasSlowSQLSamples - スローSQL実行詳細のサンプリングデータを照会する
          • DescribeSqlAudits - SQL監査データのクエリ
          • DescribeOutlineBinding - SQLアウトラインのバインディング情報を照会する
          • DescribeSQLTuningAdvices - クエリSQLチューニングの推奨事項を照会する
        • セキュリティ管理
          • DeleteSecurityIpGroup - インスタンスのホワイトリストグループを削除する
          • DescribeInstanceSSL - インスタンスのSSL設定情報を照会する
          • DescribeTenantSecurityConfigs - テナントのセキュリティ設定の検出
          • ModifyTenantEncryption - テナントの透過的データ暗号化を有効にする
          • ModifyInstanceSSL - インスタンスのSSL設定を変更する
          • DescribeTenantEncryption - テナントの暗号化情報を照会する
          • ModifySecurityIps - インスタンスのホワイトリスト内IPリストを変更する
          • DescribeInstanceSecurityConfigs - クラスタセキュリティ設定の検出
          • CreateSecurityIpGroup - インスタンスのホワイトリストグループを作成する
        • タグ管理
          • CreateTags - ラベルの一括作成
          • DescribeTags - タグリストのクエリ
          • UpdateTag - タグを更新する
          • DeleteTag - タグの削除
        • 履歴イベント管理
          • DescribeOperationEvents - 過去のイベントを取得する
      • Open API よくある質問 FAQ
      • OceanBaseクラウドデータベースとOB CloudクラウドデータベースのAPI対比
    • 開発者センター使用ガイド
      • データライフサイクル管理
        • SQLスケジュールタスク
        • パーティション計画管理
          • パーティション計画の管理
          • パーティションポリシーの設定
          • パーティション戦略の使用例
      • データソース管理
        • データソースの作成
        • データソースとプロジェクトの連携
        • データベース運用保守
          • セッション管理
          • ごみ箱の管理
          • グローバル変数の管理
      • データマスキングと監査
        • 操作監査
        • データマスキング
      • SQL 開発
        • PLのコンパイルとデバッグ
        • 結果の編集とエクスポート
        • システム設定
        • テストデータの生成
        • SQLの編集と実行
        • 実行分析
        • データベースオブジェクト
          • シーケンスオブジェクト
            • シーケンスの作成
            • シーケンスの管理
            • 概要
          • 関数オブジェクト
            • 関数の作成
            • 関数の管理
            • 概要
          • ビューオブジェクト
            • ビューの作成
            • 概要
            • ビューの管理
          • ストアドプロシージョブジェクト
            • ストアドプロシージャの管理
            • 概要
            • ストアドプロシージャの作成
          • シノニムオブジェクト
            • シノニムの作成
            • 概要
            • シノニムの管理
          • タイプオブジェクト
            • テナントの管理
            • タイプの作成
            • 概要
          • テーブルオブジェクト
            • テーブルの作成
            • 概要
          • パッケージオブジェクト
            • 概要
            • プログラムパッケージの作成
            • マネージャーパッケージ
          • トリガーオブジェクト
            • トリガーの作成
            • 概要
            • トリガーの管理
          • マテリアライズドビューオブジェクト
            • マテリアライズドビューの作成
            • マテリアライズドビューの管理
            • 概要
      • クイックスタート
        • Web 版 ODC
          • はじめに
          • Web版ODCの使用
        • デスクトップ版 ODC
          • デスクトップ版ODCの使用
          • デスクトップ版ODCのインストール
          • クイックスタート
      • 変更リスク管理
        • リスクレベル、リスク識別ルール、承認プロセス
        • プロジェクトの協働管理
        • シャドウテーブルの同期
        • ロックフリー構造変更
        • SQLチェック規範
        • データベース変更管理
        • 構造比較
        • SQLウィンドウの仕様
        • マルチデータベース変更管理
        • ユーザー権限管理
          • ユーザー権限管理
          • ユーザーとロール
          • 自動権限付与
      • ベストプラクティス
        • OceanBase APのリアルタイムSQL診断機能の解析
        • SQL開発でよく使われるコツ
        • ODCによるデータベース・テーブルのシャーディング管理と変更の実現
        • ODCチームスペースの素晴らしい世界へようこそ
        • データマスキングの管理と運用の実践
        • エンタープライズレベルの管理・協働:データベースの毎変更を守る
        • OceanBase履歴データソリューション
        • ODC SQLチェック仕様による高リスク操作の自動識別
      • メッセージ通知管理
        • プッシュルールの管理
        • メッセージ通知の概要
        • プッシュ履歴の確認
        • 通知チャンネルの管理
          • プッシュチャネルの新規作成
          • カスタムチャネルの使用例
          • プッシュチャネルの表示・編集・削除
      • インポートとエクスポート
        • スキーマとデータのインポート
        • スキーマとデータのエクスポート
      • プロダクト紹介
        • 制限事項
        • OceanBase Developer Centerについて
    • モニタリング指標リファレンス
      • プロキシデータベース
      • クラスタホスト
      • Binlogサービス
      • ストレージとキャッシュ
      • プロキシホスト
      • クロスクラウドネットワークチャネル接続
      • クラスタデータベース
      • トランザクション
      • パフォーマンスとSQL
    • データ開発
      • 概要
      • ダッシュボードの管理
      • タスクフローの管理
      • OB Cloud データ開発用語集
      • ワークスペースの管理
      • ブックの管理
      • コンピューティングノードプール管理
      • Gitリポジトリの管理
      • サンプルデータセットについて
      • SQL 開発
        • セッション変数の管理
        • SQLの編集と実行
        • 結果セットの編集
        • Gitとの連携
        • 実行分析
        • データベースオブジェクト管理
          • テーブルの作成
          • ストアドプロシージャの作成
          • ビューの作成
          • 関数の作成
    • パフォーマンステスト
      • OB Cloudクラウドデータベースのパフォーマンステスト - sysbenchテスト
      • OB Cloudクラウドデータベースのパフォーマンステスト - TPCCテスト
      • OceanBaseクラウドデータベースの性能テスト - TPCHテスト
  • 課金管理
    • 請求書の管理
    • 契約管理
    • 支払い方法の変更
      • 年間契約から従量課金への変更
      • プラン変更(従量課金から月額課金へ)
    • AI サービス課金
      • モデルレート
      • APIキーの記録を見る
      • 使用状況統計
    • 支払い方法
      • クーポンによる支払い
      • リソースパッケージによる支払い
      • 充電送金
      • クレジット限度額による支払い
    • インスタンスの更新
      • 自動更新
      • 手動更新料金の支払い
      • レンタル管理
    • 請求書の表示
      • 収支明細の確認
      • 残高の確認
      • 月次請求書の表示
      • 費用概要の表示
      • 注文の確認
  • 関連規約
    • 下記の翻訳は、情報の提供のみを目的として提供されています。本翻訳と英語版の間で齟齬、不一致または矛盾がある場合(特に翻訳版の遅滞による場合)、[英語版](https://en.oceanbase.com/legal/cloud_support_plans_and_policies)が優先します。
    • サービスレベル契約
    • OceanBaseクラウド移行サービスに関するサービスレベル契約
    • データ処理に関する補遺
2026年のリリースノートOB Cloudクラウドデータベースの概要製品シリーズクロスクラウドデュアルアクティブによる高可用性の実現クロスクラウドのプライマリ/スタンバイデータベースによる高可用性の実現データのバックアップとリストア多層的オンラインスケーリングとオンデマンド構成変更適用シナリオデプロイメントプランストレージアーキテクチャ製品仕様請求の概要バックアップとリストアの課金SQL監査の課金についてデータ移行の料金に関する説明データベースプロキシの課金についてBinlogサービスの料金説明OceanBase Cloud サポートプランの概要リソース構成変更による課金の説明読み取り専用レプリカの料金説明データベースサポートバージョンフラッグシップ版クイックスタートフラッグシップ版クラスタインスタンスの作成テナントの作成データベースの使用フラッグシップ版インスタンスの概要トランザクション型インスタンスの概要エコシステム統合パフォーマンステストアナリティクスインスタンスの概要インスタンスの作成データ加工OceanBase APのコア機能データのエクスポートOBKVの概要AI APIキーの管理AIサービスの概要AIモデルの使用組み込みモデル一覧クイックスタートアクセスの仕方データ評価と移行のクイックスタートデータ移行とインポートの概要データ移行の概要データ移行仕様説明データ移行インスタンスの購入MySQLデータベースのデータをOceanBaseデータベースのMySQL互換モードに移行するOceanBaseデータベースのMySQL互換モードのデータをMySQLデータベースに移行するOceanBaseデータベースの同一互換モード間でのデータ移行OceanBaseデータベースの異なる互換モード間でのデータ移行OracleデータベースのデータをOceanBaseデータベースのOracle互換モードに移行するOceanBaseデータベースのOracle互換モードのデータをOracleデータベースに移行する双方向同期タスクの設定OceanBaseデータベースのデータをKafkaに移行するTiDBデータベースからOceanBaseデータベース(MySQL互換モード)へデータを移行するOceanBaseデータベースのMySQL互換モードからTiDBデータベースへの増分データ移行PostgreSQLデータベースのデータをOceanBaseデータベースに移行するOceanBaseデータベースの増分データをPostgreSQLデータベースに移行するAlipayアカウントの認証テーブルオブジェクトのSQLクエリOnline DDLツールの適用についてトリガーの作成自社構築PostgreSQLインスタンスのログレベルを変更する互換性評価の概要オンライン評価の実行オフライン評価の実行アップロードファイルの取得データサブスクリプションタスクの作成データサブスクリプションのプライベート接続を管理するサブスクリプションの設定と消費メッセージ形式の説明データ検証の概要検証タスクの新規作成概要データベースインスタンスのトラフィックファイルを取得する完全なパフォーマンス評価タスクの新規作成SQLファイル解析タスクの新規作成SQLファイル再生タスクの新規作成データベースインスタンスの取得概要Binlogサービスの購入データのインポートデータインポートでサポートされているファイル形式とエンコーディング形式ダイレクトロードイベントセンターモニタリングダッシュボード組織・プロジェクト管理の概要組織情報の管理メンバー管理ロール権限一覧操作監査ログインパスワードの変更マルチファクタ認証AccessKeyの管理タイムゾーンの設定クラウドマーケットアカウントの管理アカウント監査アローリストグループの設定SSLリンク層暗号化TDE 透過的データ暗号化
OceanBase ロゴ

AI時代を支える分散データベース

日本 - 日本語
International - English
中国站 - 简体中文
プロダクト
OceanBase Cloudエンタープライズ版コミュニティ版OceanBase seekdb
会社概要
OceanBaseについてトラストセンター法的情報お問い合わせ
公式アカウント
ConnpassXQiitaLumaGitHub

© OceanBase 2026. All rights reserved

クラウドサービス契約個人情報保護ポリシーセキュリティ
お問い合わせ
ドキュメントフィードバック
  1. ホーム
  2. OceanBase Cloud
  3. master
アイコンOceanBase Cloud
master
データベース
  • OceanBaseデータベース
  • OceanBase Cloud
  • master

SpringBatchでOB Cloudに接続するサンプルプログラム

最終更新日:2026-06-08 08:05:36  更新
シェア
このページの内容
前提条件
手順
ステップ1:OB Cloudデータベースの接続文字列を取得する
ステップ2:java-oceanbase-springbatch プロジェクトをIDEAにインポートする
ステップ3:java-oceanbase-springbatch プロジェクトのデータベース接続情報を修正する
ステップ4:java-oceanbase-springbatch プロジェクトを実行する
プロジェクトコードについて
pom.xmlコードの紹介
application.propertiesファイルの紹介
BatchApplication.javaファイルの紹介
BatchConfig.javaファイルの紹介
People.javaファイルの紹介
PeopleDESC.javaファイルの紹介
AddPeopleDescProcessor.javaファイルの紹介
AddDescPeopleWriter.javaファイルの紹介
AddPeopleWriter.javaファイルの紹介
BatchConfigTest.javaファイルの紹介
AddPeopleDescProcessorTest.javaファイルの紹介
AddDescPeopleWriterTest.javaファイルの紹介
AddPeopleWriterTest.javaファイルの紹介
全コード表示
関連ドキュメント

折りたたみ

シェア

本記事では、SpringBatchフレームワークとOB Cloudクラウドデータベースを使用して、テーブルの作成、データの挿入、データのクエリなどの基本操作を実現するアプリケーションの構築方法を紹介します。

クリックしてjava-oceanbase-springbatchサンプルプロジェクトをダウンロード SpringBatchでOceanBaseデータベースに接続するサンプルプログラム(Oracleモード)

前提条件

  • OB Cloudデータベースアカウントに登録し、クラスタインスタンスとOB Cloud Oracleテナントを作成していること。詳細については、クラスタインスタンスの作成およびテナントの作成を参照してください。
  • JDK 1.8とMavenをインストール済みであること。
  • IntelliJ IDEAをインストール済みであること。

説明

このドキュメントでコードを実行するために使用したツールはIntelliJ IDEA 2021.3.2 (Community Edition)ですが、個人の好みに応じて適切なツールを選択してサンプルコードを実行することもできます。

手順

説明

本記事で示す操作手順は、Windows環境に基づいています。他のOS環境やコンパイラを使用している場合は、手順が若干異なる可能性があります。

  1. OB Cloudデータベースの接続文字列を取得します。
  2. java-oceanbase-springbatch プロジェクトをIDEAにインポートします。
  3. java-oceanbase-springbatch プロジェクトのデータベース接続情報を修正します。
  4. java-oceanbase-springbatch プロジェクトを実行します。

ステップ1:OB Cloudデータベースの接続文字列を取得する

  1. OB Cloudコンソールにログインします。インスタンスリストページで、対象インスタンスの情報を展開し、対象テナントで、接続 > 接続文字列の取得 を選択します。

    詳細な操作については、接続文字列の取得を参照してください。

  2. 作成済みのOB Cloudデータベースに基づいて、以下のURLの該当する情報を入力します。

    OB CloudデータベースOracleモードへの接続URL例:

    jdbc:oceanbase://$host:$port/$schema_name?user=$user_name&password=$password
    

    パラメータ説明:

    • $host:OB Cloudデータベースの接続アドレスを指定します。例:t********.********.oceanbase.cloud。
    • $port:OB Cloudデータベースの接続ポートを指定します。デフォルトは1521です。
    • $schema_name:アクセスするスキーマ名です。
    • $user_name:データベースにアクセスするアカウントを指定します。
    • $password:アカウントのパスワードを指定します。

    詳細なURLパラメータの説明については、データベースURLを参照してください。

ステップ2:java-oceanbase-springbatch プロジェクトをIDEAにインポートする

  1. IntelliJ IDEA を開き、File > Open... オプションを選択します。

    file

  2. 表示された Open File or Project ウィンドウで、対応するプロジェクトファイルを選択し、OK をクリックしてプロジェクトファイルのインポートを完了します。

  3. IntelliJ IDEAは、プロジェクト内のさまざまなファイルの種類を自動的に認識し、Project ツールウィンドウで、プロジェクトのディレクトリ構造、ファイルリスト、モジュールリスト、依存関係などの情報を確認できます。Project ツールウィンドウは通常、IntelliJ IDEA画面の左側にあり、デフォルトでは開いています。Project ツールウィンドウが閉じている場合は、メニューバーの View > Tool Windows > Project をクリックするか、ショートカットキー Alt + 1 を使用して再表示できます。

    説明

    IntelliJ IDEAでプロジェクトをインポートすると、IntelliJ IDEAはプロジェクト内のpom.xmlファイルを自動的に検出し、ファイルに記述されている依存関係に基づいて必要な依存ライブラリを自動的にダウンロードし、プロジェクトに追加します。

  4. プロジェクトの状況を確認します。

    springbatch

ステップ3:java-oceanbase-springbatch プロジェクトのデータベース接続情報を修正する

ステップ1:OB Cloudデータベース接続文字列を取得する の情報に基づいて、application.properties ファイル内のデータベース接続情報を修正します。

例:

  • データベースドライバーの名前:com.oceanbase.jdbc.Driver
  • OB Cloudデータベースの接続アドレスは t5******.********.oceanbase.cloud です。
  • アクセスポートは1521を使用します。
  • アクセスするスキーマ名は sys です。
  • テナントの接続アカウントはoracle001です。
  • パスワードは ****** です。

サンプルコードは以下のとおりです:

spring.datasource.driver-class-name=com.oceanbase.jdbc.Driver
spring.datasource.url=jdbc:oceanbase://t5******.********.oceanbase.cloud:1521/sys?characterEncoding=utf-8
spring.datasource.username=oracle001
spring.datasource.password=******

spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update

spring.batch.job.enabled=false

logging.level.org.springframework=INFO
logging.level.com.example=DEBUG

ステップ4:java-oceanbase-springbatch プロジェクトを実行する

  • AddDescPeopleWriterTest.java ファイルを実行します。

    1. プロジェクト構造の src > test > java から AddDescPeopleWriterTest.java ファイルを見つけます。
    2. ツールメニューバーで Run > Run... > AddDescPeopleWriterTest.testWrite を選択するか、右上の 緑色の三角形 を直接クリックして実行します。
    3. IDEAのコンソールを使用して、プロジェクトのログ情報と出力結果を確認します。
    people_desc テーブルのデータ:
    PeopleDESC [name=John, age=25, desc=This is John with age 25]
    PeopleDESC [name=Alice, age=30, desc=This is Alice with age 30]
    Batch Job execution completed.
    
  • AddPeopleWriterTest.java ファイルを実行します。

    1. プロジェクト構造の src > test > java から AddPeopleWriterTest.java ファイルを見つけます。
    2. ツールメニューバーで Run > Run... > AddPeopleWriterTest.testWrite を選択するか、右上の 緑色の三角形 を直接クリックして実行します。
    3. IDEAのコンソールを使用して、プロジェクトのログ情報と出力結果を確認します。
    people テーブルのデータ:
    People [name=zhangsan, age=27]
    People [name=lisi, age=35]
    Batch Job execution completed.
    

プロジェクトコードについて

java-oceanbase-springbatch をクリックしてプロジェクトコードをダウンロードします。これは java-oceanbase-springbatch という名前の圧縮ファイルです。

解凍すると、java-oceanbase-springbatch という名前のフォルダが作成されます。ディレクトリ構造は以下のとおりです:

│  pom.xml
│
├─.idea
│
├─src
│  ├─main
│  │  ├─java
│  │  │  └─com
│  │  │      └─oceanbase
│  │  │          └─example
│  │  │              └─batch
│  │  │                  │──BatchApplication.java
│  │  │                  │
│  │  │                  ├─config
│  │  │                  │   └─BatchConfig.java
│  │  │                  │
│  │  │                  ├─model
│  │  │                  │   ├─People.java
│  │  │                  │   └─PeopleDESC.java
│  │  │                  │
│  │  │                  ├─processor
│  │  │                  │   └─AddPeopleDescProcessor.java
│  │  │                  │
│  │  │                  └─writer
│  │  │                      ├─AddDescPeopleWriter.java
│  │  │                      └─AddPeopleWriter.java
│  │  │
│  │  └─resources
│  │      └─application.properties
│  │
│  └─test
│      └─java
│          └─com
│              └─oceanbase
│                  └─example
│                      └─batch
│                          ├─config
│                          │   └─BatchConfigTest.java
│                          │
│                          ├─processor
│                          │   └─AddPeopleDescProcessorTest.java
│                          │
│                          └─writer
│                              ├─AddDescPeopleWriterTest.java
│                              └─AddPeopleWriterTest.java
│
└─target

ファイルの説明:

  • pom.xml:Mavenプロジェクトの設定ファイルで、プロジェクトの依存関係、プラグイン、ビルドなどの情報が含まれます。
  • .idea:IDE(統合開発環境)で使用されるディレクトリで、プロジェクト関連の設定情報を格納します。
  • src:プロジェクトのソースコードを格納するディレクトリです。
  • main: 主要なソースコードとリソースファイルを格納するディレクトリ。
  • java: Javaソースコードを格納するディレクトリ。
  • com: Javaパッケージのルートディレクトリ。
  • oceanbase: プロジェクトのルートディレクトリ。
  • example: プロジェクトのルートディレクトリ。
  • batch: プロジェクトのメインパッケージ名。
  • BatchApplication.java:アプリケーションのエントリクラスで、mainメソッドが含まれます。
  • config:設定クラスを格納するフォルダです。
  • BatchConfig.java:アプリケーションの設定クラスで、アプリケーションのプロパティや動作を設定するために使用されます。
  • model:データモデルクラスを格納するフォルダです。
  • People.java:人員データのモデルクラスです。
  • PeopleDESC.java:人員DESCデータのモデルクラスです。
  • processor:プロセッサクラスを格納するフォルダです。
  • AddPeopleDescProcessor.java:人員DESC情報を追加するプロセッサクラスです。
  • writer:ライタークラスを格納するフォルダです。
  • AddDescPeopleWriter.java:人員DESC情報を書き込むライタークラスです。
  • AddPeopleWriter.java:人員情報を書き込むライタークラスです。
  • resources:リソースフォルダで、アプリケーションの設定ファイルやその他の静的リソースファイルが含まれます。
  • application.properties:アプリケーションの設定ファイルで、アプリケーションのプロパティを設定するために使用されます。
  • test: テストコードとリソースファイルを格納するディレクトリ。
  • BatchConfigTest.java:アプリケーション設定クラスのテストクラスです。
  • AddPeopleDescProcessorTest.java:人員DESC情報を追加するプロセッサのテストクラスです。
  • AddDescPeopleWriterTest.java:人員DESC情報を書き込むライターのテストクラスです。
  • AddPeopleWriterTest.java:人員情報を書き込むライターのテストクラスです。
  • target: コンパイル済みのClassファイル、Jarパッケージなどのファイルを格納するディレクトリ。

pom.xmlコードの紹介

説明

例を確認するだけの場合は、デフォルトのコードをそのまま使用し、変更は不要です。以下の説明に従って、ご自身の要件に応じて pom.xml ファイルを変更することもできます。

pom.xml 設定ファイルの内容は以下のとおりです:

  1. ファイル宣言ステートメント。

    このファイルがXMLファイルであり、使用しているXMLバージョンが 1.0、文字エンコーディング方式が UTF-8 であることを宣言します。

    コード:

    <?xml version="1.0" encoding="UTF-8"?>
    
  2. POMの名前空間とPOMモデルバージョンを設定します。

  3. xmlns を使用して、POMの名前空間を http://maven.apache.org/POM/4.0.0 と指定します。

  4. xmlns:xsi を使用して、XML名前空間を http://www.w3.org/2001/XMLSchema-instance と指定します。

  5. xsi:schemaLocation を使用して、POMの名前空間を http://maven.apache.org/POM/4.0.0 と指定し、POMのXSDファイルの場所を https://maven.apache.org/xsd/maven-4.0.0.xsd と指定します。

  6. <modelVersion> 要素を使用して、このPOMファイルで使用するPOMモデルバージョンを 4.0.0 と指定します。

コード:

 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
</project>
  1. 親要素情報を設定します。

  2. <groupId> を使用して、親要素の識別子を org.springframework.boot と指定します。

  3. <artifactId> を使用して、親要素の依存関係を spring-boot-starter-parent と指定します。

  4. <version> を使用して、親要素のバージョン番号を 2.7.11 と指定します。

  5. relativePath を使用して、親要素のパスが空であることを示します。

コード:

 <parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>2.7.11</version>
     <relativePath/>
 </parent>
  1. 基本情報を設定します。

  2. <groupId> を使用して、プロジェクト識別子を com.oceanbase と指定します。

  3. <artifactId> を使用して、プロジェクトの依存関係を java-oceanbase-springboot と指定します。

  4. <version> を使用して、プロジェクトのバージョン番号を 0.0.1-SNAPSHOT と指定します。

  5. description を使用して、プロジェクト情報を Demo project for Spring Batch と紹介します。

コード:

 <groupId>com.oceanbase</groupId>
 <artifactId>java-oceanbase-springboot</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <name>java-oceanbase-springbatch</name>
 <description>Demo project for Spring Batch</description>
  1. Javaバージョンを設定します。

    プロジェクトで使用するJavaバージョンを1.8と指定します。

    コード:

      <properties>
          <java.version>1.8</java.version>
      </properties>
    
  2. コア依存関係を設定します。

  3. 依存関係の所属組織を org.springframework.boot、名前を spring-boot-starter と指定します。この依存関係により、Spring Bootがデフォルトでサポートするコンポーネントの依存関係を使用でき、Web、データ処理、セキュリティ、Testなどの機能をサポートします。

    コード:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    
  4. 依存関係の所属組織を org.springframework.boot、名前を spring-boot-starter-jdbc と指定します。この依存関係により、Spring Bootが提供するJDBC関連機能、接続プールやデータソースの設定などを使用できます。

    コード:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    
  5. 依存関係の所属組織を org.springframework.boot、名前を spring-boot-starter-test、作用範囲を test と指定します。この依存関係により、JUnit、Mockito、Hamcrestなど、Spring Bootが提供するテストフレームワークとツールを使用できます。

    コード:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    
  6. 依存関係の所属組織を com.oceanbase、名前を oceanbase-client、バージョン番号を 2.4.3 と指定します。この依存関係により、OceanBaseが提供するクライアント機能、接続、クエリ、トランザクションなどを使用できます。

  **コード:**

    ```xml
        <dependency>
            <groupId>com.oceanbase</groupId>
            <artifactId>oceanbase-client</artifactId>
            <version>2.4.3</version>
        </dependency>
    ```
  1. 依存関係の所属組織を org.springframework.boot、名前を spring-boot-starter-batch と指定します。この依存関係により、Spring Bootが提供するバッチ処理機能を使用できます。
  **コード:**

    ```xml
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-batch</artifactId>
    </dependency>
    ```
  1. 依存関係の所属組織を org.springframework.boot、名前を spring-boot-starter-data-jpa と指定します。この依存関係により、JPAを使用したデータアクセスに必要な依存関係と設定を使用できます。Spring Boot Starter Data JPAはSpring Bootのスターターです。

    コード:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    
  2. 依存関係の所属組織を org.apache.tomcat、名前を tomcat-jdbc と指定します。この依存関係により、Tomcatが提供するJDBC接続プール機能、接続プールの設定、接続の取得と解放、接続の管理などを使用できます。

    コード:

    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jdbc</artifactId>
    </dependency>
    
  3. 依存関係の所属テストフレームワークを junit、名前を junit、バージョン番号を 4.10、作用範囲を test と指定します。この依存関係により、JUnit単体テストの依存関係設定を追加できます。

    コード:

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.10</version>
        <scope>test</scope>
    </dependency>
    
  4. 依存関係の所属組織を javax.activation、名前を javax.activation-api、バージョン番号を 1.2.0 と指定します。この依存関係により、Java Activation Framework(JAF)ライブラリを導入できます。

    コード:

    <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>javax.activation-api</artifactId>
        <version>1.2.0</version>
    </dependency>
    
  5. 依存関係の所属組織を jakarta.persistence、名前を jakarta.persistence-api、バージョン番号を 2.2.3 と指定します。この依存関係により、Jakarta Persistence APIの依存関係設定を追加できます。 コード:

    <dependency>
        <groupId>jakarta.persistence</groupId>
        <artifactId>jakarta.persistence-api</artifactId>
        <version>2.2.3</version>
    </dependency>
    
  6. Mavenプラグインを設定します。

依存関係の所属組織を org.springframework.boot、名前を spring-boot-maven-plugin と指定します。このプラグインは、Spring Bootアプリケーションを実行可能なJARパッケージまたはWARパッケージにパッケージ化し、直接実行するために使用されます。

コード:

 <build>
     <plugins>
         <plugin>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
     </plugins>
 </build>

application.propertiesファイルの紹介

application.properties ファイルは、データベース接続およびその他関連するパラメータを設定するために使用されます。データベースドライバー、接続URL、ユーザー名、パスワードなどが含まれます。また、JPA(Java Persistence API)とSpring Batchに関する設定、およびログレベルの設定も含まれています。

  1. データベース接続の設定。

    • spring.datasource.driver を使用して、データベースドライバーを com.oceanbase.jdbc.Driver と指定します。これはOB Cloudクラウドデータベースとの接続を確立するために使用されます。
    • spring.datasource.url を使用して、データベース接続用のURLを指定します。
    • spring.datasource.username を使用して、データベース接続用のユーザー名を指定します。
    • spring.datasource.password を使用して、データベース接続用のパスワードを指定します。

    コード:

    spring.datasource.driver-class-name=com.oceanbase.jdbc.Driver
    spring.datasource.url=jdbc:oceanbase://host:port/schema_name?characterEncoding=utf-8
    spring.datasource.username=user_name
    spring.datasource.password=******
    
  2. JPAの設定。

    • spring.jpa.show-sql を使用して、ログにSQLステートメントを表示するかどうかを指定します。true に設定するとSQLステートメントが表示されます。
    • spring.jpa.hibernate.ddl-auto を使用して、HibernateのDDL操作動作を指定します。ここでは update に設定されており、アプリケーション起動時にデータベース構造を自動的に更新することを意味します。

    コード:

    spring.jpa.show-sql=true
    spring.jpa.hibernate.ddl-auto=update
    
  3. Spring Batchの設定:

    spring.batch.job.enabled を使用して、Spring Batchジョブを有効にするかどうかを指定します。ここでは false に設定されており、Spring Batchジョブを無効にすることを意味します。

    コード:

    spring.batch.job.enabled=false
    
  4. ログの設定:

    • logging.level.org.springframework を使用して、Springフレームワークのログレベルを INFO に指定します。
    • logging.level.com.example を使用して、アプリケーションのカスタムコードのログレベルを DEBUG に指定します。

    コード:

    logging.level.org.springframework=INFO
    logging.level.com.example=DEBUG
    

BatchApplication.javaファイルの紹介

BatchApplication.java ファイルは、Spring Bootアプリケーションのエントリーファイルです。

BatchApplication.java ファイルのコードは、主に以下の部分で構成されています:

  1. 他のクラスとインターフェースのインポート。

    このファイルには以下のインターフェースとクラスが含まれていることを宣言します:

    • SpringApplication クラス:Spring Bootアプリケーションを起動するために使用されます。
    • SpringBootApplication アノテーション:このクラスをSpring Bootアプリケーションのエントリーとしてマークするために使用されます。

    コード:

        import org.springframework.boot.SpringApplication;
        import org.springframework.boot.autoconfigure.SpringBootApplication;
    
  2. BatchApplication クラスの定義。

    @SpringBootApplication アノテーションを使用して、BatchApplication クラスをSpring Bootアプリケーションのエントリーとしてマークします。BatchApplication クラスでは、アプリケーションのエントリーポイントとして静的な main メソッドを定義しています。このメソッド内で、SpringApplication.run メソッドを使用してSpring Bootアプリケーションを起動します。さらに、バッチ処理ジョブを実行するための runBatchJob という名前のメソッドも定義しています。

    コード:

    
        @SpringBootApplication
        public class BatchApplication {
            public static void main(String[] args) {
                SpringApplication.run(BatchApplication.class, args);
            }
    
            public void runBatchJob() {
            }
        }
    

BatchConfig.javaファイルの紹介

BatchConfig.java ファイルは、バッチ処理ジョブのステップ、リーダー、プロセッサ、ライターなどのコンポーネントを設定するために使用されます。

BatchConfig.java ファイルのコードは、主に以下の部分で構成されています:

  1. 他のクラスとインターフェースのインポート。

    このファイルには以下のインターフェースとクラスが含まれていることを宣言します:

    • People クラス:データベースから読み取った人員情報を格納するために使用されます。
    • PeopleDESC クラス:人員情報を変換または処理した後の説明情報を格納するために使用されます。
    • AddPeopleDescProcessor クラス:読み取った People オブジェクトを PeopleDESC オブジェクトに変換する ItemProcessor インターフェースの実装クラスです。
    • AddDescPeopleWriter クラス:PeopleDESC オブジェクトをターゲット位置に書き込む ItemWriter インターフェースの実装クラスです。
    • Job インターフェース:バッチ処理ジョブを表します。
    • Step インターフェース:ジョブ内のステップを表します。
    • EnableBatchProcessing アノテーション:Spring Batchの設定アノテーションで、Spring Batch処理機能を有効化および設定するために使用されます。
    • JobBuilderFactory クラス:ジョブの作成と設定に使用されます。
    • StepBuilderFactory クラス:ステップの作成と設定に使用されます。
    • RunIdIncrementer クラス:Spring Batchの実行ID(Run ID)インクリメンターで、ジョブを実行するたびに実行IDを増加させるために使用されます。
    • ItemProcessor インターフェース:読み取ったアイテムを処理または変換するために使用されます。
    • ItemReader インターフェース:データソースからアイテムを読み取るために使用されます。
    • ItemWriter インターフェース:処理または変換後のアイテムを指定されたターゲット位置に書き込むために使用されます。
    • JdbcCursorItemReader クラス:データベースからデータを読み取り、カーソル結果セットを返すために使用されます。
    • Autowired アノテーション:依存性注入を行うために使用されます。
    • Bean アノテーション:Beanの作成と設定に使用されます。
    • ComponentScan アノテーション:コンポーネントスキャンを行うパッケージまたはクラスを指定するために使用されます。
    • Configuration アノテーション:クラスを設定クラスとしてマークするために使用されます。
    • EnableAutoConfiguration アノテーション:Spring Bootの自動設定を有効にするために使用されます。
    • SpringBootApplication アノテーション:このクラスをSpring Bootアプリケーションのエントリポイントとしてマークするために使用されます。
    • DataSource インターフェース:データベースへの接続を表すために使用されます。

    コード:

    import com.oceanbase.example.batch.model.People;
    import com.oceanbase.example.batch.model.PeopleDESC;
    import com.oceanbase.example.batch.processor.AddPeopleDescProcessor;
    import com.oceanbase.example.batch.writer.AddDescPeopleWriter;
    import org.springframework.batch.core.Job;
    import org.springframework.batch.core.Step;
    import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
    import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
    import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
    import org.springframework.batch.core.launch.support.RunIdIncrementer;
    import org.springframework.batch.item.ItemProcessor;
    import org.springframework.batch.item.ItemReader;
    import org.springframework.batch.item.ItemWriter;
    import org.springframework.batch.item.database.JdbcCursorItemReader;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.jdbc.core.BeanPropertyRowMapper;
    
    import javax.sql.DataSource;
    
  2. BatchConfig クラスの定義。

    これはシンプルなSpring Batchバッチ処理ジョブです。データの読み取り、処理、書き込みの方法を定義し、これらのステップを1つのジョブとしてカプセル化します。Spring Batchのアノテーションと自動設定機能を使用し、設定クラス内の各 @Bean メソッドを通じて対応するコンポーネントインスタンスを作成し、step1 でこれらのコンポーネントを使用してデータの読み取り、処理、書き込みを完了します。

    • @Configuration により、このクラスが設定クラスであることを示します。
    • @EnableBatchProcessing により、Spring Batchの処理機能を有効にします。このアノテーションは、JobRepository、JobLauncher などの必要な bean を自動的に作成します。
    • @SpringBootApplication はSpring Bootアプリケーションのメインクラスアノテーションであり、Spring Bootアプリケーションの起動ポイントです。
    • @ComponentScan により、コンポーネントスキャンを行うパッケージを指定し、Springに対してこのパッケージとサブパッケージ内のすべてのコンポーネントをスキャンして登録するよう指示します。
    • @EnableAutoConfiguration により、Spring Bootアプリケーションのインフラストラクチャを自動設定します。

    コード:

     @Configuration
     @EnableBatchProcessing
     @SpringBootApplication
     @ComponentScan("com.oceanbase.example.batch.writer")
     @EnableAutoConfiguration
     public class BatchConfig {
     }
    
    1. @Autowired アノテーションの定義。

      @Autowired アノテーションを使用して、JobBuilderFactory、StepBuilderFactory、DataSource を BatchConfig クラスのメンバ変数に注入します。JobBuilderFactory はジョブ(Job)を作成および設定するためのファクトリクラス、StepBuilderFactory はステップ(Step)を作成および設定するためのファクトリクラス、DataSource はデータベース接続を取得するためのインターフェースです。

      コード:

      @Autowired
      private JobBuilderFactory jobBuilderFactory;
      
      @Autowired
      private StepBuilderFactory stepBuilderFactory;
      
      @Autowired
      private DataSource dataSource;
      
    2. @Bean アノテーションの定義。

      @Bean アノテーションを使用して、バッチ処理ジョブのリーダー、プロセッサ、ライター、ステップ、ジョブを作成するためのいくつかのメソッドを定義します。

      • peopleReader メソッドにより、ItemReader コンポーネントのインスタンスを作成します。このコンポーネントは JdbcCursorItemReader を使用してデータベース内の People オブジェクトデータを読み取ります。データソース dataSource を設定し、データベース行を People オブジェクトにマッピングする RowMapper を設定し、SQLクエリステートメントを SELECT * FROM people に設定します。

      • addPeopleDescProcessor メソッドにより、ItemProcessor コンポーネントのインスタンスを作成します。このコンポーネントは AddPeopleDescProcessor を使用して People オブジェクトを処理し、PeopleDESC オブジェクトに変換して返します。

      • addDescPeopleWriter メソッドにより、ItemWriter コンポーネントのインスタンスを作成します。このコンポーネントは AddDescPeopleWriter を使用して PeopleDESC オブジェクトをターゲット位置に書き込みます。

      • step1 メソッドにより、Step コンポーネントのインスタンスを作成します。このステップの名前は step1 です。stepBuilderFactory.get でステップビルダーを取得し、リーダーを ItemReader コンポーネントに、プロセッサを ItemProcessor コンポーネントに、ライターを ItemWriter コンポーネントに設定します。chunk サイズを 10 に設定し、最後に build を呼び出して設定済みの Step をビルドして返します。

      • importJob メソッドにより、Job コンポーネントのインスタンスを作成します。このジョブの名前は importJob です。jobBuilderFactory.get でジョブビルダーを取得し、インクリメンターを RunIdIncrementer に設定し、ジョブ flow の最初のステップを Step に設定します。最後に build を呼び出して設定済みの Job をビルドして返します。

        コード:

        @Bean
        public ItemReader<People> peopleReader() {
            JdbcCursorItemReader<People> reader = new JdbcCursorItemReader<>();
            reader.setDataSource((javax.sql.DataSource) dataSource);
            reader.setRowMapper(new BeanPropertyRowMapper<>(People.class));
            reader.setSql("SELECT * FROM people");
            return reader;
        }
        
        @Bean
        public ItemProcessor<People, PeopleDESC> addPeopleDescProcessor() {
            return new AddPeopleDescProcessor();
        }
        
        @Bean
        public ItemWriter<PeopleDESC> addDescPeopleWriter() {
            return new AddDescPeopleWriter();
        }
        
        @Bean
        public Step step1(ItemReader<People> reader, ItemProcessor<People, PeopleDESC> processor,
                        ItemWriter<PeopleDESC> writer) {
            return stepBuilderFactory.get("step1")
                    .<People, PeopleDESC>chunk(10)
                    .reader(reader)
                    .processor(processor)
                    .writer(writer)
                    .build();
        }
        
        @Bean
        public Job importJob(Step step1) {
            return jobBuilderFactory.get("importJob")
                    .incrementer(new RunIdIncrementer())
                    .flow(step1)
                    .end()
                    .build();
        }
        

People.javaファイルの紹介

People.java ファイルは、人の情報を表す People クラスのデータモデルを作成します。このクラスには、name と age の2つのプライベートメンバー変数と、それぞれに対応する getter および setter メソッドが含まれます。最後に、オブジェクトの情報を出力するために toString メソッドをオーバーライドしています。ここで、name は人の名前を表し、age は人の年齢を表します。getter および setter メソッドを使用して、これらのプロパティの値を取得および設定できます。

このクラスの役割は、バッチ処理プログラムの入力と出力において、データの格納と伝達の方法を提供することです。バッチ処理の読み取りおよび書き込み操作では、People オブジェクトを使用してデータを格納し、setter メソッドでデータを設定し、getter メソッドでデータを取得します。

コード:

    public class People {
        private String name;
        private int age;

            // getters and setters

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }
        @Override
        public String toString() {
            return "People [name=" + name + ", age=" + age + "]";
        }
        // Getters and setters
    }

PeopleDESC.javaファイルの紹介

PeopleDESC.java ファイルは、人員情報を表す PeopleDESC クラスのデータモデルを作成します。PeopleDESC クラスには name、age、desc、id の4つの属性があり、それぞれ人の氏名、年齢、説明、識別子を表します。このクラスには、属性の値にアクセスおよび設定するための対応する getter と setter メソッドが含まれています。toString メソッドをオーバーライドして、氏名、年齢、説明を含むクラスの文字列表現を返します。

People クラスと同様に、PeopleDESC クラスもバッチ処理プログラムの入力と出力において、データの格納と受け渡しに使用されます。

コード:

    public class PeopleDESC {
        private String name;
        private int age;
        private String desc;
        private int id;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }

        public String getDesc() {
            return desc;
        }

        public void setDesc(String desc) {
            this.desc = desc;
        }

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        @Override
        public String toString() {
            return "PeopleDESC [name=" + name + ", age=" + age + ", desc=" + desc + "]";
        }
    }

AddPeopleDescProcessor.javaファイルの紹介

AddPeopleDescProcessor.java ファイルは、ItemProcessor インターフェースを実装する AddPeopleDescProcessor というクラスを定義しており、People オブジェクトを PeopleDESC オブジェクトに変換するために使用されます。

AddPeopleDescProcessor.java ファイルのコードは、主に以下の部分で構成されています:

  1. 他のクラスとインターフェースのインポート。

    このファイルには以下のインターフェースとクラスが含まれていることを宣言します:

    • People クラス:データベースから読み取った人員情報を格納するために使用されます。
    • PeopleDESC クラス:人員情報を変換または処理した後の説明情報を格納するために使用されます。
    • ItemProcessor インターフェース:読み取ったアイテムを処理または変換するために使用されます。

    コード:

    import com.oceanbase.example.batch.model.People;
    import com.oceanbase.example.batch.model.PeopleDESC;
    import org.springframework.batch.item.ItemProcessor;
    
  2. AddPeopleDescProcessor クラスの定義。

    ItemProcessor インターフェースを実装する AddPeopleDescProcessor クラスは、People オブジェクトを PeopleDESC オブジェクトに変換し、バッチ処理プロセスにおける入力データの処理ロジックを実装します。

    このクラスの process メソッドでは、まず PeopleDESC オブジェクト desc を作成します。次に、item パラメータから People オブジェクトの属性(name と age)を取得し、これらの属性を desc オブジェクトに設定します。同時に、desc オブジェクトの desc 属性にも値を代入します。この代入ロジックは、People オブジェクトの属性に基づいて説明情報を生成するものです。最後に、処理後の PeopleDESC オブジェクトを返します。

    コード:

    public class AddPeopleDescProcessor implements ItemProcessor<People, PeopleDESC> {
        @Override
        public PeopleDESC process(People item) throws Exception {
            PeopleDESC desc = new PeopleDESC();
            desc.setName(item.getName());
            desc.setAge(item.getAge());
            desc.setDesc("This is " + item.getName() + " with age " + item.getAge());
            return desc;
        }
    }
    

AddDescPeopleWriter.javaファイルの紹介

AddDescPeopleWriter.java ファイルは、ItemWriter インターフェースを実装する AddDescPeopleWriter クラスを定義しており、People オブジェクトをデータベースに書き込むために使用されます。

AddDescPeopleWriter.java ファイルのコードは、主に以下の部分で構成されています:

  1. 他のクラスとインターフェースのインポート。

    このファイルには以下のインターフェースとクラスが含まれていることを宣言します:

    • PeopleDESC クラス:人員情報を変換または処理した後の説明情報を格納するために使用されます。
    • ItemWriter インターフェース:処理または変換後のアイテムを指定されたターゲットに書き込むために使用されます。
    • Autowired アノテーション:依存性注入を行うために使用されます。
    • JdbcTemplate クラス:SQLステートメントを実行するメソッドを提供します。
    • List インターフェース:クエリ結果の集合を操作するために使用されます。

    コード:

    import com.oceanbase.example.batch.model.PeopleDESC;
    import org.springframework.batch.item.ItemWriter;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.jdbc.core.JdbcTemplate;
    
    import java.util.List;
    
  2. AddDescPeopleWriter クラスの定義。

    1. @Autowired アノテーションを使用して JdbcTemplate インスタンスを自動注入し、データ書き込み時にこのインスタンスを使用してデータベース操作を実行します。

      コード:

          @Autowired
          private JdbcTemplate jdbcTemplate;
      
    2. write メソッドでは、渡された List<? extends PeopleDESC> を走査し、各 PeopleDESC オブジェクトを順次取り出します。まず、既存の people_desc テーブルを削除するために DROP TABLE people_desc SQLステートメントを実行します。次に、id、name、age、description の4列を含む people_desc テーブルを作成するために、CREATE TABLE people_desc (id INT PRIMARY KEY, name VARCHAR2(255), age INT, description VARCHAR2(255)) SQLステートメントを実行します。その後、INSERT INTO people_desc (id, name, age, description) VALUES (?, ?, ?, ?) SQLステートメントを使用して、各 PeopleDESC オブジェクトのプロパティ値を people_desc テーブルに挿入します。

      コード:

          @Override
          public void write(List<? extends PeopleDESC> items) throws Exception {
              // 既存のテーブルを削除
              jdbcTemplate.execute("DROP TABLE people_desc");
              // テーブル作成ステートメント
              String createTableSql = "CREATE TABLE people_desc (id INT PRIMARY KEY, name VARCHAR2(255), age INT, description VARCHAR2(255))";
              jdbcTemplate.execute(createTableSql);
              for (PeopleDESC item : items) {
                  String sql = "INSERT INTO people_desc (id, name, age, description) VALUES (?, ?, ?, ?)";
                  jdbcTemplate.update(sql, item.getId(), item.getName(), item.getAge(), item.getDesc());
              }
          }
      

AddPeopleWriter.javaファイルの紹介

AddPeopleWriter.java ファイルは、ItemWriter インターフェースを実装する AddDescPeopleWriter クラスを定義しており、PeopleDESC オブジェクトをデータベースに書き込むために使用されます。

AddPeopleWriter.java ファイルのコードは、主に以下の部分で構成されています:

  1. 他のクラスとインターフェースのインポート。

    このファイルには以下のインターフェースとクラスが含まれていることを宣言します:

    • People クラス:データベースから読み取った人員情報を格納するために使用されます。
    • ItemWriter インターフェース:処理または変換後のアイテムを指定されたターゲットに書き込むために使用されます。
    • Autowired アノテーション:依存性注入を行うために使用されます。
    • JdbcTemplate クラス:SQLステートメントを実行するメソッドを提供します。
    • Component アノテーション:このクラスをSpringコンポーネントとしてマークするために使用されます。
    • List インターフェース:クエリ結果の集合を操作するために使用されます。

    コード:

    import com.oceanbase.example.batch.model.People;
    import org.springframework.batch.item.ItemWriter;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.stereotype.Component;
    
    import java.util.List;
    
  2. AddPeopleWriter クラスの定義。

    1. @Autowired アノテーションを使用して JdbcTemplate インスタンスを自動注入し、データ書き込み時にこのインスタンスを使用してデータベース操作を実行します。

      コード:

          @Autowired
          private JdbcTemplate jdbcTemplate;
      
    2. write メソッドでは、渡された List<? extends People> を走査し、各 People オブジェクトを順次取り出します。まず、既存の people テーブルを削除するために DROP TABLE people SQLステートメントを実行します。次に、name と age の2つの列を持つ people テーブルを作成するために CREATE TABLE people (name VARCHAR2(255), age INT) SQLステートメントを実行します。その後、INSERT INTO people (name, age) VALUES (?, ?) SQLステートメントを使用して、各 People オブジェクトのプロパティ値を people テーブルに挿入します。

      コード:

      @Override
      public void write(List<? extends People> items) throws Exception {
          // 既存のテーブルを削除
          jdbcTemplate.execute("DROP TABLE people");
          // テーブル作成ステートメント
          String createTableSql = "CREATE TABLE people (name VARCHAR2(255), age INT)";
          jdbcTemplate.execute(createTableSql);
          for (People item : items) {
              String sql = "INSERT INTO people (name, age) VALUES (?, ?)";
              jdbcTemplate.update(sql, item.getName(), item.getAge());
          }
      }
      

BatchConfigTest.javaファイルの紹介

BatchConfigTest.java ファイルは、JUnitを使用したテストクラスであり、Spring Batchのジョブ設定をテストするために使用されます。

BatchConfigTest.java ファイルのコードは、主に以下の部分で構成されています:

  1. 他のクラスとインターフェースのインポート。

    このファイルには以下のインターフェースとクラスが含まれていることを宣言します:

    • Assert クラス:テスト結果をアサートするために使用されます。
    • Test アノテーション:テストメソッドをマークするために使用されます。
    • RunWith アノテーション:テストランナーを指定するために使用されます。
    • Job インターフェース:バッチ処理ジョブを表します。
    • JobExecution クラス:バッチ処理ジョブの実行を表します。
    • JobParameters クラス:バッチ処理ジョブのパラメータを表します。
    • JobParametersBuilder クラス:バッチ処理ジョブのパラメータを構築するために使用されます。
    • JobLauncher インターフェース:バッチ処理ジョブを起動するために使用されます。
    • Autowired アノテーション:依存性注入を行うために使用されます。
    • SpringBootTest アノテーション:テストクラスをSpring Bootテストとして指定するために使用されます。
    • SpringRunner クラス:テストランナーをSpringRunnerとして指定するために使用されます。

    コード:

    import org.junit.Assert;
    import org.junit.jupiter.api.Test;
    import org.junit.runner.RunWith;
    import org.springframework.batch.core.Job;
    import org.springframework.batch.core.JobExecution;
    import org.springframework.batch.core.JobParameters;
    import org.springframework.batch.core.JobParametersBuilder;
    import org.springframework.batch.core.launch.JobLauncher;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
    import javax.batch.runtime.BatchStatus;
    
  2. BatchConfigTest クラスの定義。

    SpringBootTest アノテーションと SpringRunner ランナーを使用することで、Spring Bootの統合テストを実行できます。testJob メソッドでは、JobLauncherTestUtils ヘルパークラスを使用してバッチ処理ジョブを起動し、アサートを使用してジョブの実行状態を検証します。

    1. @Autowired アノテーションを使用して JobLauncherTestUtils インスタンスを自動注入します。

      コード:

      @Autowired
      private JobLauncherTestUtils jobLauncherTestUtils;
      
    2. @Test アノテーションを使用して testJob メソッドをテストメソッドとしてマークします。このメソッドでは、まず JobParameters オブジェクトを作成し、次に jobLauncherTestUtils.launchJob メソッドを使用してバッチ処理ジョブを起動します。そして、Assert.assertEquals メソッドを使用して、ジョブの実行状態が COMPLETED であることをアサートします。

      コード:

      @Test
      public void testJob() throws Exception {
          JobParameters jobParameters = new JobParametersBuilder()
                  .addString("jobParam", "paramValue")
                  .toJobParameters();
      
          JobExecution jobExecution = jobLauncherTestUtils.launchJob(jobParameters);
      
          Assert.assertEquals(BatchStatus.COMPLETED, jobExecution.getStatus());
      }
      
    3. @Autowired アノテーションを使用して JobLauncher インスタンスを自動注入します。

      コード:

      @Autowired
      private JobLauncher jobLauncher;
      
    4. @Autowired アノテーションを使用して Job インスタンスを自動注入します。

      コード:

      @Autowired
      private Job job;
      
    5. バッチ処理ジョブの起動を補助するために、JobLauncherTestUtils という名前の内部クラスを定義します。このクラスには、バッチ処理ジョブを起動するための launchJob メソッドが定義されています。このメソッドでは、jobLauncher.run メソッドを使用してジョブを起動し、ジョブの実行結果を返します。

      コード:

      private class JobLauncherTestUtils {
          public JobExecution launchJob(JobParameters jobParameters) throws Exception {
              return jobLauncher.run(job, jobParameters);
          }
      }
      

AddPeopleDescProcessorTest.javaファイルの紹介

AddPeopleDescProcessorTest.java ファイルは、JUnitを使用してテストを行うクラスであり、Spring Batchのジョブ設定をテストするために使用されます。

AddPeopleDescProcessorTest.java ファイルのコードは、主に以下の部分で構成されています:

  1. 他のクラスとインターフェースのインポート。

    このファイルには以下のインターフェースとクラスが含まれていることを宣言します:

    • People クラス:データベースから読み取った人員情報を格納するために使用されます。
    • PeopleDESC クラス:人員情報を変換または処理した後の説明情報を格納するために使用されます。
    • Test アノテーション:テストメソッドをマークするために使用されます。
    • RunWith アノテーション:テストランナーを指定するために使用されます。
    • Autowired アノテーション:依存性注入を行うために使用されます。
    • SpringBootTest アノテーション:テストクラスをSpring Bootテストとして指定するために使用されます。
    • SpringRunner クラス:テストランナーをSpringRunnerとして指定するために使用されます。

    コード:

    import com.oceanbase.example.batch.model.People;
    import com.oceanbase.example.batch.model.PeopleDESC;
    import org.junit.jupiter.api.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
  2. AddPeopleDescProcessorTest クラスの定義。

    SpringBootTest アノテーションと SpringRunner ランナーを使用して、Spring Bootの統合テストを実行します。

    1. @Autowired アノテーションを使用して、AddPeopleDescProcessor インスタンスを自動注入します。

      コード:

      @Autowired
      private AddPeopleDescProcessor processor;
      
    2. @Test アノテーションを使用して、testProcess メソッドをテストメソッドとしてマークします。このメソッドでは、まず People オブジェクトを作成し、次に processor.process メソッドを使用してそのオブジェクトを処理し、結果を PeopleDESC オブジェクトに代入します。

      コード:

      @Test
      public void testProcess() throws Exception {
          People people = new People();
          PeopleDESC desc = processor.process(people);
      }
      

AddDescPeopleWriterTest.javaファイルの紹介

AddDescPeopleWriterTest.java ファイルは、JUnitを使用してテストを行うクラスであり、AddDescPeopleWriter の書き込みロジックをテストするために使用されます。

AddDescPeopleWriterTest.java ファイルのコードは、主に以下の部分で構成されています:

  1. 他のクラスとインターフェースのインポート。

    このファイルには以下のインターフェースとクラスが含まれていることを宣言します:

    • PeopleDESC クラス:人員情報を変換または処理した後の説明情報を格納するために使用されます。
    • Assert クラス:テスト結果をアサートするために使用されます。
    • Test アノテーション:テストメソッドをマークするために使用されます。
    • RunWith アノテーション:テストランナーを指定するために使用されます。
    • Autowired アノテーション:依存性注入を行うために使用されます。
    • SpringBootTest アノテーション:テストクラスをSpring Bootテストとして指定するために使用されます。
    • JdbcTemplate クラス:SQLステートメントを実行するメソッドを提供します。
    • SpringRunner クラス:テストランナーをSpringRunnerとして指定するために使用されます。
    • ArrayList クラス:空のリストを作成するために使用されます。
    • List インターフェース:クエリ結果セットを操作するために使用されます。

    コード:

    import com.oceanbase.example.batch.model.PeopleDESC;
    import org.junit.Assert;
    import org.junit.jupiter.api.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.test.context.junit4.SpringRunner;
    
    import java.util.ArrayList;
    import java.util.List;
    
  2. AddDescPeopleWriterTest クラスの定義。

    SpringBootTest アノテーションと SpringRunner ランナーを使用して、Spring Bootの統合テストを行います。

    1. @Autowired を使用したインスタンスの注入。 @Autowired アノテーションを使用して、AddPeopleDescProcessor および JdbcTemplate インスタンスを自動注入します。

      コード:

      @Autowired
      private AddDescPeopleWriter writer;
      @Autowired
      private JdbcTemplate jdbcTemplate;
      
    2. @Test を使用したデータの挿入と出力のテスト。 @Test アノテーションを使用して、testWrite メソッドをテストメソッドとしてマークします。このメソッドでは、まず空の peopleDescList リストを作成し、リストに2つの PeopleDESC オブジェクトを追加します。次に、writer.write メソッドを使用して、リスト内のデータをデータベースに書き込みます。その後、jdbcTemplate を使用してクエリステートメントを実行し、people_desc テーブルからデータを取得します。そして、アサーションステートメントを使用してデータの正確性を検証します。最後に、クエリ結果をコンソールに出力し、ジョブの実行完了メッセージを出力します。

      1. people_desc テーブルへのデータ挿入。 まず、空の PeopleDESC オブジェクトリスト peopleDescList を作成します。次に、2つの PeopleDESC オブジェクト desc1 と desc2 を作成し、それぞれのプロパティ値を設定します。desc1 と desc2 を peopleDescList リストに追加します。その後、writer の write メソッドを呼び出し、peopleDescList 内のオブジェクトをデータベースの people_desc テーブルに書き込みます。次に、JdbcTemplate を使用してクエリステートメント SELECT COUNT(*) FROM people_desc を実行し、people_desc テーブルのレコード数を取得して変数 count に代入します。最後に、Assert.assertEquals メソッドを使用してアサーションを行い、count の値が 2 と等しいかどうかを検証します。

        コード:

           List<PeopleDESC> peopleDescList = new ArrayList<>();
           PeopleDESC desc1 = new PeopleDESC();
           desc1.setId(1);
           desc1.setName("John");
           desc1.setAge(25);
           desc1.setDesc("This is John with age 25");
           peopleDescList.add(desc1);
           PeopleDESC desc2 = new PeopleDESC();
           desc2.setId(2);
           desc2.setName("Alice");
           desc2.setAge(30);
           desc2.setDesc("This is Alice with age 30");
           peopleDescList.add(desc2);
           writer.write(peopleDescList);
        
           String selectSql = "SELECT COUNT(*) FROM people_desc";
           int count = jdbcTemplate.queryForObject(selectSql, Integer.class);
           Assert.assertEquals(2, count);
        
      2. people_desc テーブル内のデータの出力。 まず、JdbcTemplate を使用してクエリステートメント SELECT * FROM people_desc を実行し、lambda 式を使用してクエリ結果を処理します。lambda 式では、rs.getInt、rs.getString などのメソッドを使用してクエリ結果セットのフィールド値を取得し、フィールド値を新しく作成した PeopleDESC オブジェクトに設定します。新しく作成した各 PeopleDESC オブジェクトを結果リスト resultDesc に追加します。その後、people_desc テーブル内のデータ: という一行のメッセージを出力し、for ループを使用して resultDesc リスト内の各 PeopleDESC オブジェクトを走査し、System.out.println を使用して各オブジェクトの内容を出力します。最後に、ジョブの実行完了メッセージを出力します。

        コード:

        List<PeopleDESC> resultDesc = jdbcTemplate.query("SELECT * FROM people_desc", (rs, rowNum) -> {
           PeopleDESC desc = new PeopleDESC();
           desc.setId(rs.getInt("id"));
           desc.setName(rs.getString("name"));
           desc.setAge(rs.getInt("age"));
           desc.setDesc(rs.getString("description"));
           return desc;
        });
        
        System.out.println("people_desc テーブル内のデータ:");
        for (PeopleDESC desc : resultDesc) {
           System.out.println(desc);
        }
        
        // ジョブ実行完了後のメッセージを出力
        System.out.println("Batch Job execution completed.");
        

AddPeopleWriterTest.javaファイルの紹介

AddPeopleWriterTest.java ファイルは、JUnitを使用してテストを行うクラスであり、AddPeopleWriterTest の書き込みロジックをテストするために使用されます。

AddPeopleWriterTest.java ファイルのコードは、主に以下の部分で構成されています:

  1. 他のクラスとインターフェースのインポート。

    このファイルには以下のインターフェースとクラスが含まれていることを宣言します:

    • People クラス:データベースから読み取った人員情報を格納するために使用されます。
    • Test アノテーション:テストメソッドをマークするために使用されます。
    • RunWith アノテーション:テストランナーを指定するために使用されます。
    • Autowired アノテーション:依存性注入を行うために使用されます。
    • SpringBootApplication アノテーション:このクラスをSpring Bootアプリケーションのエントリポイントとしてマークするために使用されます。
    • SpringBootTest アノテーション:テストクラスをSpring Bootテストとして指定するために使用されます。
    • ComponentScan アノテーション:コンポーネントスキャンを行うパッケージまたはクラスを指定するために使用されます。
    • JdbcTemplate クラス:SQLステートメントを実行するメソッドを提供します。
    • SpringRunner クラス:テストランナーを SpringRunner として指定するために使用されます。
    • ArrayList クラス:空のリストを作成するために使用されます。
    • List インターフェース:クエリ結果セットを操作するために使用されます。

    コード:

    import com.oceanbase.example.batch.model.People;
    import org.junit.jupiter.api.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.test.context.junit4.SpringRunner;
    
    import java.util.ArrayList;
    import java.util.List;
    
  2. AddPeopleWriterTest クラスの定義。

    SpringBootTest アノテーションと SpringRunner ランナーを使用してSpring Bootの統合テストを行い、@ComponentScan アノテーションを使用してスキャンするパッケージパスを指定します。

    1. @Autowired を使用したインスタンスの注入。 @Autowired アノテーションを使用して、addPeopleWriter および JdbcTemplate インスタンスを自動注入します。

      コード:

      @Autowired
      private AddPeopleWriter addPeopleWriter;
      @Autowired
      private JdbcTemplate jdbcTemplate;
      
    2. @Test を使用したデータの挿入と出力のテスト。

      1. people テーブルへのデータ挿入。 まず、空の People オブジェクトリスト peopleList を作成します。次に、2つの People オブジェクト person1 と person2 を作成し、それぞれの名前と年齢のプロパティを設定します。その後、これら2つの People オブジェクトを peopleList リストに追加します。その後、addPeopleWriter の write メソッドを呼び出し、peopleList をパラメータとして渡して、これらの People オブジェクトをデータベースに書き込みます。

        コード:

           List<People> peopleList = new ArrayList<>();
           People person1 = new People();
           person1.setName("zhangsan");
           person1.setAge(27);
           peopleList.add(person1);
           People person2 = new People();
           person2.setName("lisi");
           person2.setAge(35);
           peopleList.add(person2);
           addPeopleWriter.write(peopleList);
        
      2. people テーブル内のデータの出力。 まず、JdbcTemplate を使用してクエリステートメント SELECT * FROM people を実行し、lambda 式を使用してクエリ結果を処理します。lambda 式では、rs.getString と rs.getInt メソッドを使用してクエリ結果セットのフィールド値を取得し、その値を新しく作成した People オブジェクトに設定します。新しく作成した各 People オブジェクトを結果リスト result に追加します。次に、people テーブル内のデータ: という一行のメッセージを出力します。その後、for ループを使用して result リスト内の各 People オブジェクトを走査し、System.out.println を使用して各オブジェクトの内容を出力します。最後に、バッチジョブの実行完了メッセージを出力します。

        コード:

           List<People> result = jdbcTemplate.query("SELECT * FROM people", (rs, rowNum) -> {
               People person = new People();
               person.setName(rs.getString("name"));
               person.setAge(rs.getInt("age"));
               return person;
           });
        
           System.out.println("people テーブル内のデータ:");
           for (People person : result) {
               System.out.println(person);
           }
        
           // バッチジョブの実行完了メッセージを出力
           System.out.println("Batch Job execution completed.");
        

全コード表示

pom.xml
application.properties
BatchApplication.java
BatchConfig.java
People.java
PeopleDESC.java
AddPeopleDescProcessor.java
AddDescPeopleWriter.java
AddPeopleWriter.java
BatchConfigTest.java
AddPeopleDescProcessorTest.java
AddDescPeopleWriterTest.java
AddPeopleWriterTest.java
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.11</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.oceanbase</groupId>
    <artifactId>java-oceanbase-springboot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>java-oceanbase-springbatch</name>
    <description>Demo project for Spring Batch</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.oceanbase</groupId>
            <artifactId>oceanbase-client</artifactId>
            <version>2.4.3</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-batch</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>javax.activation-api</artifactId>
            <version>1.2.0</version>
        </dependency>
        <dependency>
            <groupId>jakarta.persistence</groupId>
            <artifactId>jakarta.persistence-api</artifactId>
            <version>2.2.3</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

#configuration database

spring.datasource.driver-class-name=com.oceanbase.jdbc.Driver
spring.datasource.url=jdbc:oceanbase://host:port/schema_name?characterEncoding=utf-8
spring.datasource.username=user_name
spring.datasource.password=

# JPA
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update

# Spring Batch
spring.batch.job.enabled=false

#
logging.level.org.springframework=INFO
logging.level.com.example=DEBUG
package com.oceanbase.example.batch;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class BatchApplication {
    public static void main(String[] args) {
        SpringApplication.run(BatchApplication.class, args);
    }

    public void runBatchJob() {
    }
}

package com.oceanbase.example.batch.config;

import com.oceanbase.example.batch.model.People;
import com.oceanbase.example.batch.model.PeopleDESC;
import com.oceanbase.example.batch.processor.AddPeopleDescProcessor;
import com.oceanbase.example.batch.writer.AddDescPeopleWriter;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.Step;
import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
import org.springframework.batch.core.launch.support.RunIdIncrementer;
import org.springframework.batch.item.ItemProcessor;
import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ItemWriter;
import org.springframework.batch.item.database.JdbcCursorItemReader;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.BeanPropertyRowMapper;

import javax.sql.DataSource;
//import javax.activation.DataSource;

@Configuration
@EnableBatchProcessing
@SpringBootApplication
@ComponentScan("com.oceanbase.example.batch.writer")
@EnableAutoConfiguration
public class BatchConfig {
    @Autowired
    private JobBuilderFactory jobBuilderFactory;

    @Autowired
    private StepBuilderFactory stepBuilderFactory;

    @Autowired
    private DataSource dataSource;// Spring Bootの自動設定で提供されるデフォルトのdataSourceを使用する

    @Bean
    public ItemReader<People> peopleReader() {
        JdbcCursorItemReader<People> reader = new JdbcCursorItemReader<>();
        reader.setDataSource((javax.sql.DataSource) dataSource);
        reader.setRowMapper(new BeanPropertyRowMapper<>(People.class));
        reader.setSql("SELECT * FROM people");
        return reader;
    }

    @Bean
    public ItemProcessor<People, PeopleDESC> addPeopleDescProcessor() {
        return new AddPeopleDescProcessor();
    }

    @Bean
    public ItemWriter<PeopleDESC> addDescPeopleWriter() {
        return new AddDescPeopleWriter();
    }

    @Bean
    public Step step1(ItemReader<People> reader, ItemProcessor<People, PeopleDESC> processor,
                      ItemWriter<PeopleDESC> writer) {
        return stepBuilderFactory.get("step1")
                .<People, PeopleDESC>chunk(10)
                .reader(reader)
                .processor(processor)
                .writer(writer)
                .build();
    }

    @Bean
    public Job importJob(Step step1) {
        return jobBuilderFactory.get("importJob")
                .incrementer(new RunIdIncrementer())
                .flow(step1)
                .end()
                .build();
    }
}
package com.oceanbase.example.batch.model;

public class People {
    private String name;
    private int age;

        // getters and setters

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "People [name=" + name + ", age=" + age + "]";
    }
    // Getters and setters
}
package com.oceanbase.example.batch.model;

public class PeopleDESC {
    private String name;
    private int age;
    private String desc;
    private int id;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "PeopleDESC [name=" + name + ", age=" + age + ", desc=" + desc + "]";
    }
}
package com.oceanbase.example.batch.processor;

import com.oceanbase.example.batch.model.People;
import com.oceanbase.example.batch.model.PeopleDESC;
import org.springframework.batch.item.ItemProcessor;

public class AddPeopleDescProcessor implements ItemProcessor<People, PeopleDESC> {
    @Override
    public PeopleDESC process(People item) throws Exception {
        PeopleDESC desc = new PeopleDESC();
        desc.setName(item.getName());
        desc.setAge(item.getAge());
        desc.setDesc("This is " + item.getName() + " with age " + item.getAge());
        return desc;
    }
}
package com.oceanbase.example.batch.writer;

import com.oceanbase.example.batch.model.PeopleDESC;
import org.springframework.batch.item.ItemWriter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;

import java.util.List;

public class AddDescPeopleWriter implements ItemWriter<PeopleDESC> {
    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Override
    public void write(List<? extends PeopleDESC> items) throws Exception {
        // 既存のテーブルを削除する場合があるため、まず削除します。
        jdbcTemplate.execute("DROP TABLE people_desc");
        // テーブル作成ステートメント
        String createTableSql = "CREATE TABLE people_desc (id INT PRIMARY KEY, name VARCHAR2(255), age INT, description VARCHAR2(255))";
        jdbcTemplate.execute(createTableSql);
        for (PeopleDESC item : items) {
            String sql = "INSERT INTO people_desc (id, name, age, description) VALUES (?, ?, ?, ?)";
            jdbcTemplate.update(sql, item.getId(), item.getName(), item.getAge(), item.getDesc());
        }
    }
}
package com.oceanbase.example.batch.writer;

import com.oceanbase.example.batch.model.People;
import org.springframework.batch.item.ItemWriter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;

import java.util.List;

@Component
public class AddPeopleWriter implements ItemWriter<People> {
    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Override
    public void write(List<? extends People> items) throws Exception {
        // 既存のテーブルを削除する場合があるため、まず削除します。
        jdbcTemplate.execute("DROP TABLE people");
        // テーブル作成ステートメント
        String createTableSql = "CREATE TABLE people (name VARCHAR2(255), age INT)";
        jdbcTemplate.execute(createTableSql);
        for (People item : items) {
            String sql = "INSERT INTO people (name, age) VALUES (?, ?)";
            jdbcTemplate.update(sql, item.getName(), item.getAge());
        }
    }
}

package com.oceanbase.example.batch.config;

import org.junit.Assert;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.JobParameters;
import org.springframework.batch.core.JobParametersBuilder;
import org.springframework.batch.core.launch.JobLauncher;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import javax.batch.runtime.BatchStatus;

@RunWith(SpringRunner.class)
@SpringBootTest
public class BatchConfigTest {
    @Autowired
    private JobLauncherTestUtils jobLauncherTestUtils;

    @Test
    public void testJob() throws Exception {
        JobParameters jobParameters = new JobParametersBuilder()
                .addString("jobParam", "paramValue")
                .toJobParameters();

        JobExecution jobExecution = jobLauncherTestUtils.launchJob(jobParameters);

        Assert.assertEquals(BatchStatus.COMPLETED, jobExecution.getStatus());
    }

    @Autowired
    private JobLauncher jobLauncher;

    @Autowired
    private Job job;

    private class JobLauncherTestUtils {
        public JobExecution launchJob(JobParameters jobParameters) throws Exception {
            return jobLauncher.run(job, jobParameters);
        }
    }
}
package com.oceanbase.example.batch.processor;

import com.oceanbase.example.batch.model.People;
import com.oceanbase.example.batch.model.PeopleDESC;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class AddPeopleDescProcessorTest {
    @Autowired
    private AddPeopleDescProcessor processor;

    @Test
    public void testProcess() throws Exception {
        People people = new People();
  //      people.setName("John");
  //      people.setAge(25);

        PeopleDESC desc = processor.process(people);

//      Assert.assertEquals("John", desc.getName());
//        Assert.assertEquals(25, desc.getAge());
 //       Assert.assertEquals("This is John with age 25", desc.getDesc());
    }
}

package com.oceanbase.example.batch.writer;

import com.oceanbase.example.batch.model.PeopleDESC;
import org.junit.Assert;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.ArrayList;
import java.util.List;

@RunWith(SpringRunner.class)
@SpringBootTest
public class AddDescPeopleWriterTest {
    @Autowired
    private AddDescPeopleWriter writer;
    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Test
    public void testWrite() throws Exception {

        // people_descテーブルにデータを挿入する
        List<PeopleDESC> peopleDescList = new ArrayList<>();
        PeopleDESC desc1 = new PeopleDESC();
        desc1.setId(1);
        desc1.setName("John");
        desc1.setAge(25);
        desc1.setDesc("This is John with age 25");
        peopleDescList.add(desc1);
        PeopleDESC desc2 = new PeopleDESC();
        desc2.setId(2);
        desc2.setName("Alice");
        desc2.setAge(30);
        desc2.setDesc("This is Alice with age 30");
        peopleDescList.add(desc2);
        writer.write(peopleDescList);

        String selectSql = "SELECT COUNT(*) FROM people_desc";
        int count = jdbcTemplate.queryForObject(selectSql, Integer.class);
        Assert.assertEquals(2, count);

        // people_descテーブルのデータを出力する
        List<PeopleDESC> resultDesc = jdbcTemplate.query("SELECT * FROM people_desc", (rs, rowNum) -> {
            PeopleDESC desc = new PeopleDESC();
            desc.setId(rs.getInt("id"));
            desc.setName(rs.getString("name"));
            desc.setAge(rs.getInt("age"));
            desc.setDesc(rs.getString("description"));
            return desc;
        });

        System.out.println("people_desc テーブルのデータ:");
        for (PeopleDESC desc : resultDesc) {
            System.out.println(desc);
        }

        // バッチジョブ実行完了後の情報を出力する
        System.out.println("Batch Job execution completed.");
    }
}
package com.oceanbase.example.batch.writer;

import com.oceanbase.example.batch.model.People;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.ArrayList;
import java.util.List;

@RunWith(SpringRunner.class)
@SpringBootTest
@SpringBootApplication
@ComponentScan("com.oceanbase.example.batch.writer")
public class AddPeopleWriterTest {

    @Autowired
    private AddPeopleWriter addPeopleWriter;
    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Test
    public void testWrite() throws Exception {
        // peopleテーブルにデータを挿入
        List<People> peopleList = new ArrayList<>();
        People person1 = new People();
        person1.setName("zhangsan");
        person1.setAge(27);
        peopleList.add(person1);
        People person2 = new People();
        person2.setName("lisi");
        person2.setAge(35);
        peopleList.add(person2);
        addPeopleWriter.write(peopleList);

        // クエリして結果を出力
        List<People> result = jdbcTemplate.query("SELECT * FROM people", (rs, rowNum) -> {
            People person = new People();
            person.setName(rs.getString("name"));
            person.setAge(rs.getInt("age"));
            return person;
        });

        System.out.println("people テーブルのデータ:");
        for (People person : result) {
            System.out.println(person);
        }

        // バッチジョブ実行完了後の情報を出力
        System.out.println("Batch Job execution completed.");
    }
}

関連ドキュメント

OceanBase Connector/Jの詳細については、OceanBase JDBCドライバを参照してください。

前のトピック

SpringBootでOB Cloudに接続するサンプルプログラム
最後

次のトピック

Spring JDBCでOB Cloudデータベースに接続するサンプルプログラム
次
このページの内容
前提条件
手順
ステップ1:OB Cloudデータベースの接続文字列を取得する
ステップ2:java-oceanbase-springbatch プロジェクトをIDEAにインポートする
ステップ3:java-oceanbase-springbatch プロジェクトのデータベース接続情報を修正する
ステップ4:java-oceanbase-springbatch プロジェクトを実行する
プロジェクトコードについて
pom.xmlコードの紹介
application.propertiesファイルの紹介
BatchApplication.javaファイルの紹介
BatchConfig.javaファイルの紹介
People.javaファイルの紹介
PeopleDESC.javaファイルの紹介
AddPeopleDescProcessor.javaファイルの紹介
AddDescPeopleWriter.javaファイルの紹介
AddPeopleWriter.javaファイルの紹介
BatchConfigTest.javaファイルの紹介
AddPeopleDescProcessorTest.javaファイルの紹介
AddDescPeopleWriterTest.javaファイルの紹介
AddPeopleWriterTest.javaファイルの紹介
全コード表示
関連ドキュメント