OceanBase
English日本語简体中文
ドキュメントホーム
製品
エコシステム
リリース

データベース

OceanBase CloudOceanBaseデータベース

データベース

OceanBase CloudOceanBaseデータベース
OceanBase CloudOceanBaseデータベース

OceanBase Cloud

  • 製品アップデート
    • What's new
      • 2026年リリース履歴
      • 2025年リリース履歴
      • 2024年リリース履歴
      • バージョン履歴
    • Product announcements
      • OceanBase Alibaba Cloudプロキシクラスタの基盤コンポーネントのアップグレードに関するお知らせ
      • AIサービスモデルの追加・削除に関するお知らせ
      • データ開発機能のサービス終了に関するお知らせ
      • バックアップ・リストアの商用化戦略の最適化
      • データベースプロキシの課金変更について
      • AWSインスタンスの料金調整について
      • OMS 無料提供対象インスタンスの正式課金開始に関するお知らせ
      • OceanBaseのAWSチャネルにおけるトラフィック料金調整に関するお知らせ
  • プロダクトの紹介
    • OceanBase Cloudの概要
    • 管理モードと適用シナリオ
    • コア機能
      • クロスクラウドアクティブ-アクティブによる高可用性の実現
      • クロスクラウドのプライマリ/スタンバイデータベースによる高可用性の実現
      • 多層的オンラインスケーリングとオンデマンド構成変更
    • デプロイプラン
    • 製品仕様
    • プロダクト課金
      • 請求の概要
      • インスタンス課金説明
        • Alibaba Cloudインスタンスの課金
        • Huawei Cloudインスタンスの課金
        • AWSインスタンスの課金
        • Google Cloud(GCP)インスタンスの課金
        • Azureインスタンスの課金
      • バックアップとリストアの課金
      • SQL監査の料金説明
      • データ移行の料金に関する説明
      • データベースプロキシの課金について
      • Binlogサービスの料金説明
      • 読み取り専用レプリカの料金説明
      • AIモデルの課金に関する説明
    • サポートするデータベースバージョン
  • クイックスタート
    • フラッグシップ版クイックスタート
    • フラッグシップ版クラスタインスタンスの作成
    • テナントの作成
    • データベースの使用
  • DBaaS インスタンスの使用
    • フラッグシップ版インスタンスの使用
      • フラッグシップ版インスタンスの概要
      • インスタンスの作成
        • 概要
        • OceanBase Cloud公式サイト経由での作成
        • AWS Marketplace経由での作成
        • GCP Marketplace経由での作成
        • Huawei Cloud Marketでインスタンスを作成する
        • Alibaba Cloud Marketplace経由での作成
        • Azure Marketplaceでインスタンスを作成する
      • インスタンスへの接続
        • ネットワーク接続の設定
          • 概要
          • パブリックIPアドレスを使用したデータベースへの接続
          • Azure Private Linkを使用したデータベースへの接続
          • Google Cloud Private Service Connectを使用したデータベースへの接続
          • Huawei Cloud VPCエンドポイントを使用してデータベースに接続する
          • Huawei Cloudピアリング接続を使用してデータベースに接続する
          • AWS PrivateLink を使用したデータベースへの接続
          • AWSピアリング接続を使用してデータベースに接続する
          • Alibaba Cloudのプライベートネットワーク接続を使用したデータベース接続
        • MySQL モード接続
          • クライアントを介した接続
            • デスクトップ版 ODC を使用した OceanBase Cloud クラウドデータベースへの接続
            • MySQLクライアントを使用したOceanBase Cloudへの接続
            • OBClient を使用した OceanBase Cloud クラウドデータベースへの接続
          • ドライバー/ORM フレームワークを介した接続
            • Java
              • SpringBootを使用してOceanBase Cloudデータベースに接続するサンプルプログラム
              • SpringBatchでOB Cloudデータベースに接続するサンプルプログラム
              • Spring JDBCを使用したOceanBase Cloud接続のサンプルプログラム
              • SpringDataJPA による OB Cloud への接続サンプルプログラム
              • Hibernate を使用して OceanBase Cloud クラウドデータベースに接続するサンプルプログラム
              • MyBatis を使用して OceanBase Cloud データベースに接続するサンプルプログラム
              • MySQL Connector/J を使用して OceanBase Cloud データベースに接続するサンプルプログラム
              • TestContainers Java を使用して OceanBase Cloud データベースに接続するサンプルプログラム
            • Python
              • mysqlclient を使用した OceanBase Cloud クラウドデータベース接続のサンプルプログラム
              • PyMySQL による OceanBase Cloud データベース接続のサンプルプログラム
              • MySQL-connector-pythonによるOceanBase Cloud接続のサンプルプログラム
              • SQLAlchemyを使用したOceanBase Cloudへの接続サンプルプログラム
              • Djangoを使用したOceanBase Cloud接続のサンプルプログラム
              • peeweeを使用したOceanBase Cloudへの接続サンプルプログラム
            • C
              • MySQL Connector/C を使用した OceanBase Cloud データベースへの接続サンプルプログラム
            • Go
              • Go-SQL-Driver/MySQL を使用して OceanBase Cloud クラウドデータベースに接続するサンプルプログラム
              • GORM を使用した OceanBase Cloud データベース接続のサンプルプログラム
            • PHP
              • EXTドライバを使用してOceanBase Cloudへ接続するサンプルプログラム
              • MySQLiドライバを使用したOceanBase Cloudへの接続
              • PDOドライバを使用したOceanBase Cloudへの接続
            • Rust
              • Rustを使用したOceanBase Cloud接続のサンプルプログラム
              • SeaORM を使用した OceanBase Cloud クラウドデータベース接続のサンプルプログラム
            • Ruby
              • ActiveRecordによるOceanBase Cloud接続のサンプルプログラム
              • mysql2 を使用した OceanBase Cloud クラウドデータベース接続のサンプルプログラム
              • Sequelを使用したOceanBase Cloudへの接続サンプルプログラム
          • データベース接続プールの使用
            • データベース接続プールの設定
            • Tomcat接続プールを使用してOceanBase データベースに接続するサンプルプログラム
            • C3P0 コネクションプールを使用して OceanBase データベースに接続するサンプルプログラム
            • Proxoolコネクションプールを使用してOceanBaseデータベースに接続するサンプルプログラム
            • HikariCP コネクションプールを使用して OceanBase データベースに接続するサンプルプログラム
            • DBCPコネクションプールを使用してOceanBaseデータベースに接続するサンプルプログラム
            • Commons Pool を使用して OceanBase データベースに接続するサンプルプログラム
            • Druid コネクションプールを使用して OceanBase データベースに接続するサンプルプログラム
        • Oracle モード接続
          • クライアントを介した接続
            • OBClientを使用してOceanBase Cloudデータベースに接続する
            • デスクトップ版ODCによるOceanBase Cloudデータベースへの接続
          • ドライバー/ORM フレームワークを介した接続
            • Java
              • OceanBase Connector/J による OceanBase Cloud クラウドデータベース接続サンプルプログラム
              • SpringBootでOceanBase Cloudデータベースに接続するサンプルプログラム
              • SpringBatchでOceanBase Cloudに接続するサンプルプログラム
              • Spring JDBCによるOceanBase Cloudデータベース接続サンプルプログラム
              • SpringDataJPA による OceanBase Cloud クラウドデータベース接続サンプルプログラム
              • HibernateでOceanBase Cloudに接続するサンプルプログラム
              • MyBatisでOceanBase Cloudに接続するサンプルプログラム
              • JfinalによるOceanBase Cloudデータベース接続サンプルプログラム
            • Python
              • Pythonドライバーを使用してOceanBase CloudのOracleモードに接続する方法
            • C/C++
              • OceanBase Connector/C による OceanBase Cloud への接続サンプルプログラム
              • OceanBase Connector/ODBC による OceanBase Cloud クラウドデータベース接続サンプルプログラム
              • SqlSugar による OceanBase Cloud への接続サンプルプログラム
          • データベース接続プールの使用
            • データベース接続プールの設定
            • Tomcat接続プールを使用したOceanBase Cloudデータベース接続サンプルプログラム
            • C3P0接続プールでOceanBase Cloudに接続するサンプルプログラム
            • Proxool接続プールを使用したOceanBase Cloudデータベース接続サンプルプログラム
            • HikariCP接続プールを使用したOceanBase Cloudデータベース接続サンプルプログラム
            • DBCP接続プールを使用したOceanBase Cloudデータベース接続サンプルプログラム
            • Commons Pool による OceanBase Cloud への接続サンプルプログラム
            • Druid接続プールを使用したOceanBase Cloudデータベース接続サンプルプログラム
        • KV モード接続
          • OBKV-HBase クライアントを使用したクラスタへの接続
      • 開発リファレンス
        • 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を使用したクエリの実行
            • 集合演算
          • トランザクション
            • トランザクション管理の概要
            • トランザクションの開始
            • セーブポイント
              • セーブポイントの設定
              • トランザクションを特定のセーブポイントまでロールバック
            • トランザクションのコミット
            • トランザクションのロールバック
        • KV モード
          • OBKV-Table Java開発ガイド
          • テーブルデータ操作例
            • OBKV-Tableを使用したデータの挿入
            • OBKV-Tableを使用したデータのクエリ
            • OBKV-Tableを使用したデータの更新
            • OBKV-Tableを使用したデータの削除
          • OBKV Table Java 開発
            • OBKV-Table Javaクライアントを使用してクラスタに接続する
          • HBase データ操作例
            • OBKV-HBaseアプリケーション開発の概要
            • OBKV-HBaseデータ操作の例
      • インスタンス管理
        • インスタンス管理
          • インスタンスリストを表示
          • インスタンスワークベンチ概要
          • インスタンスの一時停止/起動
          • Unit 移行
        • インスタンステナント管理
          • テナントワークベンチ
          • テナントの作成
          • テナント仕様の変更
          • テナント名の変更
          • アクセスアドレスの追加
          • リソース分離管理
            • リソース分離の概要
            • リソースグループ管理
              • リソースグループの作成
              • リソースグループの表示
              • リソースグループの編集
              • リソースグループの削除
            • 分離ルールの管理
              • 分離ルールの作成
              • 分離ルールの表示
              • 分離ルールの編集
              • 分離ルールの削除
          • プライマリゾーンの変更
          • プロキシアドレスの最大接続数の変更
          • AI Function 組み込みモデルの有効化
          • テナントパフォーマンスモニタリング
            • テナント監視の概要
            • パフォーマンスと SQL 監視
            • トランザクション監視
            • ストレージとキャッシュの監視
            • Binlog サービスの監視
            • テナントのカスタム監視レポート
          • 診断
            • パフォーマンス監視データの表示
            • リアルタイム診断
              • SQL 診断
                • Top SQL
                • Slow SQL
                • 疑わしい SQL
                • 高リスク SQL
                • SQL の詳細
              • セッション管理
                • セッション管理
              • 最適化管理
                • 有効な Outline の管理
                • 最適化履歴の表示
              • SQL監査
          • パラメータ管理
            • テナントパラメータ管理
            • パラメータ一覧
            • パラメータテンプレートの説明
          • テナントの削除
          • データベースとアカウント管理
            • アカウントの作成
            • アカウントの管理
            • データベースの作成(MySQLのみ)
            • データベースの管理(MySQLのみ)
        • インスタンズパフォーマンスモニタリング
          • クラスタ監視の概要
          • クラスタデータベースのパフォーマンス監視
          • クラスタ多次元指標のパフォーマンス監視
          • クラスタホストのパフォーマンス監視
          • データベースプロキシ監視の詳細
          • データベースプロキシホスト監視の詳細
          • クロスクラウドネットワークのパフォーマンス監視
          • クラスタのカスタム監視レポート
        • データマージ
          • メジャーコンパクションの開始
          • メジャーコンパクション記録の表示
          • メジャーコンパクション時間の変更
        • インスタンスパラメータ管理
          • パラメータ管理
          • パラメータ一覧の説明
        • インスタンス設定の変更
          • コンピューティングの自動スケールアップを設定する
          • ストレージの自動拡張機能の有効化
          • クラスタインスタンスの構成変更履歴の表示
          • インスタンス設定の変更(従量課金)
          • デプロイプランの切り替え
        • スタンバイインスタンス管理
          • スタンバイインスタンスの概要
          • スタンバイインスタンスの作成
          • クロスクラウドスタンバイインスタンスの作成
          • プライマリ/スタンバイインスタンスワークベンチ
          • プライマリ/スタンバイ同期ポリシーの設定
          • プライマリ/スタンバイデータベースのグローバルアドレス設定
          • スタンバイデータベースの書き込みリクエスト自動ルーティングを設定する
          • プライマリ/スタンバイインスタンスの切り替え
          • ディザスタリカバリ切り替え
          • プライマリ/スタンバイインスタンスのデカップリング
          • スタンバイインスタンスの解放
        • インスタンスの解放
        • データベースプロキシ
          • データベースプロキシの概要
          • データベースプロキシ管理
          • ダイレクトロード
        • アラート管理
          • アラート管理
          • アラートルールの管理
            • アラートルールの作成
            • アラートルールの表示
            • アラートルールの編集
            • アラートルールの削除
          • アラート履歴の表示
          • アラートルールテンプレートの管理
            • トリガー条件テンプレートの作成
            • トリガー条件テンプレートの表示
            • トリガー条件テンプレートの編集
            • トリガー条件テンプレートのコピー
            • トリガー条件テンプレートの削除
          • アラーム抑制ルールの管理
            • アラートミュート規則の作成
            • アラートミュートルールの確認
            • アラートミュートルールの編集
            • アラートミュートルールの削除
          • アラート通知テンプレートの管理
            • アラート通知テンプレートの作成
            • アラート通知テンプレートの表示
            • アラート通知テンプレートの編集
            • アラート通知テンプレートのコピー
            • アラート通知テンプレートの削除
          • アラート連絡先管理
            • アラート連絡先の追加
            • アラート連絡先グループの追加
            • アラート連絡先の表示
            • アラート連絡先の編集
            • アラート連絡先の削除
            • Webhook アドレスの取得
          • カスタムアラートで利用可能なメトリック
        • バックアップとリカバリ
          • バックアップとリストアの概要
          • バックアップポリシー
          • 今すぐバックアップ
          • データバックアップ
          • リストアの開始
          • データリストア
          • インスタンスごみ箱内のバックアップデータのリストア
        • 診断
          • 性能監視データの表示
          • 容量診断
          • ワンクリック診断
            • ワンクリック診断の開始
            • ワンクリック診断レポートの表示
              • 異常イベント
              • リアルタイム診断
              • 最適化の推奨事項
              • 容量管理
              • セキュリティ管理
          • リアルタイム診断
            • SQL 診断
              • Top SQL
              • Slow SQL
              • 不審な SQL
              • 高リスク SQL
              • SQL 詳細
              • SQL 監視メトリクスリスト
            • セッション管理
              • セッション管理
            • リクエスト分析
              • リクエスト分析
          • ルート cause 診断
            • 異常イベントの表示
            • システム自律機能の有効化
          • SQL監査
          • マテリアライズドビュー分析
          • 最適化センター
            • 最適化の推奨事項
            • 有効な Outline の管理
            • SQL Review
            • 最適化履歴の表示
        • タグ管理
        • 読み取り専用レプリカ管理
          • 読み取り専用レプリカの概要
          • インスタンス読み取り専用レプリカ
            • インスタンスの読み取り専用レプリカを追加する
            • インスタンスの読み取り専用レプリカ関連情報の表示
            • 読み取り専用レプリカの構成変更管理
            • インスタンスの読み取り専用レプリカを削除
          • テナント読み取り専用レプリカ
            • テナントの読み取り専用レプリカを追加する
            • テナントの読み取り専用レプリカ関連情報の表示
            • テナントの読み取り専用レプリカの変更
            • テナントの読み取り専用レプリカの削除
        • JVM 環境依存サービス管理
      • データソース管理
        • データソース管理の概要
        • データソースの管理
        • ユーザー権限の説明
          • 互換性評価ユーザー権限
          • データ移行ユーザー権限
          • 性能評価ユーザー権限
          • データアーカイブのユーザー権限
          • データクリーンアップのユーザー権限
        • プライベート接続の選択
          • AWSエンドポイントの設定
          • Huawei Cloudエンドポイントの設定
          • Alibaba Cloud エンドポイントの設定
          • Azureエンドポイントの設定
          • プライベートIPアドレス範囲の説明
        • パブリック接続の選択
          • AWS インスタンスのホワイトリストへの追加
          • Huawei Cloudインスタンスのホワイトリストに追加する
          • Alibaba Cloudインスタンスの許可リストへの追加
          • Azureインスタンスのホワイトリストに追加する
      • データライフサイクル管理
        • データアーカイブ
        • データクリーンアップ
      • ゴミ箱管理
        • インスタンスごみ箱
        • データベーステーブルゴミ箱管理
          • 概要
          • インスタンスデータベース・テーブルのごみ箱
          • テナントのデータベース/テーブルごみ箱
    • トランザクション型インスタンスの使用
      • トランザクション型インスタンスの概要
      • インスタンスの作成
        • インスタンスの作成
        • OceanBase公式Webサイトからインスタンスを作成する
        • AWS Marketplaceでインスタンスを作成する
        • GCP Marketplaceでインスタンスを作成する
        • Huawei Cloud Marketを通じてインスタンスを作成する
        • アリババクラウドマーケットプレイスでインスタンスを作成する
        • Azure Marketplaceでインスタンスを作成する
      • インスタンスへの接続
        • MySQL モード
          • 接続方法の概要
          • 接続文字列の取得
            • 概要
            • AWS PrivateLinkを使用したデータベースへの接続
            • Azureプライベートネットワーク接続を使用してデータベースにアクセスする
            • Google Cloud Private Service Connectを使用した接続
            • AWSピアリング接続を使用してデータベースに接続する
            • Huawei Cloud VPC Endpointを使用した接続
            • Alibaba CloudのVPC接続を使用したデータベース接続
            • 公開IPアドレスを使用してデータベースに接続する
            • Huawei Cloudのピア接続を使用してデータベースに接続する
          • クライアントを介した接続
            • デスクトップ版ODCによるOceanBase Cloudデータベースへの接続
            • MySQLクライアントを使用してOceanBase Cloudデータベースに接続する
            • OBClientを使用してOceanBase Cloudデータベースに接続する
          • ドライバー/ORM フレームワークを介した接続
            • Java
              • SpringBootでOceanBase Cloudに接続するサンプルプログラム
              • SpringBatchでOceanBase Cloudに接続するサンプルプログラム
              • Spring JDBCによるOceanBase Cloudデータベース接続サンプルプログラム
              • SpringDataJPA による OceanBase Cloud への接続サンプルプログラム
              • HibernateによるOceanBase Cloudデータベース接続サンプルプログラム
              • MyBatisでOceanBase Cloudデータベースに接続するサンプルプログラム
              • MySQL Connector/J による OceanBase Cloud データベース接続サンプルプログラム
              • TestContainers JavaによるOceanBase Cloudデータベース接続サンプルプログラム
            • Python
              • mysqlclient による OceanBase Cloud への接続サンプルプログラム
              • PyMySQLでOceanBase Cloudに接続するサンプルプログラム
              • MySQL-connector-pythonでOceanBase Cloudに接続するサンプルプログラム
              • SQLAlchemyでOceanBase Cloudに接続するサンプルプログラム
              • DjangoでOceanBase Cloudに接続するサンプルプログラム
              • peeweeを使用したOceanBase Cloud接続サンプルプログラム
            • C
              • MySQL Connector/C による OceanBase Cloud クラウドデータベース接続サンプルプログラム
            • Go
              • Go-SQL-Driver/MySQL で OceanBase Cloud に接続するサンプルプログラム
              • GORMでOceanBase Cloudに接続するサンプルプログラム
            • PHP
              • EXTドライバーを使用したOceanBase Cloud接続サンプルプログラム
              • MySQLiドライバーを使用してOceanBase Cloudに接続する
              • PDOドライバーを使用したOceanBase Cloudへの接続
            • Rust
              • RustでOceanBase Cloudに接続するサンプルプログラム
              • SeaORM による OceanBase Cloud クラウドデータベース接続サンプルプログラム
            • Ruby
              • ActiveRecordを使用したOceanBase Cloud接続サンプルプログラム
              • mysql2を使用したOceanBase Cloud接続サンプルプログラム
              • Sequelを使用したOceanBase Cloud接続サンプルプログラム
          • データベース接続プールの使用
            • データベース接続プールの設定
            • Tomcat接続プールでOceanBaseデータベースに接続するサンプルプログラム
            • C3P0接続プールでOceanBaseデータベースに接続するサンプルプログラム
            • Proxool接続プールを使用したOceanBaseデータベース接続サンプルプログラム
            • HikariCP接続プールでOceanBaseデータベースに接続するサンプルプログラム
            • DBCP接続プールでOceanBaseデータベースに接続するサンプルプログラム
            • Commons Pool による OceanBase データベース接続サンプルプログラム
            • Druid接続プールでOceanBaseデータベースに接続するサンプルプログラム
        • Oracle モード
          • 接続方法の概要
          • 接続文字列の取得
            • 概要
            • AWS PrivateLinkを使用してデータベースに接続する
            • Azureプライベートネットワーク接続を使用してデータベースにアクセスする
            • Google Cloud Private Service Connectを使用した接続
            • AWSピアリング接続を使用してデータベースに接続する
            • Huawei Cloud VPCエンドポイントを使用した接続
            • 公開IPアドレスを使用してデータベースに接続する
          • クライアントを介した接続
            • OBClientを使用してOceanBase Cloudに接続する
            • デスクトップ版ODCを使用してOceanBase Cloudデータベースに接続する
          • ドライバー/ORM フレームワークを介した接続
            • Java
              • OceanBase Connector/J による OceanBase Cloud クラウドデータベース接続サンプルプログラム
              • SpringBootでOceanBase Cloudに接続するサンプルプログラム
              • SpringBatchでOceanBase Cloudに接続するサンプルプログラム
              • Spring JDBCによるOceanBase Cloudデータベース接続サンプルプログラム
              • SpringDataJPAでOceanBase Cloudに接続するサンプルプログラム
              • HibernateによるOceanBase Cloudデータベース接続サンプルプログラム
              • MyBatisでOceanBase Cloudデータベースに接続するサンプルプログラム
              • JfinalによるOceanBase Cloudデータベース接続サンプルプログラム
            • Python
              • PythonドライバーによるOceanBase CloudOracleモードへの接続ガイド
            • C/C++
              • OceanBase Connector/C による OceanBase Cloud への接続サンプルプログラム
              • OceanBase Connector/ODBC による OceanBase Cloud クラウドデータベース接続サンプルプログラム
              • SqlSugarでOceanBase Cloudに接続するサンプルプログラム
          • データベース接続プールの使用
            • データベース接続プールの設定
            • Tomcat接続プールでOceanBase Cloudに接続するサンプルプログラム
            • C3P0接続プールでOceanBase Cloudに接続するサンプルプログラム
            • Proxool接続プールを使用したOceanBase Cloudデータベース接続サンプルプログラム
            • HikariCP接続プールでOceanBase Cloudに接続するサンプルプログラム
            • DBCP接続プールを使用してOceanBase Cloudに接続するサンプルプログラム
            • Commons Pool による OceanBase Cloud データベース接続サンプルプログラム
            • Druid接続プールでOceanBase 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
              • サブクエリ
              • ラテラル派生テーブル
            • クエリでの演算子と関数の使用
              • クエリでの算術演算子の使用
              • クエリでの数値関数の使用
              • クエリにおける文字列連結演算子の使用
              • クエリでの文字列関数の使用
              • クエリにおける時刻関数の使用
              • クエリでの型変換関数の使用
              • クエリにおける集約関数の使用
              • クエリでのNULL関連関数の使用
              • クエリでのCASE関数の使用
              • SELECT ... FOR UPDATEステートメントを使用してクエリ結果をロックする
            • DBLinkを使用したクエリの実行
            • 集合演算
          • トランザクション
            • トランザクション管理の概要
            • トランザクションの開始
            • セーブポイント
              • セーブポイントの設定
              • トランザクションを特定のセーブポイントまでロールバック
            • トランザクションのコミット
            • トランザクションのロールバック
      • インスタンス管理
        • インスタンス管理
          • インスタンスリストの表示
          • インスタンスダッシュボードの概要
          • インスタンスの一時停止・再開
          • Unit移行
        • インスタンステナント管理
          • テナントダッシュボード
          • テナントの作成
          • テナント仕様の変更
          • テナント名の変更
          • アクセスアドレスの追加
          • リソース分離管理
            • リソース分離の概要
            • リソースグループ管理
              • リソースグループの作成
              • リソースグループの表示
              • リソースグループの編集
              • リソースグループの削除
            • 分離ルールの管理
              • 分離ルールの作成
              • 分離ルールの表示
              • 分離ルールの編集
              • 分離ルールの削除
          • プライマリゾーンの変更
          • プロキシアドレスの最大接続数の変更
          • AI Functionの組み込みモデルを有効にする
          • テナントパフォーマンスモニタリング
            • テナント監視の概要
            • パフォーマンスとSQL監視
            • トランザクション監視
            • ストレージとキャッシュの監視
            • Binlogサービス監視
            • テナントのカスタムモニタリングレポート
          • 診断
            • リアルタイム診断
              • SQL 診断
                • Top SQL
                • スローSQL
                • 疑わしいSQL
                • ハイリスクSQL
              • SQL監査
          • パラメータ管理
            • テナントパラメータの管理
            • パラメータ一覧の説明
            • パラメータテンプレートの説明
          • テナントの削除
          • データベースとアカウント管理
            • アカウントの作成
            • アカウントの管理
            • データベースの作成(MySQL互換モードのみ)
            • データベースの管理 (MySQL互換モードのみ)
        • インスタンズパフォーマンスモニタリング
          • クラスタ監視の概要
          • クラスタデータベースのパフォーマンス監視
          • クラスタ多次元指標のパフォーマンス監視
          • クラスタホストのパフォーマンス監視
          • データベースプロキシの監視詳細
          • データベースプロキシホストの監視詳細
          • クロスクラウドネットワークパフォーマンス監視
          • クラスタのカスタムモニタリングレポート
        • データマージ
          • メジャーコンパクションの開始
          • メジャーコンパクションレコードの表示
          • メジャーコンパクションの開始時刻を変更する
        • インスタンスパラメータ管理
          • パラメータ管理
          • パラメータ一覧の説明
        • インスタンス設定の変更
          • ストレージの自動拡張を設定する
          • クラスタインスタンスの構成変更履歴を表示する
          • インスタンス構成の変更 (従量課金)
          • デプロイプランの切り替え
        • スタンバイインスタンス管理
          • スタンバイインスタンスの概要
          • スタンバイインスタンスの作成
          • クロスクラウドスタンバイインスタンスの作成
          • プライマリ/スタンバイインスタンスの管理画面
          • プライマリ/スタンバイデータベースのグローバルアドレスの設定
          • スタンバイデータベースの書き込みリクエストの自動ルーティングを設定する
          • プライマリ/スタンバイインスタンスの切り替え
          • ディザスタリカバリフェイルオーバー
          • プライマリ/スタンバイインスタンスの分離
          • スタンバイインスタンスのリリース
        • インスタンスのリリース
        • データベースプロキシ
          • データベースプロキシの概要
          • データベースプロキシの管理
          • ダイレクトロード
        • アラート管理
          • アラート管理
          • アラートルールの管理
            • アラートルールの作成
            • アラートルールの表示
            • アラートルールの編集
            • アラートルールの削除
          • アラート履歴の表示
          • アラートルールテンプレートの管理
            • トリガー条件テンプレートの作成
            • トリガー条件テンプレートの表示
            • トリガー条件テンプレートの編集
            • トリガー条件テンプレートのコピー
            • トリガー条件テンプレートの削除
          • アラーム抑制ルールの管理
            • アラートミュートルールの作成
            • アラートミュートルールの表示
            • アラートミュートルールの編集
            • アラートミュートルールの削除
          • アラート通知テンプレートの管理
            • アラート通知テンプレートの作成
            • アラート通知テンプレートの表示
            • アラート通知テンプレートの編集
            • アラート通知テンプレートのコピー
            • アラート通知テンプレートの削除
          • アラート連絡先管理
            • アラート連絡先の追加
            • アラート連絡先グループの追加
            • アラート連絡先の表示
            • アラート連絡先の編集
            • アラート連絡先の削除
            • Webhook アドレスの取得
          • カスタムアラートで利用可能なモニタリング指標
        • バックアップとリカバリ
          • バックアップ・リストアの概要
          • バックアップポリシー
          • 今すぐバックアップ
          • データバックアップ
          • データ復元の開始
          • データ復元
          • インスタンスのごみ箱からデータバックアップを復元する
        • 診断
          • パフォーマンス監視データの表示
          • 容量診断
          • ワンクリック診断
            • ワンクリック診断の開始
            • ワンクリック診断レポートの表示
              • 異常イベント
              • リアルタイム診断
              • 最適化提案
              • 容量管理
              • セキュリティ管理
          • リアルタイム診断
            • SQL 診断
              • Top SQL
              • スローSQL
              • 疑わしいSQL
              • ハイリスクSQL
              • SQLの詳細
              • SQLモニタリングメトリクス一覧
            • セッション管理
              • セッション管理
            • リクエスト分析
              • リクエスト分析
          • ルート cause 診断
            • 例外イベントの表示
            • システム自律性の有効化
          • SQL監査
          • マテリアライズドビューの分析
          • 最適化センター
            • 最適化の提案
            • 有効なアウトラインの管理
            • SQL Review
            • 最適化履歴の表示
        • タグの管理
        • 読み取り専用レプリカ管理
          • 読み取り専用レプリカの概要
          • インスタンス読み取り専用レプリカ
            • インスタンスに読み取り専用レプリカを追加する
            • インスタンスの読み取り専用レプリカ関連情報の表示
            • 読み取り専用レプリカの構成管理
            • インスタンスの読み取り専用レプリカを削除する
          • テナント読み取り専用レプリカ
            • テナントに読み取り専用レプリカを追加する
            • テナントの読み取り専用レプリカ関連情報の表示
            • テナントの読み取り専用レプリカを変更する
            • テナントの読み取り専用レプリカを削除する
        • JVM環境依存サービスの管理
      • データソース管理の概要
      • データソース管理
        • プライベート接続
          • Google Cloudエンドポイントの設定
        • パブリック接続
          • Google Cloudインスタンスのアローリストに追加する
      • データライフサイクル管理
        • データライフサイクル管理の概要
        • データアーカイブ
        • データのクリーンアップ
        • アーカイブ設定の説明
      • ゴミ箱管理
        • インスタンスごみ箱
        • データベーステーブルゴミ箱管理
          • 概要
          • インスタンスのデータベース・テーブルのごみ箱
          • テナントデータベース・テーブルのごみ箱
    • 分析型インスタンスの使用
      • 分析型インスタンスの概要
      • OceanBase APのコア機能
      • インスタンスの作成
      • インスタンスへの接続
        • 接続方法の概要
        • 接続文字列の取得
          • 概要
          • AWS PrivateLinkを使用した接続
          • Huawei Cloud VPCエンドポイントを使用してデータベースに接続する
          • パブリックアドレスを使用してデータベースに接続する
        • クライアントを介した接続
          • デスクトップ版ODCによるOceanBase Cloudデータベースへの接続
          • MySQLクライアントを使用してOceanBase Cloudに接続する
          • OBClientを使用してOceanBase Cloudに接続する
        • ドライバー/ORM フレームワークを介した接続
          • Java
            • SpringBootによるOceanBase Cloudデータベースへの接続
            • SpringBatchによるOceanBase Cloudデータベースへの接続
            • Spring JDBCによるOceanBase Cloudデータベースへの接続
            • SpringJPAでOceanBase Cloudに接続する
            • HibernateによるOceanBase Cloudデータベースへの接続
            • MyBatisによるOceanBase Cloudデータベースへの接続
            • MySQL Connector/J を使用して OceanBase Cloud に接続する
          • Python
            • mysqlclient による OceanBase Cloud データベース接続サンプルプログラム
            • PyMySQLでOceanBase Cloudに接続するサンプルプログラム
            • MySQL Connector/Pythonを使用してOceanBase Cloudデータベースに接続する
          • C
            • MySQL Connector/Cを使用してOceanBase Cloudに接続する
          • Go
            • Go-SQL-Driver/MySQLを使用してOceanBase Cloudデータベースに接続する
          • PHP
            • PHPを使用してOceanBase Cloudに接続する
        • データベース接続プールの使用
          • データベース接続プールの設定
          • Tomcat接続プールでOceanBaseデータベースに接続するサンプルプログラム
          • C3P0接続プールでOceanBaseデータベースに接続するサンプルプログラム
          • Proxool接続プールを使用したOceanBaseデータベース接続サンプルプログラム
          • HikariCP接続プールでOceanBaseデータベースに接続するサンプルプログラム
          • DBCP接続プールでOceanBaseデータベースに接続するサンプルプログラム
          • Commons Pool による OceanBase データベース接続サンプルプログラム
          • Druid接続プールを使用したOceanBaseデータベース接続サンプルプログラム
      • データテーブル設計
        • データテーブルの概要
        • データテーブル設計のベストプラクティス
          • Unit 1:ストレージ構造とクエリパフォーマンスを最適化するための戦略のベストプラクティス
          • Unit 2:特殊インデックスの選択と作成のベストプラクティス
      • データのエクスポート
      • データ加工
      • クエリアクセラレーション
        • 統計情報
        • マテリアライズドビューによるクエリの高速化
        • クエリ並列度の選択
      • インスタンス管理
        • インスタンスのダッシュボードを表示する
        • インスタンス構成の変更
        • ストレージの自動拡張を設定する
        • プライマリゾーンの変更
        • パラメータの管理
        • バックアップとリカバリ
          • バックアップ・リストアの概要
          • バックアップポリシー
          • 即時バックアップ
          • データバックアップ
          • リストアの開始
          • データ復元
        • パフォーマンスモニタリング
          • クラスタ監視の概要
          • インスタンスデータベースのパフォーマンス監視を表示する
          • インスタンスホストのパフォーマンス監視を表示する
        • データマージ
          • メジャーコンパクションの開始
          • メジャーコンパクションレコードの表示
          • マージ時間の変更
        • データベースプロキシ
          • データベースプロキシの概要
          • データベースプロキシ管理
          • ダイレクトロード
        • アラート管理
          • 概要
          • アラートルールの管理
            • アラートルールの作成
            • アラートルールの表示
            • アラートルールの編集
            • アラートルールの削除
          • アラート履歴の表示
          • アラートルールテンプレートの管理
            • トリガー条件テンプレートの作成
            • トリガー条件テンプレートの表示
            • トリガー条件テンプレートの編集
            • トリガー条件テンプレートのコピー
            • トリガー条件テンプレートの削除
          • アラーム抑制ルールの管理
            • アラート抑止ルールの作成
            • アラート抑止ルールの表示
            • アラート抑止ルールの編集
            • アラート抑止ルールの削除
          • アラート通知テンプレートの管理
            • アラート通知テンプレートの作成
            • アラート通知テンプレートの表示
            • アラート通知テンプレートの編集
            • アラート通知テンプレートのコピー
            • アラート通知テンプレートの削除
          • アラート連絡先管理
            • アラート連絡先の追加
            • アラート連絡先グループの追加
            • アラート連絡先の表示
            • アラート連絡先の編集
            • アラート連絡先の削除
            • Webhook アドレスの取得
          • カスタムアラートで利用可能な監視メトリクス
        • 診断
          • パフォーマンス監視データの表示
          • 容量診断
          • リアルタイム診断
            • SQL 診断
              • Top SQL
              • スローSQL
              • 疑わしいSQL
              • ハイリスクSQL
              • SQLの詳細
              • SQLモニタリングメトリクス一覧
            • セッション管理
              • セッション管理
            • 最適化センター
              • 有効なアウトラインの管理
              • 最適化履歴の表示
            • リクエスト分析
              • リクエスト分析
        • インスタンスの一時停止・再開
        • インスタンスの解放
        • データベースとアカウント管理
          • アカウントの作成
          • データベースの作成
          • データベースの管理
        • タグの管理
      • データソース管理の概要
      • データライフサイクル管理
        • データアーカイブ
        • データのクリーンアップ
      • パフォーマンス診断とチューニング
        • 診断の実践:DBMS_XPLANシステムパッケージを使用したパフォーマンス診断
        • 診断の実践:SQL_PLAN_MONITORを使用したパフォーマンス問題の分析
        • AP性能分析関連ビュー
      • パフォーマンステスト
      • エコシステム統合
      • ゴミ箱管理
        • クラスタインスタンスのごみ箱
        • データベーステーブルゴミ箱管理
          • 概要
          • インスタンスのデータベース・テーブルのごみ箱
    • キーバリュー型インスタンスの使用
      • Table モデルの使用
        • インスタンスの作成
        • インスタンス管理
          • インスタンス管理
            • インスタンスリストの表示
            • クラスタインスタンスのダッシュボード概要
            • インスタンスの一時停止と起動
            • インスタンスのリリース
          • インスタンステナント管理
            • テナントの作成
            • テナント仕様の変更
            • テナント名の変更
            • テナントの削除
            • テナントの概要
            • リソース分離管理
              • リソース分離の概要
              • リソースグループ管理
                • リソースグループの作成
                • リソースグループの表示
                • リソースグループの編集
                • リソースグループの削除
              • 分離ルールの管理
                • 分離ルールの作成
                • 分離ルールの表示
                • 隔離ルールの編集
                • 隔離ルールの削除
            • テナントパフォーマンスモニタリング
              • テナント監視の概要
              • パフォーマンスとSQLの監視
              • トランザクション監視
              • ストレージとキャッシュの監視
              • OBKV-Table
              • テナントのカスタムモニタリングレポート
            • 診断
              • Top SQL
            • パラメータ管理
              • テナントパラメータの管理
              • パラメータ一覧の説明
            • データベースとアカウント処理
              • アカウントの作成と管理
              • データベースの作成
              • データベースの管理
            • プライマリゾーンの変更
          • インスタンズパフォーマンスモニタリング
            • クラスタ監視の概要
            • クラスタデータベースのパフォーマンス監視
            • クラスタ多次元指標のパフォーマンス監視
            • クラスタホストのパフォーマンス監視
            • インスタンスのカスタムモニタリングレポート
          • データマージ
            • メジャーコンパクションの開始
            • メジャーコンパクションレコードの表示
            • メジャーコンパクションの実行時刻の変更
          • インスタンスパラメータ管理
            • パラメータ管理の概要
            • パラメータ管理リスト
          • インスタンス設定の変更
            • ストレージの自動拡張を設定する
            • 設定変更履歴の表示
            • 構成の変更
            • デプロイメントモードの切り替え
          • データベースプロキシ
            • データベースプロキシの概要
            • データベースプロキシの管理
          • アラート管理
            • 概要
            • アラートルールの管理
              • アラートルールの作成
              • アラートルールの表示
              • アラートルールの編集
              • アラートルールの削除
            • アラート履歴の表示
            • アラートルールテンプレートの管理
              • トリガー条件テンプレート管理機能一覧
              • アラートテンプレートの作成
              • アラートテンプレートの表示
              • アラートテンプレートの編集
              • アラートテンプレートのコピー
              • アラートテンプレートの削除
            • アラーム抑制ルールの管理
              • アラート抑止ルールの作成
              • アラート抑止ルールの表示
              • アラートミュートルールの編集
              • アラート抑止ルールの削除
            • アラート連絡先管理
              • アラート連絡先の追加
              • アラート連絡先グループの追加
              • アラート連絡先の表示
              • アラート連絡先の編集
              • アラート連絡先の削除
              • Webhookアドレスの取得
            • カスタムアラートで利用可能なモニタリング指標
          • バックアップとリカバリ
            • バックアップ・リストアの概要
            • バックアップポリシー
            • 即時バックアップ
            • データバックアップ
            • リストアの開始
            • データ復元
          • 診断
            • パフォーマンス監視データの表示
            • Top SQL
            • 容量診断
            • リクエスト分析
          • タグの管理
          • ゴミ箱管理
            • インスタンスのごみ箱を表示する
            • データベーステーブルゴミ箱管理
              • 概要
              • インスタンスレベルのごみ箱
              • テナントレベルのごみ箱
      • キーバリュー型インスタンスを試す
        • インスタンスの作成
        • テナントの作成
        • アカウントの作成
        • OBKV-HBaseデータ操作の例
      • HBase モデルの使用
        • OBKV-HBaseの概要
        • インスタンスの作成
        • OBKV-HBase を使用したアプリケーション開発
          • OBKV-HBaseクライアントを使用してクラスタに接続する
        • インスタンス管理
          • インスタンス管理
            • インスタンス一覧の表示
            • クラスタインスタンスの概要
            • インスタンスの一時停止と再開
            • インスタンスのリリース
          • インスタンステナント管理
            • テナントの作成
            • テナント仕様の変更
            • テナント名の変更
            • テナントの削除
            • テナントの概要
            • リソース分離管理
              • 概要
              • リソースグループ管理
                • リソースグループの作成
                • リソースグループの表示
                • リソースグループの編集
                • リソースグループの削除
              • 分離ルールの管理
                • 隔離ルールの作成
                • 分離ルールの表示
                • 隔離ルールの編集
                • 隔離ルールの削除
            • テナントパフォーマンスモニタリング
              • 概要
              • パフォーマンスとSQLの監視詳細を表示する
              • トランザクション監視の詳細を表示する
              • ストレージとキャッシュの監視詳細を表示する
              • OBKV-HBase
              • テナントのカスタムモニタリングパネルを作成する
            • 診断
              • Top SQL
            • パラメータ管理
              • テナントパラメータの管理
              • テナントパラメータ
            • データベースとアカウント処理
              • アカウントの作成と管理
              • データベースの作成
              • データベースの管理
            • プライマリゾーンの変更
          • インスタンズパフォーマンスモニタリング
            • 概要
            • インスタンス内のデータベースのパフォーマンス監視
            • クラスタの多次元指標によるパフォーマンス監視
            • インスタンス内のホストのパフォーマンスを監視する
            • インスタンスのカスタムモニタリングパネルを作成する
          • データマージ
            • メジャーコンパクションの開始
            • メジャーコンパクションレコードの表示
            • メジャーコンパクションの実行時間の変更
          • インスタンスパラメータ管理
            • パラメータ管理の概要
            • クラスタインスタンスのパラメータ
          • インスタンス設定の変更
            • ストレージの自動拡張を設定する
            • 設定変更履歴の表示
            • 構成の変更
            • デプロイメントモードの切り替え
          • データベースプロキシ
            • 概要
            • データベースプロキシの管理
          • アラート管理
            • 概要
            • アラートルールの管理
              • アラートルールの作成
              • アラートルールの表示
              • アラートルールの編集
              • アラートルールの削除
            • アラート履歴の表示
            • アラートルールテンプレートの管理
              • トリガー条件テンプレート管理機能一覧
              • アラートテンプレートの作成
              • アラートテンプレートの表示
              • アラートテンプレートの編集
              • アラートテンプレートのコピー
              • アラートテンプレートの削除
            • アラーム抑制ルールの管理
              • アラート抑止ルールの作成
              • アラート抑止ルールの表示
              • アラート抑止ルールの編集
              • アラートミュートルールの削除
            • アラート連絡先管理
              • アラート連絡先の追加
              • アラート連絡先グループの追加
              • アラート連絡先の表示
              • アラート連絡先の編集
              • アラート連絡先の削除
              • Webhookアドレスの取得
            • カスタムアラート用の監視メトリクス
          • バックアップとリカバリ
            • バックアップ・リストアの概要
            • バックアップポリシー
            • 即時バックアップ
            • データバックアップ
            • リストアの開始
            • データ復元
          • 診断
            • パフォーマンス監視データの表示
            • Top SQL
            • 容量診断
            • リクエスト分析
          • タグの管理
          • ゴミ箱管理
            • クラスタインスタンスのごみ箱
            • データベーステーブルゴミ箱管理
              • 概要
              • インスタンスデータベース・テーブルのごみ箱
              • テナントデータベース・テーブルのごみ箱
        • データソース管理の概要
        • OBKV-HBaseの性能テスト
      • 接続文字列の取得
        • 概要
        • Huawei Cloud VPCエンドポイントを使用したOBKVへの接続
        • 公開IPアドレスを使用してOBKVに接続する
  • AI
    • AI サービス
      • AIサービスの概要
      • クイックスタート
      • AI API Keyの管理
      • AIモデルの使用
      • OceanBase MaaSを使用したClaude Codeの利用
      • OceanBase MaaSを使用したCodex CLIとCodex Appの利用
      • メモリ機能の使用
      • 組み込みモデル一覧
      • 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 ストリーミングコンテンツ生成
          • 画像とビデオ生成 API
            • Create Image Generation - 画像の生成
            • Create Video Generation - 動画生成タスクの作成
            • Retrieve Task Status - 非同期タスクのステータスを取得する
          • 画像生成モデル API
            • gpt-image-2によるテキストから画像への変換
            • gpt-image-2 Image Editing - 画像編集
            • gemini-3-pro-imageによるテキストから画像への変換
            • gemini-3-pro-imageによる画像から画像への変換/画像編集
          • OpenAI 互換のバッチとファイル API
            • Upload file - ファイルのアップロード
            • List files - バッチファイルの一覧を取得する
            • Retrieve file - バッチファイル情報の取得
            • Delete file - バッチファイルの削除
            • Get file content - バッチファイルの内容を取得する
            • Get file content (POST) - バッチファイルの内容を取得する
            • Create batch - バッチタスクの作成
            • List batches - バッチタスクの一覧を取得する
            • Retrieve batch - バッチタスクの状態を取得する
            • Retrieve batch (POST) - バッチタスクの取得
            • Cancel batch - バッチタスクのキャンセル
          • Memory API
            • listSpaces - メモリースペースをページネーションで一覧表示する
            • createSpace - メモリースペースを作成する
            • getSpace - 指定されたスペースの詳細を取得する
            • updateSpace - スペース名と説明を更新する
            • deleteSpace - スペースの削除
            • extractMemories - 対話メッセージからメモリを抽出する
            • listMemories - スペース内のメモリを一覧表示する
            • addMemory - メモリへの直接書き込み
            • getMemory - 単一のメモリを取得する
            • updateMemory - 単一のメモリ内容を更新する
            • deleteMemory - 単一のメモリを削除する
            • distillMemory - 対話からエクスペリエンスを抽出する
            • searchExperiences - エクスペリエンスの検索
            • getExperience - 単一のエクスペリエンスを取得する
            • deleteExperience - 単一のエクスペリエンスを削除する
            • feedbackExperiences - エクスペリエンスのフィードバック(高評価 / 低評価)
            • setExperienceObsolescence - エクスペリエンスを廃止としてマークまたはマーク解除する
            • combinedSearch - 統合検索(メモリ + エクスペリエンス)
    • OceanBase OAgent
      • OceanBase OAgentの概要
      • OceanBase OAgentのクイックスタート
      • チャネルの設定
      • スキルの設定
      • OceanBase OAgentトークン使用状況の確認
  • データ移行とインポート
    • データ移行とインポートのソリューション
    • データ評価と移行のクイックスタート
    • 互換性評価
      • 互換性評価の概要
      • オンライン評価の実行
      • オフライン評価の実行
      • 互換性評価タスクの管理
        • 互換性評価タスクの表示
        • 互換性評価レポートの表示とダウンロード
        • 互換性評価タスクの一時停止
        • 互換性評価タスクの削除
      • アップロードファイルの取得
      • PrivateLinkの設定
      • IPアドレスのホワイトリストへの追加
    • データソースの管理
      • データソースの新規作成
      • データソースの管理
      • ユーザー権限
        • 互換性評価ユーザー権限
        • データ移行に必要なユーザー権限
        • パフォーマンス評価ユーザー権限
        • データアーカイブユーザー権限
        • データクリーンアップユーザー権限
      • プライベート接続
        • AWSエンドポイントの設定
        • Huawei Cloudエンドポイントの設定
        • Alibaba Cloudエンドポイントの設定
        • Azureエンドポイントの設定
        • プライベートIPアドレスセグメントの説明
      • パブリック接続
        • AWSインスタンスの許可リストに追加する
        • Huawei Cloudインスタンスの許可リストに追加する
        • Alibaba Cloudインスタンスの許可リストに追加する
        • Azureインスタンスの許可リストに追加する
      • ピアリング接続
        • AWSデータサービスのピアリング接続を設定する
        • Huawei Cloudデータサービスのピアリング接続を設定する
        • Alibaba Cloudデータサービスのピアリング接続を設定する
        • Google Cloudデータサービスのピアリング接続を設定する
    • データ移行
      • データ移行の概要
      • データ移行の仕様説明
      • データ移行インスタンスの購入
      • 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データベースに移行する
      • Lindorm/HBaseデータベースのデータをOceanBaseデータベースのHBase API互換モードに移行する
      • OceanBaseデータベースのHBase API互換モードからLindorm/HBaseデータベースへの増分データ移行
      • OceanBaseデータベースのデータをRocketMQに移行する
      • OceanBaseデータベースのデータをDataHubに移行する
      • OceanBaseデータベースのMySQL互換モードのデータをADBに移行する
      • PolarDB-X 2.0データベースのデータをOceanBaseデータベースのMySQL互換モードに移行する
      • データ移行タスクの管理
        • データ移行タスクの詳細を表示する
        • データ移行タスクの名前を変更する
        • 移行オブジェクトの表示と変更
        • パラメータの確認と変更
        • アラートの設定
        • ラベルによるデータ移行タスクの管理
        • インテリジェント診断
        • データ移行タスクの開始、一時停止、および再開
        • データ移行タスクのクローン
        • データ移行タスクの終了と解放
      • 機能紹介
        • DML/DDLのカスタム設定
        • DDL同期範囲
        • SQL条件によるデータのフィルタリング
        • データベース名とテーブル名の変更
        • 増分同期の開始時点の設定
        • 構造移行の操作説明
        • マッチングルールの設定と変更
        • ワイルドカードルールの説明
        • 移行対象オブジェクトのインポート
        • 競合データのダウンロード
        • Topicの変更
        • 列フィルタリング
        • データ形式の説明
        • パーティション設定
      • Alibaba Cloudアカウントの権限付与
      • テーブルオブジェクトのSQLクエリ
      • Online DDLツールの適用について
      • トリガーの作成
      • セルフマネージドPostgreSQLインスタンスのログレベルを変更する
      • 増分移行のサポート対象 DDL 操作と制限
        • Aurora MySQLデータベースクラスタからOceanBaseデータベースのMySQL互換モードテナントへのDDL同期の概要
        • OceanBaseデータベースのMySQL互換モードテナントからAurora 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サービスの停止
    • スマートアップグレード
  • セキュリティ管理
    • アカウント設定
      • 個人アカウント情報の管理
      • マルチファクタ認証
      • 組織認証
        • 組織認証の有効化
        • IdPの設定
      • AccessKeyの管理
      • タイムゾーンの設定
      • クラウドマーケットアカウントの管理
      • アカウント監査
    • 組織プロジェクト管理
      • 組織・プロジェクト管理の概要
      • 組織情報の管理
      • プロジェクト管理
        • プロジェクト管理
        • プロジェクト間の双方向権限付与
        • AI設定
        • オブジェクトストレージの設定
        • プロジェクトメッセージのサブスクリプション
      • メンバー管理
      • ロール権限一覧
      • 組織コスト管理
        • 組織コストの概要
        • コスト明細
        • コストユニットの管理
      • 操作監査
    • アカウントと権限管理
      • アカウント権限リスト
      • クラウドベンダーアカウントの権限付与
      • AWS KMS キー管理
      • テクニカルサポートサービスのアクセス権限付与
    • セキュリティ暗号化
      • 許可リストグループ設定
      • SSLによる通信経路暗号化
      • TDE 透過的データ暗号化
    • モニタリングダッシュボード
    • イベントセンター
    • サポートプラン
      • OceanBase Cloud サポートプランの概要
      • サポートプランの購入と管理
  • SQL コンソール
    • 概要
    • SQLコンソールへのログイン
    • SQLの編集と実行
    • PLコンパイル
    • 結果セットの編集
    • 実行分析
    • データベースオブジェクト管理
      • テーブルの作成
      • ビューの作成
      • 関数の作成
      • ストアドプロシージャの作成
      • プログラムパッケージの作成
      • トリガーの作成
      • タイプの作成
      • シーケンスの作成
      • シノニムの作成
    • セッション変数の管理
    • SQLコンソールの機能キー一覧
    • スマートSQL開発
  • エコシステム統合
    • エコシステム統合の概要
    • データベースバージョニング
      • Liquibaseを使用したOceanBaseデータベースのバージョン管理
      • Flywayを使用したOceanBase Cloudデータベースのバージョン管理
    • データ統合
      • Canalを使用したデータの同期
      • dbtを使用したOceanBaseデータの分析
      • Debezium
      • Flinkによるデータの同期
      • AWS Glueを使用したOceanBaseデータの移行
      • Informatica CloudとOceanBaseデータベースの連携ガイド
      • OceanBaseデータベースとKafkaの統合に関するベストプラクティス
      • Maxwell
      • SeaTunnel
      • DataWorks
      • Apache NiFiによるOceanBase Cloudの統合
    • SQL 開発
      • DataGripでOceanBase Cloudデータベースに接続する
      • DBeaverでOceanBase Cloudに接続する
      • NavicatでOceanBase Cloudに接続する
      • TablePlusでOceanBase Cloudデータベースに接続する
    • オーケスト레이션 スケジューリング
      • DolphinScheduler
      • LinkisとOceanBaseデータベースの連携
      • AirflowとOceanBaseデータベースの連携
    • 可視化
      • GrafanaでOceanBase Cloudの監視ダッシュボードデータを表示する
      • Power BIでOceanBase Cloudに接続してデータを取得する
      • Quick BIでOceanBase Cloudに接続する
      • SupersetとOceanBase Cloudを使用したデータ分析
      • TableauからOceanBase Cloudに接続する
    • オブザーバビリティ
      • Datadogを使用したOceanBase Cloudインスタンスの監視
      • Prometheusを使用したOceanBaseデータの監視
    • データベース管理
      • BytebaseによるOceanBaseインスタンスの管理
    • AI
      • OceanBase Cloud VectorとLlamaIndexの連携
      • OceanBase Cloud VectorとDifyの連携
      • OceanBase Cloud VectorとLangChainの連携
      • OceanBase Cloud VectorとQwenの連携
      • OceanBase Cloud VectorとOpenAIの連携
      • OceanBase Cloudとn8nの連携
      • OceanBase MCP ServerとTraeの連携
      • OceanBase Cloud VectorとSpring AI Alibabaの連携
      • OceanBase MCP ServerとClineの連携
      • OceanBase MCP ServerとCursorの連携
      • OceanBase MCP ServerとContinueの連携
      • Google GenAI ToolboxとOceanBase MCP Serverの統合
      • OceanBase Cloud VectorとCamelAIの連携
      • OceanBase Cloud VectorとFirecrawlの連携
      • OceanBase Cloud VectorとHugging Faceの連携
      • OceanBase Cloud VectorとOllamaの連携
      • OceanBase Cloud VectorとGoogle Geminiの連携
      • OceanBase Cloud VectorとCloudflare Workers AIの連携
      • OceanBase MCP ServerとQoderの連携
      • OceanBase MCP ServerとOpenCodeの連携
      • OceanBase MCP ServerとClaude Codeの連携
      • OceanBase MCP ServerとGitHub Copilotの連携
      • OceanBase MCP ServerとCodexの連携
      • OceanBase Cloud VectorとJina AIの連携
      • OceanBase MCP ServerとAugment Codeの連携
      • OceanBase MCP ServerとClaude Codeの連携
      • OceanBase MCP ServerとKiroの連携
    • 開発ツール
      • Cloudflare WorkersでOceanBase Cloudに接続する
      • VercelでOceanBase Cloudに接続する
  • ベストプラクティス
    • クロスクラウドアクティブ-アクティブによる高可用性の実現に関するベストプラクティス
    • クロスクラウドのプライマリ/スタンバイデータベースによる高可用性(1プライマリ1スタンバイ)
    • クロスクラウドのプライマリ/スタンバイデータベースによる高可用性の実現(1プライマリ・複数スタンバイ)
    • ホストのCPU利用率が高すぎる
    • OceanBase Cloudクラウドデータベースの読み書き分離に関するベストプラクティス
    • AWS RDSのデータをOceanBase Cloudへ移行するベストプラクティス
  • リファレンスガイド
    • システムアーキテクチャ
    • システム管理
    • データベースオブジェクト管理
    • データベース設計と仕様制約
    • SQLリファレンス
    • システムビュー
    • 構成パラメータとシステム変数
    • エラーコード
    • パフォーマンスチューニング
    • 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 - クラスタノード数の変更
          • DescribeInstanceAnomalyEvents - インスタンスの異常イベントを取得する
          • DescribeOasClusterAnomalySqlList - クラスタの疑わしいSQL一覧を取得する
          • DescribeOasClusterSlowSQLList - クラスタのスローSQL一覧を取得する
          • DescribeInstanceSqlAuditServiceInfo - SQL監査サービス情報の取得
          • DescribeProxyClusterForInstance - インスタンスODPプロキシクラスタのクエリ
        • テナント管理
          • DescribeTenants - 条件でテナントを検索する
          • DescribeTenant - 指定クラスタ内の指定テナント情報を照会する
          • CreateTenants - テナントの作成
          • DeleteTenants - テナントの削除
          • ModifyTenantName - テナント名の変更
          • ModifyTenant - テナントの変更
          • ModifyTenantUserDescription - テナントユーザーの説明を変更する
          • ModifyTenantUserStatus - テナント内ユーザーのステータスを変更する
          • GetTenantCreateConstraints - テナント作成時の制約の確認
          • ModifyTenantPrimaryZone - テナントのプライマリゾーンを変更する
          • GetTenantCreateCpuConstraints - テナント作成時のCPU制約の確認
          • GetTenantCreateMemConstraints - テナント作成時のメモリ制約の確認
          • GetTenantModifyCpuConstraints - テナントのCPUを変更する際の制約を取得する
          • GetTenantModifyMemConstraints - テナントのメモリを変更する際の制約を取得する
          • CreateTenantSecurityIpGroup - テナントのセキュリティ許可リスト情報を作成する
          • DescribeTenantSecurityIpGroups - テナントの許可リストグループ一覧を取得する
          • ModifyTenantSecurityIpGroup - テナントの許可リストグループ情報を変更する
          • DeleteTenantSecurityIpGroup - テナントの許可リストグループ情報を削除する
          • DescribeTenantPrivateLink - テナントのPrivateLinkアドレス情報を照会する
          • DeletePrivatelinkConnection - テナント接続アドレスの削除
          • CreatePrivatelinkService - テナントのPrivateLink接続を有効化する
          • ConnectPrivatelinkService - PrivateLinkエンドポイントノードを介してデータベースに接続する
          • AddPrivatelinkServiceUser - PrivateLinkサービスの許可リストにユーザーを追加する
          • BatchKillProcessList - 指定テナントのセッションプロセスを一括終了する
          • DescribeProcessStatsComposition - セッションプロセス統計情報を取得する
          • DescribeTenantAddressInfo - テナントのアドレス情報を照会する
          • DescribeTenantAvailableRoZones - テナントの読み取り専用レプリカゾーンを取得する
          • ModifyTenantReadonlyReplica - テナントの読み取り専用レプリカを変更する
          • DescribeTenantParameters - テナントレベルパラメータを取得する
          • UpdateTenantParameters - テナントレベルパラメータの変更
          • DescribeTenantParametersHistory - テナントレベルのパラメータ変更履歴を取得する
          • ModifyTenantTagList - テナントタグの変更
          • CreateReadonlyPrivatelink - テナントのプライベートネットワーク読み取り専用アドレスを作成する
          • CreateReadwritePrivatelink - テナントのプライベートネットワーク読み書き分離アドレスを作成する
          • DescribeTenantPublicAddress - テナントのパブリックアドレスを照会する
          • DescribeTenantSqlAuditServiceInfo - テナントSQL監査サービス情報の取得
        • テナントアカウント管理
          • CreateTenantUser - テナントユーザーの作成
          • DescribeTenantUsers - テナントアカウントリストの検索
          • DeleteTenantUsers - テナントユーザーの削除
          • ModifyTenantUserPassword - テナントユーザーパスワードの変更
          • ModifyTenantUserRoles - テナントユーザーのロールを変更する
        • データベース管理
          • CreateDatabase - データベースの作成
          • DescribeDatabases - データベースリストのクエリ
          • DeleteDatabases - データベースの削除
          • ModifyDatabaseUserRoles - データベースユーザーロールの変更
          • DescribeTableSchema - テーブルスキーマのクエリ
        • バックアップとリカバリ管理
          • DescribeDataBackupSet - データバックアップセット情報の照会
          • DescribeRestorableTenants - 復元可能なテナントのクエリ
          • ModifyBackupStrategy - バックアップ戦略の変更
          • CreateTenantRestoreTask - テナント復元タスクの作成
          • CreateDataBackupTask - バックアップタスクの作成
          • DescribeOneDataBackupSet - タスクIDによるバックアップセットの取得
          • CreateBackupSetDownloadLink - バックアップセットのダウンロードリンクを作成する
          • DeleteBackupSetDownloadTask - バックアップセットのダウンロードタスクを削除する
          • DescribeBackupSetDownloadLink - バックアップセットのダウンロードリンクの取得
          • DescribeBackupStrategy - バックアップポリシーのクエリ
        • データベースプロキシ管理
          • CreateTenantAddress - テナントアドレスの作成
          • CreateTenantSingleTunnelSLBAddress - テナントのsingleTunnelSLBアドレスを新規作成
          • DeleteTenantAddress - テナントアドレスの削除
          • DescribeTenantAddress - テナントアドレスの照会
          • ModifyOdpClusterSpec - データベースプロキシクラスタの仕様を変更する
          • ModifyTenantAddressPort - テナントアドレスのポートを変更する
          • ModifyTenantAddressDomainPrefix - テナントアドレスのドメインプレフィックスを変更する
          • ConfirmPrivatelinkConnection - PrivateLinkによるプライベートネットワーク接続の完了を確認する
          • DescribeTenantAddressInfo - すべてのテナントアドレス情報の照会
        • データソース管理
          • ListDataSources - データソースリストの取得
          • CreateDataSource - データソースの作成
          • DeleteDataSource - データソースの削除
        • OMS プロジェクト管理
          • DescribeProject - プロジェクトの詳細を照会する
          • CreateProject - プロジェクトの作成
          • DeleteProject - プロジェクトの削除
          • DescribeProjectSteps - プロジェクトのステップリストを取得する
          • StartProject - プロジェクトの起動
          • StopProject - プロジェクトの停止
          • ResumeProject - プロジェクトの再開
          • ReleaseProject - プロジェクトリソースの解放
          • UpdateProjectConfig - プロジェクト設定の更新
          • ListProjectModifyRecords - プロジェクトの変更履歴を取得する
          • CreateProjectModifyRecords - プロジェクトの変更レコードを作成する (テーブルの追加・削除)
          • CancelProjectModifyRecord - 変更レコードの取消
          • RetryProjectModifyRecords - 変更レコードの再試行
          • StopProjectModifyRecords - 変更レコードの終了
          • GetModifyRecord - 変更レコードの詳細を取得する
          • DescribeTransferMapping - 転送オブジェクトのマッピング設定を取得する
        • モニタリング管理
          • DescribeTenantMetrics - テナントメトリクス情報の照会
          • DescribeMetricsData - モニタリングメトリクスデータのクエリ
          • CreatePrometheusIntegration - Prometheus監視の統合を作成する
          • DeletePrometheusIntegration - Prometheusモニタリング統合の削除
          • ListPrometheusIntegration - Prometheus監視連携リストの取得
          • DescribeNodeMetrics - ノードメトリクス情報の照会
        • 診断管理
          • DescribeOasTopSQLList - TopSQLリストのクエリ
          • DescribeOasAnomalySQLList - 疑わしいSQLリストの照会
          • DescribeOasSlowSQLList - SlowSQLリストのクエリ
          • DescribeOasSQLText - SQLテキストのクエリ
          • DescribeSqlAudits - SQL監査データの照会
          • DescribeOutlineBinding - SQLアウトラインのバインディング情報を照会する
          • DescribeSampleSqlRawTexts - 元のSQLテキストサンプルの照会
          • DescribeSQLTuningAdvices - SQLチューニングのアドバイスを取得する
          • DescribeOasSlowSQLSamples - スローSQL実行詳細のサンプルデータを照会する
          • DescribeOasSQLTrends - SQL実行履歴のクエリ
          • DescribeOasSQLPlanGroup - SQL実行計画のクエリ
          • DescribeRcaRecord - 根本原因分析レコードのクエリ
          • DescribeTopSQLComparision - SQL実行の比較
          • DescribeSessionStatsGroupBySqlId - SQL ID別に集計されたセッション統計情報を取得する
          • DescribeIndexes - インデックス情報のクエリ
          • DescribeOasHighRiskSQL - ハイリスクSQLのクエリ
        • セキュリティ管理
          • CreateSecurityIpGroup - インスタンスの許可リストグループを作成する
          • DescribeInstanceSSL - インスタンスのSSL設定情報を照会する
          • ModifyInstanceSSL - インスタンスのSSL設定を変更する
          • DescribeTenantEncryption - テナントの暗号化情報を照会する
          • ModifyTenantEncryption - テナントの透過的データ暗号化を有効にする
          • ModifySecurityIps - インスタンスの許可リスト内のIPリストを変更する
          • DeleteSecurityIpGroup - インスタンスの許可リストグループを削除する
          • DescribeTenantSecurityConfigs - テナントのセキュリティ設定検査
          • DescribeInstanceSecurityConfigs - クラスタのセキュリティ設定検査
        • タグ管理
          • DescribeTags - タグリストの取得
          • CreateTags - バッチでタグを作成する
          • UpdateTag - タグの更新
          • DeleteTag - タグの削除
        • 履歴イベント管理
          • DescribeOperationEvents - 過去のイベントを取得する
        • AI サービス管理
          • CreateAIServiceAPIKey - AI APIキーの作成
          • DeleteAIServiceAPIKey - AI APIキーの削除
          • ListAIServiceAPIKeys - APIキーの一覧を取得する
      • Open API よくある質問 FAQ
      • OceanBaseクラウドデータベースとOceanBase CloudのAPI比較
    • クライアントダウンロード
      • OceanBaseクライアント(OBClient)のダウンロード
      • JDBCドライバーのダウンロード
      • クライアント版ODCのダウンロード
      • ODBCドライバーのダウンロード
      • OBClient Libsドライバーのダウンロード
    • パフォーマンステスト
      • OceanBase Cloudのパフォーマンステスト - sysbenchテスト
      • OceanBase Cloudのパフォーマンステスト - TPCHテスト
      • OceanBase Cloudのパフォーマンステスト - TPCCテスト
    • モニタリング指標リファレンス
      • クラスタデータベース
      • クラスタホスト
      • Binlogサービス
      • クロスクラウドネットワークチャネル接続
      • パフォーマンスとSQL
      • トランザクション
      • ストレージとキャッシュ
      • プロキシデータベース
      • プロキシホスト
    • 開発者センター使用ガイド
      • プロダクト紹介
        • OceanBase Developer Centerについて
        • 制限事項
      • クイックスタート
        • デスクトップ版 ODC
          • クイックスタート
          • デスクトップ版ODCのインストール
          • デスクトップ版ODCの使用
        • Web 版 ODC
          • クイックスタート
          • Web版ODCの使用
      • データソース管理
        • データソースの作成
        • データソースとプロジェクトの連携
        • データベース運用保守
          • セッション管理
          • グローバル変数の管理
          • ごみ箱の管理
      • SQL 開発
        • SQLの編集と実行
        • PLコンパイルとデバッグ
        • 結果の編集とエクスポート
        • 実行分析
        • テストデータの生成
        • システム設定
        • データベースオブジェクト
          • テーブルオブジェクト
            • 概要
            • テーブルの作成
          • ビューオブジェクト
            • 概要
            • ビューの作成
            • ビューの管理
          • マテリアライズドビューオブジェクト
            • 概要
            • マテリアライズドビューの作成
            • マテリアライズドビューの管理
          • 関数オブジェクト
            • 概要
            • 関数の作成
            • 関数の管理
          • ストアドプロシージョブジェクト
            • 概要
            • ストアドプロシージャの作成
            • ストアドプロシージャの管理
          • シーケンスオブジェクト
            • 概要
            • シーケンスの作成
            • シーケンスの管理
          • パッケージオブジェクト
            • 概要
            • プログラムパッケージの作成
            • プログラムパッケージの管理
          • トリガーオブジェクト
            • 概要
            • トリガーの作成
            • トリガーの管理
          • タイプオブジェクト
            • 概要
            • タイプの作成
            • タイプの管理
          • シノニムオブジェクト
            • 概要
            • シノニムの作成
            • シノニムの管理
      • インポートとエクスポート
        • スキーマとデータのインポート
        • スキーマとデータのエクスポート
      • 変更リスク管理
        • ユーザー権限管理
          • ユーザーとロール
          • 自動権限付与
          • ユーザー権限管理
        • プロジェクトの協働管理
        • リスクレベル、リスク識別ルール、および承認プロセス
        • SQLチェック仕様
        • SQLウィンドウ規範
        • データベース変更管理
        • マルチデータベース変更管理
        • ロックフリースキーマ変更
        • シャドウテーブルの同期
        • 構造比較
      • データライフサイクル管理
        • パーティション計画管理
          • パーティション計画の管理
          • パーティション戦略の設定
          • パーティション戦略の使用例
        • SQLスケジュールタスク
      • データマスキングと監査
        • データマスキング
        • 操作監査
      • メッセージ通知管理
        • メッセージ通知の概要
        • プッシュ履歴の確認
        • 通知チャンネルの管理
          • プッシュチャネルの作成
          • プッシュチャネルの表示・編集・削除
          • カスタムチャネルの使用例
        • プッシュルールの管理
      • ベストプラクティス
        • SQL開発でよく使われるコツ
        • ODCチームスペースの魅力的な世界へようこそ
        • OceanBase APのリアルタイムSQL診断機能の解説
        • OceanBase履歴データソリューション
        • ODC SQLチェック仕様による高リスク操作の自動検出
        • ODCによるシャーディングデータベース・テーブルの管理と変更
        • データマスキングの管理と運用
        • エンタープライズレベルの管理・協働:データベースの変更を守るために
    • データ開発
      • 概要
      • ワークスペース管理
      • ワークブック管理
      • コンピューティングノードプール管理
      • タスクフローの管理
      • ダッシュボードの管理
      • Gitリポジトリ管理
      • SQL 開発
        • SQLの編集と実行
        • 結果セットの編集
        • 実行分析
        • データベースオブジェクト管理
          • テーブルの作成
          • ビューの作成
          • 関数の作成
          • ストアドプロシージャの作成
        • セッション変数の管理
        • Git統合
      • サンプルデータセットの紹介
      • OceanBase Cloud データ開発用語集
  • 課金管理
    • 費用概要の表示
    • 請求書の表示
      • 注文の確認
    • 月次請求書の表示
    • 支払い詳細の表示
    • AI サービス課金
      • 使用状況統計
      • API Keyの記録を見る
      • モデルレート
    • 支払い方法
      • バウチャーによる支払い
    • 請求書の管理
  • 関連規約
    • クラウドサービス契約
    • サービスレベル契約
    • データ処理に関する補遺
    • OceanBaseクラウド移行サービスに関するサービスレベル契約

PDF をダウンロード

ドキュメントフィードバック
  1. ドキュメントセンター
  2. OceanBase Cloud

MyBatisでOceanBase Cloudに接続するサンプルプログラム

最終更新:2026-09-30 10:37:21

前提条件
操作手順
ステップ1:OceanBase Cloudデータベースの接続文字列を取得する
ステップ2:java-oceanbase-mybatis プロジェクトをIDEAにインポートする
ステップ3:java-oceanbase-mybatis プロジェクトのデータベース接続情報を修正する
ステップ4:java-oceanbase-mybatis プロジェクトを実行する
プロジェクトコードについて
pom.xmlコードの紹介
jdbc.properties コードの説明
mybatis-config.xmlの紹介
IUserMapper.xmlのコード紹介
IAppMapper.javaのコード紹介
IUserMapper.javaのコード紹介
App.javaのコード紹介
User.javaのコード紹介
MyBatisTest.javaファイルの紹介
全コード表示
関連ドキュメント

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

      クリックしてjava-oceanbase-mybatisサンプルプロジェクトをダウンロード
  </a>
  <!-- <a role='video' href='https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/video-center/video/video/03%20java-%20ob-mybatis_e03.mp4'>
      
      MyBatisでOceanBaseデータベースに接続するサンプルプログラム(Oracleモード)
   </a> -->

前提条件

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

説明

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

操作手順

説明

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

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

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

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

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

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

    説明

    jdbc.properties ファイルには、このURL情報が必要です。

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

    パラメータ説明:

    • $host:OceanBase Cloudデータベースの接続アドレスを指定します。例:t********.********.oceanbase.cloud

    • $port:OceanBase Cloudデータベースの接続ポートを指定します。デフォルトは1521です。

    • $schema_name:アクセスするスキーマ名です。

    • $user_name:データベースへのアクセスアカウントを指定します。

    • $password:アカウントのパスワードを指定します。

    • useServerPrepStmts=true&rewriteBatchedStatements=true:追加の接続プロパティです。

      • rewriteBatchedStatements:挿入クエリについて、batchedStatement を書き換えて単一の executeQuery で実行します。rewriteBatchedStatements が有効な場合、useServerPrepStmts オプションは false に設定されます。 デフォルト値:false
      • useServerPrepStmts:実行前に、サーバー側で PrepareStatement を準備します。アプリケーションが同じSQLステートメントを繰り返し実行する必要がある場合、このパラメータを有効にすると、データベース内で同じSQLを繰り返しコンパイルおよび解析する回数を削減できます。

その他のURLパラメータの詳細については、データベースURLをご参照ください。

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

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

  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. プロジェクトの状況を確認します。

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

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

例:

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

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

jdbc.driver=com.oceanbase.jdbc.Driver
jdbc.url=jdbc:oceanbase://t5******.********.oceanbase.cloud:1521/sys?useServerPrepStmts=true&rewriteBatchedStatements=true
jdbc.username=oracle001
jdbc.password=******

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

実行パス

  1. プロジェクト構造の src > test > java から TestMybatis.java ファイルを見つけます。
  2. ツールメニューバーで 実行(U) > 実行 > TestMybatis を選択するか、右上の緑色の三角形を直接クリックして実行します。
  3. IDEAのコンソールでプロジェクトのログ情報と出力結果を確認します。

実行結果

  1. testUserMapper メソッドの実行結果は次のとおりです:

    User{id=2, name='update'}
    User{id=3, name='insert'}
    User{id=4, name='insert'}
    User{id=5, name='insert'}
    User{id=6, name='insert'}
    User{id=7, name='insert'}
    User{id=8, name='insert'}
    User{id=9, name='insert'}
    User{id=10, name='insert'}
    usersByPage = [User{id=5, name='insert'}, User{id=6, name='insert'}, User{id=7, name='insert'}]
    
  2. testSqlSession メソッドの実行結果は次のとおりです:

    User{id=2, name='update'}
    User{id=3, name='insert'}
    User{id=4, name='insert'}
    User{id=5, name='insert'}
    User{id=6, name='insert'}
    User{id=7, name='insert'}
    User{id=8, name='insert'}
    User{id=9, name='insert'}
    User{id=10, name='insert'}
    
  3. testAppMapper メソッドの実行結果は次のとおりです:

    App{id=2, name='update'}
    App{id=3, name='insert3'}
    App{id=4, name='insert4'}
    App{id=5, name='insert5'}
    App{id=6, name='insert6'}
    App{id=7, name='insert7'}
    App{id=8, name='insert8'}
    App{id=9, name='insert9'}
    App{id=10, name='insert10'}
    pageList = Page{count=true, pageNum=2, pageSize=3, startRow=3, endRow=6, total=9, pages=3, reasonable=false, pageSizeZero=true}[App{id=5, name='insert5'}, App{id=6, name='insert6'}, App{id=7, name='insert7'}]
    
  4. 完全な出力結果は次のとおりです:

    User{id=2, name='update'}
    User{id=3, name='insert'}
    User{id=4, name='insert'}
    User{id=5, name='insert'}
    User{id=6, name='insert'}
    User{id=7, name='insert'}
    User{id=8, name='insert'}
    User{id=9, name='insert'}
    User{id=10, name='insert'}
    usersByPage = [User{id=5, name='insert'}, User{id=6, name='insert'}, User{id=7, name='insert'}]
    App{id=2, name='update'}
    App{id=3, name='insert3'}
    App{id=4, name='insert4'}
    App{id=5, name='insert5'}
    App{id=6, name='insert6'}
    App{id=7, name='insert7'}
    App{id=8, name='insert8'}
    App{id=9, name='insert9'}
    App{id=10, name='insert10'}
    pageList = Page{count=true, pageNum=2, pageSize=3, startRow=3, endRow=6, total=9, pages=3, reasonable=false, pageSizeZero=true}[App{id=5, name='insert5'}, App{id=6, name='insert6'}, App{id=7, name='insert7'}]
    User{id=2, name='update'}
    User{id=3, name='insert'}
    User{id=4, name='insert'}
    User{id=5, name='insert'}
    User{id=6, name='insert'}
    User{id=7, name='insert'}
    User{id=8, name='insert'}
    User{id=9, name='insert'}
    User{id=10, name='insert'}
    

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

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

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

│--pom.xml
│
├─.idea
│
├─src
│  ├─main
│  │  ├─java
│  │  │  └─com
│  │  │      └─oceanbase
│  │  │          ├─mapper
│  │  │          │------IAppMapper.java
│  │  │          │------IUserMapper.java
│  │  │          │
│  │  │          └─pojo
│  │  │              │---App.java
│  │  │              └─--User.java
│  │  │
│  │  └─resources
│  │      │--jdbc.properties
│  │      │--mybatis-config.xml
│  │      │
│  │      └─com
│  │          └─oceanbase
│  │              └─mapper
│  │                  └─---IUserMapper.xml
│  │
│  └─test
│      └─java
│          └─---TestMybatis.java
│
└─target

ファイルの説明:

  • pom.xml:Mavenプロジェクトの設定ファイルで、プロジェクトの依存関係、プラグイン、ビルドなどの情報が含まれます。
  • .idea:IDE(統合開発環境)で使用されるディレクトリで、プロジェクト関連の設定情報を格納します。
  • src:プロジェクトのソースコードを格納するディレクトリです。
  • main: 主要なソースコードとリソースファイルを格納するディレクトリ。
  • java: Javaソースコードを格納するディレクトリ。
  • com: Javaパッケージのルートディレクトリ。
  • oceanbase: プロジェクトのルートディレクトリ。
  • mapper: MyBatisのMapperインターフェースとXMLファイルを格納します。
  • IAppMapper.java:アプリケーションデータアクセス層のインターフェースを格納します。
  • IUserMapper.java:ユーザーデータアクセス層のインターフェースを格納します。
  • pojo: JavaBeanまたはエンティティクラスを格納します。
  • App.java:アプリケーションエンティティクラスを格納します。
  • User.java:ユーザーエンティティクラスを格納します。
  • resources: 設定ファイルやSQLファイルなどのリソースファイルを格納するディレクトリ。
  • jdbc.properties: データベース接続情報の設定ファイルを格納します。
  • mybatis-config.xml: MyBatisの設定ファイルを格納します。
  • IUserMapper.xml:ユーザーデータアクセス層のXML設定ファイルを格納します。
  • test: テストコードとリソースファイルを格納するディレクトリ。
  • TestMybatis.java: MyBatisのテスト用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 ファイルの場所を http://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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
</project>
  1. 基本情報の設定。

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

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

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

コード:

<groupId>com.oceanbase.example</groupId>
<artifactId>java-oceanbase-mybatis</artifactId>
<version>1.0-SNAPSHOT</version>
  1. <build> を使用して、プロジェクトのビルドプロセスを定義します。

  2. <plugins> を使用して、プロジェクトで設定するプラグインを指定します。

  3. <plugin> を使用して、プロジェクトで1つのプラグインを設定します。

  4. <groupId> を使用して、プロジェクト識別子を org.apache.maven.plugins と指定します。

  5. <artifactId> を使用して、プロジェクトの依存関係を maven-compiler-plugin と指定します。

  6. <configuration> を使用して、設定するプラグインのパラメータを指定します。

  7. <source> を使用して、コンパイラのソースコードバージョンを8と指定します。

  8. <target> を使用して、コンパイラのターゲットコードバージョンを8と指定します。

コード:

 <build>
     <plugins>
         <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-compiler-plugin</artifactId>
             <configuration>
                 <source>8</source>
                 <target>8</target>
             </configuration>
         </plugin>
     </plugins>
 </build>
  1. <dependencies> を使用して、プロジェクトが依存するコンポーネントを定義します。

    1. 依存関係の所属組織を com.oceanbase、名前を oceanbase-client、バージョン番号を 2.4.2 と指定します。

      コード:

          <dependencies>
          <dependency>
              <groupId>com.oceanbase</groupId>
              <artifactId>oceanbase-client</artifactId>
              <version>2.4.2</version>
          </dependency>
          </dependencies>
      
    2. 依存関係のテストフレームワークを junit、名前を junit、バージョン番号を 4.10 と指定します。

      コード:

          <dependencies>
          <dependency>
              <groupId>junit</groupId>
              <artifactId>junit</artifactId>
              <version>4.10</version>
          </dependency>
          </dependencies>
      
    3. 依存関係のフレームワークを org.mybatis、名前を mybatis、バージョン番号を 3.5.9 と指定します。

      コード:

          <dependencies>
          <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis</artifactId>
              <version>3.5.9</version>
          </dependency>
          </dependencies>
      
    4. 依存関係のプラグインを com.github.pagehelper、名前を pagehelper、バージョン番号を 5.3.0 と指定します。

      コード:

          <dependencies>
          <dependency>
              <groupId>com.github.pagehelper</groupId>
              <artifactId>pagehelper</artifactId>
              <version>5.3.0</version>
          </dependency>
          </dependencies>
      

jdbc.properties コードの説明

jdbc.properties はプロパティファイルであり、データベース接続に関連する設定情報(データベースのURL、ユーザー名、パスワードなど)を格納するために使用されます。コードの内容は以下のとおりです:

説明

コード内の各フィールドの値は、手順1:OceanBase Cloudデータベース接続文字列を取得するから直接取得します。

  • jdbc.driver:データベースドライバのクラス名で、データベースドライバをロードするために使用されます。
  • jdbc.url:データベースのURLアドレスで、接続するデータベースを指定するために使用されます。
  • jdbc.username:データベースのユーザー名で、データベース接続の認証に使用されます。
  • jdbc.password:データベースのパスワードで、データベース接続の認証に使用されます。

コード:

jdbc.driver=com.oceanbase.jdbc.Driver
jdbc.url=jdbc:oceanbase://host:port/TEST?useServerPrepStmts=true&rewriteBatchedStatements=true
jdbc.username=user_name
jdbc.password=******

mybatis-config.xmlの紹介

mybatis-config.xml ファイルは、MyBatisフレームワークのグローバルプロパティやプラグインなどを設定するために使用されます。

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

  1. ファイル宣言。

    このファイルがXMLファイルであることを宣言します。この宣言は、現在のドキュメントがMyBatis設定ファイルであり、使用しているXMLバージョンが 1.0、文字エンコーディング方式が UTF-8 であることを示します。バージョン番号は3.0、言語は英語で、MyBatis公式サイトが提供するDTD(Document Type Definition)ファイルを使用して検証されています。

    宣言には以下の部分が含まれます:

    • version:XMLファイルのバージョンを指定します。
    • encoding:XMLファイルのエンコーディング方式を指定します。
    • DOCTYPE:ドキュメントタイプ宣言であることを宣言します。
    • configuration:ドキュメントタイプをMyBatis設定ファイルとして指定します。
    • PUBLIC:ドキュメントタイプを公開ドキュメントタイプとして指定します。
    • mybatis.org:MyBatis公式サイトを表します。
    • DTD Config 3.0:MyBatis設定ファイルのバージョン番号を表します。
    • EN:ドキュメントタイプの言語が英語であることを表します。

    コード:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
    
  2. 読み込むプロパティファイルのパスとファイル名を指定します。

    <properties resource="jdbc.properties"></properties>
    
  3. MyBatisのグローバル設定を構成します。

    MyBatisのグローバル設定には以下の部分が含まれます:

    • setting:キャッシュ、ログなどの個々の設定項目を構成するために使用します。
    • cacheEnabled:キャッシュ機能を有効または無効にします。true に設定します。
    • lazyLoadingEnabled:遅延ロード機能を有効または無効にします。true に設定します。
    • aggressiveLazyLoading:積極的遅延ロード機能を有効または無効にします。true に設定します。
    • multipleResultSetsEnabled:複数結果セットのサポートを有効にするかどうかを構成し、true に設定します。
    • useColumnLabel:結果セット内の列名として列ラベルを使用するかどうかを構成し、true に設定します。
    • useGeneratedKeys:自動生成された主キーを使用するかどうかを構成し、true に設定します。
    • autoMappingBehavior:自動マッピングの処理動作を構成し、PARTIAL に設定します。
    • defaultExecutorType:デフォルトのエグゼキュータータイプを構成し、SIMPLE に設定します。
    • mapUnderscoreToCamelCase:データベース列名のアンダースコアをJavaオブジェクトのプロパティ名のキャメルケースに変換するかどうかを構成し、true に設定します。
    • localCacheScope:ローカルキャッシュのスコープを構成し、SESSION に設定します。
    • jdbcTypeForNull:NULL値を処理する際に使用するJDBCタイプを構成し、NULL に設定します。

    説明

    settings要素内の子要素はオプションであり、実際の状況に応じて追加または削除できます。

    コード:

    <settings>
        <!-- Enable or disable caching for global mappers. -->
        <setting name="cacheEnabled" value="true"/>
        <!-- Enable or disable lazy loading globally. When disabled, all associated objects are loaded immediately. -->
        <setting name="lazyLoadingEnabled" value="true"/>
        <!-- When enabled, objects with delayed loading properties will fully load any properties when called. Otherwise, each attribute will be loaded as needed. -->
        <setting name="aggressiveLazyLoading" value="true"/>
        <!-- Allow a single SQL statement to return multiple datasets (depending on driver compatibility) default: true -->
        <setting name="multipleResultSetsEnabled" value="true"/>
        <!-- Can column aliases be used (depending on driver compatibility) default: true -->
        <setting name="useColumnLabel" value="true"/>
        <!-- Allow JDBC to generate primary keys. Drive support is required. If set to true, this setting will force the use of the generated primary key, and some drives may not be compatible but can still be executed. default:false -->
        <setting name="useGeneratedKeys" value="true"/>
        <!-- Specify how MyBatis automatically maps the columns of the data base table NONE: Not Implicit PART: Partial FULL: All -->
        <setting name="autoMappingBehavior" value="PARTIAL"/>
        <!-- This is the default execution type (SIMPLE: simple; REUSE: executor may repeatedly use prepared statements; BATCH: executor can repeatedly execute statements and batch updates) -->
        <setting name="defaultExecutorType" value="SIMPLE"/>
        <!-- Convert fields using camel naming. -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <!-- Set the local cache range session: there will be data sharing statement: statement range (so there will be no data sharing) defalut: session -->
        <setting name="localCacheScope" value="SESSION"/>
        <!-- When the JDBC type is set to null, some drivers need to specify a value, default: Other, and there is no need to specify a type when inserting null values -->
        <setting name="jdbcTypeForNull" value="NULL"/>
    </settings>
    
  4. MyBatisのプラグインを設定します。

    MyBatisのプラグインには、以下の部分が含まれます:

    • plugin:単一のプラグインを設定するために使用されます。
    • property:プラグインのプロパティを指定するために使用されます。
    • interceptor:プラグインの実装クラスを指定するために使用されます。
    • helperDialect:選択したデータベースを指定するために使用されます。
    • offsetAsPageNum:offsetパラメータをpageNumパラメータとして使用するかどうかを示します。
    • rowBoundsWithCount:countクエリを実行するかどうかを示します。
    • pageSizeZero:pageSizeが0のクエリをサポートするかどうかを示します。
    • reasonable:合理化クエリを有効にするかどうかを示します。
    • params:ページネーションパラメータを渡すためのパラメータ名とパラメータ値のマッピング関係を示します。
    • supportMethodsArguments:メソッドパラメータを使用してページネーションパラメータを渡すことをサポートするかどうかを示します。
    • returnPageInfo:戻り値のタイプを示します。

    コード:

    <plugin interceptor="com.github.pagehelper.PageInterceptor">
       <!-- this parameter indicates which database to connect to -->
       <!--MySQLMode dialect<property name="helperDialect" value="mysql"/>-->
       <!--OracleMode dialect -->
       <property name="helperDialect" value="oracle"/>
       <!-- This parameter defaults to false. When set to true, the first parameter offset of RowBounds will be used as the pageNum page number, similar to the pageNum effect in startPage -->
       <property name="offsetAsPageNum" value="true"/>
       <!-- This parameter defaults to false, and when set to true, using RowBounds pagination will result in a count query -->
       <property name="rowBoundsWithCount" value="true"/>
       <!-- When set to true, if pageSize=0 or RowBounds. limit=0, all results will be queried (equivalent to not executing a pagination query, but the returned results are still of type Page) -->
       <property name="pageSizeZero" value="true"/>
       <!-- Version 3.3.0 is available - pagination parameter rationalization is disabled by default as false. When rationalization is enabled, if pageNum<1, the first page will be queried, and if pageNum>pages, the last page will be queried. Rationalization of paging parameters. When rationalization is disabled, if pageNum<1 or pageNum>pages returns empty data -->
       <property name="reasonable" value="false"/>
       <!-- Version 3.5.0 is available - In order to support the startPage (Object params) method, a 'params' parameter has been added to configure parameter mapping, which can be used to retrieve values from Map or ServletRequest. PageNum, pageSize, count, pageSizeZero, reasonable, orderBy can be configured. If mapping is not configured, the default value will be used. If you do not understand the meaning, do not copy this configuration casually -->
       <property name="params" value="pageNum=start;pageSize=limit;"/>
       <!-- Support passing paging parameters through Mapper interface parameters -->
       <property name="supportMethodsArguments" value="true"/>
       <!-- Always always returns PageInfo type, check to check if the return type is PageInfo, and none returns Page -->
       <property name="returnPageInfo" value="check"/>
    </plugin>
    
  5. MyBatisの環境を設定します。 MyBatisの環境には、以下の部分が含まれます:

    • environment:単一の環境を設定するために使用されます。
    • transactionManager:トランザクションマネージャーの実装クラスを指定するために使用されます。
    • dataSource:データソースの実装クラスを指定するために使用されます。
    • property:データベースドライバーのクラス名を指定します。

    説明

    MyBatisの他の構成要素では、${} プレースホルダーを使用して、環境で構成されたデータソース、トランザクションマネージャー、エグゼキューターなどを参照できます。

    コード:

    <environments default="development">
        <environment id="development">
          <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    
  6. MyBatisのマッパーを設定します。

    MyBatisのマッパーでよく使われる要素は以下のとおりです:

    • resource:マッパーのXML設定ファイルのパスとファイル名を指定するために使用されます。
    • class:マッパーのJavaクラス名を指定するために使用されます。

    説明

    XML設定ファイルを使用する場合は、mapper要素でXMLファイルのパスとファイル名を指定する必要があります。Javaインターフェースを使用する場合は、mapper要素でJavaクラスの完全修飾名を指定する必要があります。

    コード:

    <mappers>
      <!-- IUserMapper.xml mapping file -->
      <mapper resource="com/alipay/oceanbase/mapper/IUserMapper.xml"></mapper>
      <!-- IAppMapper mapping class -->
      <mapper class="com.oceanbase.mapper.IAppMapper"></mapper>
    </mappers>
    

IUserMapper.xmlのコード紹介

IUserMapper.xml ファイルは、ユーザーオブジェクトに関連するSQLステートメントを定義するマッピングファイルです。このファイルでは、ユーザーオブジェクトに関連するSQLステートメントを格納するための IUserMapper という名前空間が定義されています。

説明

例を確認するだけであれば、デフォルトのコードを使用し、変更は不要です。変更が必要な場合は、実際の状況に応じて修正してください。

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

  1. ファイル宣言ステートメント。 XMLファイルの宣言部分は、XMLファイルのバージョンとエンコーディング方式を指定するために使用されます。DTDファイルの宣言部分は、MyBatisのDTDファイルをインポートするために使用されます。 コード:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
     PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  1. IUserMapper.java とのマッピング関係の設定。

    1. Javaコード内の Mapper インターフェースに対応するための Mapper インターフェースの名前空間を定義します。
    2. insertUser という名前のSQLステートメントを作成し、test_user テーブルにレコードを挿入します。id と name の2つのフィールドを含み、値はそれぞれ #{id} と #{name} です。parameterType 属性は、渡されるパラメータの型を com.oceanbase.pojo.User と指定します。
    3. deleteUser という名前のSQLステートメントを作成し、test_user テーブルからレコードを削除します。id フィールドの値が #{id} に一致するレコードを削除します。
    4. updateUser という名前のSQLステートメントを作成し、test_user テーブル内のレコードを更新します。id フィールドの値が #{id} に一致するレコードの name フィールドの値を #{name} に更新します。
    5. selectUsers という名前のSQLステートメントを作成し、test_user テーブル内のすべてのユーザーレコードを照会します。
    6. selectUserByPage という名前のSQLステートメントを作成し、test_user テーブルから指定されたページ数のユーザーオブジェクトを照会します。サブクエリと rownum フィールドを使用してページネーションクエリを実行します。ここで、#{pageNum} と #{pageSize} は、現在のページ番号と1ページあたりのレコード数を表します。

    コード:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.oceanbase.mapper.IUserMapper">
        <insert id="insertUser" parameterType="com.oceanbase.pojo.User">
            INSERT INTO test_user (id,name) VALUES (#{id},#{name})
        </insert>
        <delete id="deleteUser" parameterType="long">
            DELETE FROM test_user WHERE id = #{id}
        </delete>
        <update id="updateUser" parameterType="com.oceanbase.pojo.User">
            UPDATE test_user SET name = #{name} WHERE id = #{id}
        </update>
        <select id="selectUsers" resultType="com.oceanbase.pojo.User">
            SELECT id,name FROM test_user
        </select>
        <!--    There are two ways to paginate queries: 1. Use the pagehelper plugin; 2. Use SQL statements to paginate  -->
        <!-- SQL statement pagination: Oracle mode does not support the limit keyword, and instead uses the unique field 'rownum'-->
        <select id="selectUserByPage" resultType="com.oceanbase.pojo.User">
            select id,name from ( select row_.*, rownum rownum_ from ( select * from test_user ) row_ where rownum
            <![CDATA[ <= ]]>  #{pageNum} * #{pageSize} ) where rownum_ <![CDATA[ >]]>  ( #{pageNum}- 1) * #{pageSize}
        </select>
    </mapper>
    

IAppMapper.javaのコード紹介

IAppMapper.java ファイルは、SQLマッピング関係を定義するために使用されます。

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

  1. Mapper パッケージの定義。

    このファイルが属するパッケージ名を com.oceanbase.mapper と宣言します。 Mapper パッケージには以下のインターフェースとクラスが含まれます:

    • App インターフェース:データベーステーブルとのマッピングを表し、データの読み書き操作を実装します。
    • org.apache.ibatis.annotations.*:MyBatisのアノテーションクラスをインポートするために使用されます。
    • java.util.List:java.util パッケージの List クラスをインポートするために使用されます。 コード:
    package com.oceanbase.mapper;
    import com.oceanbase.pojo.App;
    import org.apache.ibatis.annotations.*;
    import java.util.List;
    
  2. IAppMapper インターフェースの定義。 IAppMapper インターフェースは、MyBatisの Mapper インターフェースを定義するために使用されます。Mapper インターフェースはSQLマッピング関係を定義し、データベースに対する追加、削除、変更、検索操作を実装します。具体的には、IAppMapper インターフェースは test_app テーブルに対する追加、削除、変更、検索のメソッドを定義します。これには以下が含まれます:

    • @Insert メソッド:データベースにデータを挿入するために使用されます。
    • @Update メソッド:データベース内のデータを更新するために使用されます。
    • @Delete メソッド:データベース内のデータを削除するために使用されます。
    • @Select メソッド:データベース内のデータを検索するために使用されます。
    • @Results メソッド:検索結果のマッピング関係を表し、検索結果のフィールドをJavaオブジェクトのプロパティにマッピングするために使用されます。 データベースに対する追加、削除、変更、検索の操作は以下のとおりです:
    1. データの挿入 Appオブジェクトを test_app テーブル内のレコードにマッピングします。Appオブジェクトのプロパティ値は #{プロパティ名} の形式でプレースホルダーとして表されます。Integer 型の戻り値は、SQLステートメントでデータを挿入した後に返される自動生成されたID、すなわち test_app テーブルのIDフィールドに対応する値を示します。

      @Insert("insert into test_app(id,name) values(#{id},#{name})")
      Integer insertApp(App app);
      
    2. データの削除 test_app テーブルから、idが #{id} のデータを削除します。

      @Delete("delete from test_app  where id =#{id}")
      Integer deleteApp(Long id);
      
    3. データの更新 test_app テーブル内のレコードを変更するには、Update操作を実行する必要があります。

      @Update("update test_app set name= #{name} where id = #{id}")
      Integer updateApp(App user);
      
    4. データの検索とマッピング test_app テーブルのすべてのデータを検索します。同時に、@Results アノテーションと @Result アノテーションを使用して、検索結果をAppオブジェクトの id および name プロパティにマッピングします。最終的にAppオブジェクトのリストを返します。

      @Update("update test_app set name= #{name} where id = #{id}")
      Integer updateApp(App user);
      @Results({
          @Result(id = true, column = "id", property = "id"),
          @Result(column = "name", property = "name")
          })
      List<App> selectApps();
      

    コード:

    package com.oceanbase.mapper;
    import com.oceanbase.pojo.App;
    import org.apache.ibatis.annotations.*;
    import java.util.List;
    public interface IAppMapper {
        @Insert("insert into test_app(id,name) values(#{id},#{name})")
        Integer insertApp(App app);
    
        @Delete("delete from test_app  where id =#{id}")
        Integer deleteApp(Long id);
    
        @Update("update test_app set name= #{name} where id = #{id}")
        Integer updateApp(App user);
    
        @Select("select * from test_app")
        @Results({
                @Result(id = true, column = "id", property = "id"),
                @Result(column = "name", property = "name")
        })
        List<App> selectApps();
    }
    

IUserMapper.javaのコード紹介

IUserMapper.java ファイルは、データベース操作のメソッドを定義するために使用されます。

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

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

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

    • User クラス:ユーザーオブジェクトを表します。
    • org.apache.ibatis.annotations.Param クラス:MyBatisフレームワークのパラメータアノテーションです。
    • List インターフェース:リスト型を表します。 コード:
    package com.oceanbase.mapper;
    import com.oceanbase.pojo.User;
    import org.apache.ibatis.annotations.Param;
    import java.util.List;
    
  2. IUserMapper インターフェースの定義。

    IUserMapper という名前のインターフェースを定義し、ユーザーデータの挿入、削除、更新、クエリのメソッド、およびユーザーデータのページネーションクエリのメソッドを定義しています。また、JavaDoc コメントと @Param アノテーションを使用して、コードの可読性と保守性を向上させています。 コード:

     public interface IUserMapper {
    
         Integer insertUser(User user);
    
         Integer deleteUser(Long id);
    
         Integer updateUser(User user);
    
         List<User> selectUsers();
    
         public List<User> selectUserByPage(@Param("user") User user, @Param("pageNum") Integer pageNum,
                                         @Param("pageSize") Integer pageSize);
     }
    

App.javaのコード紹介

App.java ファイルは、Appアプリケーションオブジェクトを表すために使用されます。これには id と name の2つの属性が含まれます。クラスには、属性へのアクセスメソッドとコンストラクタメソッド、およびオブジェクトを文字列に変換する toString メソッドも定義されています。

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

  1. pojo パッケージの定義。 このファイルが属するパッケージ名を com.oceanbase.pojo と宣言します。
  2. App クラスの定義。
    1. App クラスを定義し、2つのプライベート属性 id と name、およびパラメータなしコンストラクタメソッド public App(){} を含みます。
    2. パラメータ付きコンストラクタメソッド public App(Long id, String name) を定義し、指定された id と name を持つアプリケーションオブジェクトを作成するために使用します。
    3. getId メソッド、setId メソッド、getName メソッド、setName メソッドを定義し、アプリケーション名の取得と設定に使用します。setName メソッドは設定されたアプリケーション名を返します。
    4. toString メソッドをオーバーライドすることで、アプリケーションオブジェクトを文字列表現に変換し、出力とデバッグを容易にします。

コード:

   package com.oceanbase.pojo;

   public class App {
       private Long id;
       private String name;

       public App() {
       }

       public App(Long id, String name) {
            this.id = id;
           this.name = name;
       }

       public Long getId() {
           return id;
       }

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

       public String getName() {
           return name;
       }

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

       @Override
       public String toString() {
           return "App{" +
                   "id=" + id +
                   ", name='" + name + '\'' +
                   '}';
       }
   }

User.javaのコード紹介

User.java ファイルは、ユーザーオブジェクトを表すために使用されます。これには id と name の2つの属性が含まれます。クラスには、属性へのアクセスメソッドとコンストラクタメソッド、およびオブジェクトを文字列に変換する toString メソッドも定義されています。 このクラスの作成は、前述の App.java のコードでの作成と同様です。

コード:

package com.oceanbase.pojo;

public class User {
    private Long id;
    private String name;

    public User() {
    }

    public User(Long id, String name) {
        this.id = id;
        this.name = name;
    }

    public Long getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}

MyBatisTest.javaファイルの紹介

MyBatisTest.javaは、MyBatisを使用してデータ操作を行う方法を示すために使用されます。MyBatisフレームワークの基本機能とSQLステートメントの実行状況、Mapperインターフェースの呼び出し方、SQLステートメントのパラメータと戻り値などをテストします。

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

    使用するクラスとインターフェースをインポートするために使用します:

    • IAppMapper インターフェース:Appオブジェクトに関連するSQLステートメントを定義するために使用します。
    • IUserMapper インターフェース:Userオブジェクトに関連するSQLステートメントを定義するために使用します。
    • App クラス:Appオブジェクトを使用して、SQLステートメントの実行状況をテストします。
    • User クラス:Userオブジェクトを使用して、SQLステートメントの実行状況をテストします。
    • PageHelper プラグイン:ページネーションクエリ機能を実装するために使用します。
    • PageInfo プラグイン:ページネーションクエリ結果をカプセル化するために使用します。
    • Resources クラス:MyBatis設定ファイルを読み込むために使用します。
    • SqlSession クラス:SQLステートメントの実行とトランザクションの管理に使用します。
    • SqlSessionFactory クラス:SqlSessionオブジェクトを作成するために使用します。
    • SqlSessionFactoryBuilder クラス:SqlSessionFactoryオブジェクトを作成するために使用します。
    • org.junit.Test:JUnitテストフレームワークのアノテーションで、テストメソッドをマークするために使用します。
    • IOException クラス:入出力操作中のエラーを表すために使用します。
    • SQLException クラス:SQL操作中のエラーを表すために使用します。
    • Statement インターフェース:SQLステートメントを実行し、結果を返すために使用します。
    • java.util.List インターフェース:要素が重複可能な順序付きコレクションを表すために使用します。

    コード:

    import com.oceanbase.mapper.IAppMapper;
    import com.oceanbase.mapper.IUserMapper;
    import com.oceanbase.pojo.App;
    import com.oceanbase.pojo.User;
    import com.github.pagehelper.PageHelper;
    import com.github.pagehelper.PageInfo;
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    import org.junit.Test;
    import java.io.IOException;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.List;
    
  2. testUserMapper メソッドの定義。

    testUserMapper メソッドは、User オブジェクトの Mapper インターフェースで定義されたSQLステートメントの実行状況をテストするために使用されます。

    1. SqlSessionFactoryBuilder クラスの build() メソッドを使用して、SqlSessionFactory インスタンスを作成します。これは SqlSession インスタンスの作成と破棄を管理するために使用されます。
    2. SqlSessionFactory の openSession() メソッドを使用して、SqlSession インスタンスを作成します。クエリ、挿入、更新、削除など、さまざまなSQLステートメントを実行できます。
    3. SqlSession インスタンスの getConnection() メソッドを使用して、Connection インスタンスを取得します。さまざまなデータベース操作を実行できます。
    4. Connection インスタンスの createStatement() メソッドを使用して、Statement インスタンスを作成します。SQLステートメントを順次実行します。
    5. Statement オブジェクトの execute() メソッドを使用して、test_user テーブルを削除するSQLステートメントを実行します。
    6. Statement オブジェクトの execute() メソッドを使用して、test_user テーブルを作成します。このテーブルには2つのフィールドが含まれます。1つは id で、number(20) 型で主キーとして使用されます。もう1つは name で、varchar2(100) 型です。
    7. SqlSession インスタンスの getMapper() メソッドを使用して、IUserMapper インターフェースのインスタンスを取得します。さまざまなデータベース操作メソッドを定義します。
    8. for ループを使用して、test_user テーブルに10件のデータを挿入します。ループごとに新しいUserオブジェクトを作成し、Mapper インターフェースの insertUser() メソッドを使用して挿入操作を実行します。挿入操作の結果は insertResult 変数に格納されます。
    9. test_user テーブル内のデータに対して削除、更新、クエリを実行し、最後に forEach() メソッドを使用して、ユーザーリスト内の各ユーザー情報を出力します。
    10. insert という名前のユーザーを作成し、selectUserByPage() メソッドを使用して test_user テーブル内のすべての名前が "insert" であるユーザーデータをクエリし、指定されたページのユーザーリストを返します。クエリは2ページ目で、1ページにつき3件のデータを表示します。そして、これらのユーザーデータをコンソールに出力します。同時に Statement と SqlSession インスタンスを閉じ、トランザクションをコミットしてリソースを解放します。

    コード:

        public void testUserMapper() throws SQLException, IOException {
            //mybatis xml usecases
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
            SqlSession sqlSession = sqlSessionFactory.openSession();
            Statement statement = sqlSession.getConnection().createStatement();
            try {
                statement.execute("drop table test_user");
            } catch (SQLException ex) {
            } finally {
                statement.execute("create table test_user(id number(20) primary key,name varchar2(100))");
            }
            IUserMapper mapper = sqlSession.getMapper(IUserMapper.class);
            //insert 10 users
            for (int i = 1; i <= 10; i++) {
                User user = new User((long) i, "insert");
                Integer insertResult = mapper.insertUser(user);
            }
            //delete id==1
            Integer deleteResult = mapper.deleteUser(1L);
            //update id==2L name=update
            User updateUser = new User(2L, "update");
            Integer updateResult = mapper.updateUser(updateUser);
            //selectUsers query all
            List<User> userList = mapper.selectUsers();
            userList.forEach(System.out::println);
            //selectUsersByPage:use the rownum keyword in SQL statements to manually perform pagination queries,
            // example: data on page 2 (3 items per page)
            User user = new User();
            user.setName("insert");
            List<User> usersByPage = mapper.selectUserByPage(user, 2, 3);
            System.out.println("usersByPage = " + usersByPage);
            statement.close();
            sqlSession.commit();
            sqlSession.close();
        }
    
  3. testSqlSession メソッドを定義します。

    testSqlSession メソッドは、SQLステートメントの実行、トランザクションのコミット、SqlSessionオブジェクトを閉じる操作など、SqlSessionオブジェクトの基本機能をテストするために使用されます。

    1. SqlSessionFactoryBuilder クラスの build() メソッドを使用して、SqlSessionFactory インスタンスを作成します。これは、SqlSession インスタンスの作成と破棄を管理するために使用されます。
    2. SqlSessionFactory の openSession() メソッドを使用して、SqlSession インスタンスを作成します。クエリ、挿入、更新、削除など、さまざまなSQLステートメントを実行できます。
    3. SqlSession インスタンスの getConnection() メソッドを使用して、Connection インスタンスを取得します。さまざまなデータベース操作を実行できます。
    4. Connection インスタンスの createStatement() メソッドを使用して、Statement インスタンスを作成します。SQLステートメントを順次実行します。
    5. Statement オブジェクトの execute() メソッドを使用して、test_user テーブルを削除するSQLステートメントを実行します。
    6. Statement オブジェクトの execute() メソッドを使用して、test_user テーブルを作成します。このテーブルには2つのフィールドが含まれます。1つは id で、number(20) 型で主キーとして使用されます。もう1つは name で、varchar2(100) 型です。
    7. for ループを使用して、test_user テーブルに10件のデータを挿入します。ループごとに新しい User オブジェクトを作成し、Mapper インターフェースの insertUser() メソッドを使用して挿入操作を実行します。挿入操作の結果は insertResult 変数に格納されます。
    8. sqlSession の delete() メソッドを使用して、削除操作を実行します。パラメータ1Lを渡して削除条件を設定します。削除操作の結果は deleteResult 変数に格納されます。
    9. sqlSession オブジェクトを使用してデータベースの更新操作を実行します。Userオブジェクトを作成し、update メソッドを呼び出してSQLステートメントの識別子とパラメータオブジェクトを渡すことで、更新操作を完了します。具体的なSQLステートメントとパラメータのマッピング関係は、「com.oceanbase.mapper.IUserMapper」インターフェース内のXML設定ファイルで見つけることができます。更新操作の結果は updateResult 変数に格納されます。
    10. SqlSessionFactory の openSession() メソッドを使用して SqlSession インスタンスを作成し、そのインスタンスを使用してクエリ操作を実行し、クエリ結果を userList 変数に格納します。最後に、forEach メソッドを使用して userList を走査し、コンソールに出力します。
    11. statement.close() を使用して、データベース接続内の Statement オブジェクトを閉じます。次に、sqlSession.commit() を使用してトランザクションをコミットし、すべての変更をデータベースに永続化します。最後に、sqlSession.close() を使用して SqlSession オブジェクトを閉じ、関連リソースを解放し、データベース接続を閉じます。

    コード:

        public void testSqlSession() throws SQLException, IOException {
            //SqlSession usecases
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
            SqlSession sqlSession = sqlSessionFactory.openSession();
            Statement statement = sqlSession.getConnection().createStatement();
            try {
                statement.execute("drop table test_user");
            } catch (SQLException ex) {
            } finally {
                statement.execute("create table test_user(id number(20) primary key,name varchar2(100))");
            }
            //insert
            for (int i = 1; i <= 10; i++) {
                User user = new User((long) i, "insert");
                //Integer insertResult = mapper.insertUser(user);
                int insertResult = sqlSession.insert("com.oceanbase.mapper.IUserMapper.insertUser", user);
            }
            //delete
            int deleteResult = sqlSession.delete("com.oceanbase.mapper.IUserMapper.deleteUser", 1L);
            //update
            User updateUser = new User(2L, "update");
            int updateResult = sqlSession.update("com.oceanbase.mapper.IUserMapper.updateUser", updateUser);
            //selectUsers
            List<User> userList = sqlSession.selectList("com.oceanbase.mapper.IUserMapper.selectUsers", null);
            userList.forEach(System.out::println);
            //System.out.println("userList = " + userList);
            statement.close();
            sqlSession.commit();
            sqlSession.close();
        }
    
  4. testAppMapper メソッドを定義します。

    testAppMapper メソッドは、AppMapperの機能をテストするために使用されます。

    1. SqlSessionFactoryBuilder クラスの build() メソッドを使用して、SqlSessionFactory インスタンスを作成します。これは、SqlSession インスタンスの作成と破棄を管理するために使用されます。
    2. SqlSessionFactory の openSession() メソッドを使用して、SqlSession インスタンスを作成します。クエリ、挿入、更新、削除など、さまざまなSQLステートメントを実行できます。
    3. SqlSession インスタンスの getConnection() メソッドを使用して、Connection インスタンスを取得します。さまざまなデータベース操作を実行できます。
    4. Connection インスタンスの createStatement() メソッドを使用して、Statement インスタンスを作成します。SQLステートメントを順次実行します。
    5. Statement オブジェクトの execute() メソッドを使用して、test_app テーブルを削除するSQLステートメントを実行します。
    6. Statement オブジェクトの execute() メソッドを使用して、test_app テーブルを作成します。このテーブルには2つのフィールドが含まれます。1つは id で、number(20) 型で主キーとして使用されます。もう1つは name で、varchar2(100) 型です。
    7. SqlSession インスタンスの getMapper() メソッドを使用して、IAppMapper インターフェースのインスタンスを取得します。さまざまなデータベース操作メソッドを定義します。
    8. for ループを使用して、test_app テーブルに10件のデータを挿入します。ループごとに新しい App オブジェクトを作成し、Mapper インターフェースの insertApp() メソッドを使用して挿入操作を実行します。挿入操作の結果は insertResult 変数に格納されます。
    9. mapper の delete() メソッドを使用して、削除操作を実行します。パラメータ 1L を渡して削除条件を設定します。削除操作の結果は deleteResult 変数に格納されます。
    10. mapper オブジェクトを使用してデータベースの更新操作を実行します。App オブジェクトを作成し、update メソッドを呼び出してSQLステートメントの識別子とパラメータオブジェクトを渡すことで、更新操作を完了します。
    11. id が 2L、name が "update" である App オブジェクト updateApp を作成します。
    12. mapper の updateApp メソッドを呼び出し、updateApp オブジェクトを渡して更新操作を実行します。
    13. sqlSession の commit メソッドを呼び出して、データベーストランザクションをコミットします。
    14. mapper の selectApps メソッドを呼び出して、すべての App オブジェクトをクエリします。forEach メソッドを使用して userList を走査し、コンソールに出力します。
    15. PageHelper の startPage メソッドを呼び出し、ページ番号と1ページあたりのデータ数を渡して、ページネーションパラメータを設定します。すべての App オブジェクトをクエリし、すべての App オブジェクトを含む List オブジェクトを返します。
    16. PageInfo の getList メソッドを呼び出して、ページネーション後の App オブジェクトリストを取得し、System.out.println メソッドを使用してページネーション後の App オブジェクトリストを出力します。
    17. sqlSession.close() を使用して SqlSession オブジェクトを閉じ、関連リソースを解放します。

    コード:

        public void testAppMapper() throws SQLException, IOException {
            //mybatis annotation usecases
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
            SqlSession sqlSession = sqlSessionFactory.openSession();
            Statement statement = sqlSession.getConnection().createStatement();
            try {
                statement.execute("drop table test_app");
            } catch (SQLException ex) {
            } finally {
                statement.execute("create table test_app(id number(20) primary key,name varchar2(100))");
            }
    
            IAppMapper mapper = sqlSession.getMapper(IAppMapper.class);
    
            //insert
            for (int i = 1; i <= 10; i++) {
                App app = new App((long) i, "insert" + i);
                Integer insertResult = mapper.insertApp(app);
            }
    
            //delete
            Integer deleteResult = mapper.deleteApp(1L);
            //update
            App updateApp = new App(2L, "update");
            Integer updateResult = mapper.updateApp(updateApp);
            //commit
            sqlSession.commit();
    
            //selectApps
            List<App> appList = mapper.selectApps();
            appList.forEach(System.out::println);
    
            //selectbyPage
            //set page parameters
            PageHelper.startPage(2, 3);
            //selectApps
            List<App> appList1 = mapper.selectApps();
            //get pageList
            PageInfo pageInfo = new PageInfo(appList1);
            List<App> pageList = pageInfo.getList();
            System.out.println("pageList = " + pageList);
    
            sqlSession.close();
        }
    

全コード表示

pom.xml
jdbc.properties
mybatis-config.xml
IUserMapper.xml
IAppMapper.java
IUserMapper.java
App.java
User.java
TestMybatis.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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>

        <groupId>com.oceanbase.example</groupId>
        <artifactId>java-oceanbase-mybatis</artifactId>
        <version>1.0-SNAPSHOT</version>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>8</source>
                        <target>8</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>

        <dependencies>
            <dependency>
                <groupId>com.oceanbase</groupId>
                <artifactId>oceanbase-client</artifactId>
                <version>2.4.2</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.10</version>
            </dependency>
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.5.9</version>
            </dependency>
            <!--  pagehelper plug-in -->
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper</artifactId>
                <version>5.3.0</version>
            </dependency>
        </dependencies>
    </project>
jdbc.driver=com.oceanbase.jdbc.Driver
jdbc.url=jdbc:oceanbase://host:port/TEST?useServerPrepStmts=true&rewriteBatchedStatements=true
jdbc.username=user_name
jdbc.password=******
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
      <properties resource="jdbc.properties"></properties>
      <settings>
          <setting name="cacheEnabled" value="true"/>
          <setting name="lazyLoadingEnabled" value="true"/>
          <setting name="aggressiveLazyLoading" value="true"/>
          <setting name="multipleResultSetsEnabled" value="true"/>
          <setting name="useColumnLabel" value="true"/>
          <setting name="useGeneratedKeys" value="true"/>
          <setting name="autoMappingBehavior" value="PARTIAL"/>
          <setting name="defaultExecutorType" value="SIMPLE"/>
          <setting name="mapUnderscoreToCamelCase" value="true"/>
          <setting name="localCacheScope" value="SESSION"/>
          <setting name="jdbcTypeForNull" value="NULL"/>
      </settings>
      <plugins>
          <plugin interceptor="com.github.pagehelper.PageInterceptor">

              <property name="helperDialect" value="oracle"/>

              <property name="offsetAsPageNum" value="true"/>
              <property name="rowBoundsWithCount" value="true"/>
              <property name="pageSizeZero" value="true"/>

              <property name="reasonable" value="false"/>

              <property name="params" value="pageNum=start;pageSize=limit;"/>
              <property name="supportMethodsArguments" value="true"/>
              <property name="returnPageInfo" value="check"/>
          </plugin>
      </plugins>
      <environments default="development">
          <environment id="development">
              <transactionManager type="JDBC"/>
              <dataSource type="POOLED">
                  <property name="driver" value="${jdbc.driver}"/>
                  <property name="url" value="${jdbc.url}"/>
                  <property name="username" value="${jdbc.username}"/>
                  <property name="password" value="${jdbc.password}"/>
              </dataSource>
          </environment>
      </environments>
      <mappers>
          <mapper resource="com/alipay/oceanbase/mapper/IUserMapper.xml"></mapper>
          <mapper class="com.oceanbase.mapper.IAppMapper"></mapper>
      </mappers>
    </configuration>
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.oceanbase.mapper.IUserMapper">
        <insert id="insertUser" parameterType="com.oceanbase.pojo.User">
            INSERT INTO test_user (id,name) VALUES (#{id},#{name})
        </insert>
        <delete id="deleteUser" parameterType="long">
            DELETE FROM test_user WHERE id = #{id}
        </delete>
        <update id="updateUser" parameterType="com.oceanbase.pojo.User">
            UPDATE test_user SET name = #{name} WHERE id = #{id}
        </update>
        <select id="selectUsers" resultType="com.oceanbase.pojo.User">
            SELECT id,name FROM test_user
        </select>
        <!--    There are two ways to paginate queries: 1. Use the pagehelper plugin; 2. Use SQL statements to paginate  -->
        <!-- SQL statement pagination: Oracle mode does not support the limit keyword, and instead uses the unique field 'rownum'-->
        <select id="selectUserByPage" resultType="com.oceanbase.pojo.User">
            select id,name from ( select row_.*, rownum rownum_ from ( select * from test_user ) row_ where rownum
            <![CDATA[ <= ]]>  #{pageNum} * #{pageSize} ) where rownum_ <![CDATA[ >]]>  ( #{pageNum}- 1) * #{pageSize}
        </select>
    </mapper>
package com.oceanbase.mapper;

import com.oceanbase.pojo.App;
import org.apache.ibatis.annotations.*;

import java.util.List;

//using annotations
public interface IAppMapper {
    @Insert("insert into test_app(id,name) values(#{id},#{name})")
    Integer insertApp(App app);

    @Delete("delete from test_app  where id =#{id}")
    Integer deleteApp(Long id);

    @Update("update test_app set name= #{name} where id = #{id}")
    Integer updateApp(App user);

    @Select("select * from test_app")
    @Results({
            @Result(id = true, column = "id", property = "id"),
            @Result(column = "name", property = "name")
    })
    List<App> selectApps();
}
package com.oceanbase.mapper;

import com.oceanbase.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

//using XML
public interface IUserMapper {

    Integer insertUser(User user);

    Integer deleteUser(Long id);

    Integer updateUser(User user);

    List<User> selectUsers();

    public List<User> selectUserByPage(@Param("user") User user, @Param("pageNum") Integer pageNum,
                                       @Param("pageSize") Integer pageSize);
}
package com.oceanbase.pojo;

public class App {
    private Long id;
    private String name;

    public App() {
    }

    public App(Long id, String name) {
        this.id = id;
        this.name = name;
    }

    public Long getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    @Override
    public String toString() {
        return "App{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}
package com.oceanbase.pojo;

public class User {
    private Long id;
    private String name;

    public User() {
    }

    public User(Long id, String name) {
        this.id = id;
        this.name = name;
    }

    public Long getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}
import com.oceanbase.mapper.IAppMapper;
import com.oceanbase.mapper.IUserMapper;
import com.oceanbase.pojo.App;
import com.oceanbase.pojo.User;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;

public class TestMybatis {
    @Test
    public void testUserMapper() throws SQLException, IOException {
        //mybatis xml usecases
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
        SqlSession sqlSession = sqlSessionFactory.openSession();
        Statement statement = sqlSession.getConnection().createStatement();
        try {
            statement.execute("drop table test_user");
        } catch (SQLException ex) {
        } finally {
            statement.execute("create table test_user(id number(20) primary key,name varchar2(100))");
        }
        IUserMapper mapper = sqlSession.getMapper(IUserMapper.class);
        //insert 10 users
        for (int i = 1; i <= 10; i++) {
            User user = new User((long) i, "insert");
            Integer insertResult = mapper.insertUser(user);
        }
        //delete id==1
        Integer deleteResult = mapper.deleteUser(1L);
        //update id==2L name=update
        User updateUser = new User(2L, "update");
        Integer updateResult = mapper.updateUser(updateUser);
        //selectUsers query all
        List<User> userList = mapper.selectUsers();
        userList.forEach(System.out::println);
        //selectUsersByPage:use the rownum keyword in SQL statements to manually perform pagination queries,
        // example: data on page 2 (3 items per page)
        User user = new User();
        user.setName("insert");
        List<User> usersByPage = mapper.selectUserByPage(user, 2, 3);
        System.out.println("usersByPage = " + usersByPage);
        statement.close();
        sqlSession.commit();
        sqlSession.close();
    }

    @Test
    public void testSqlSession() throws SQLException, IOException {
        //SqlSession usecases
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
        SqlSession sqlSession = sqlSessionFactory.openSession();
        Statement statement = sqlSession.getConnection().createStatement();
        try {
            statement.execute("drop table test_user");
        } catch (SQLException ex) {
        } finally {
            statement.execute("create table test_user(id number(20) primary key,name varchar2(100))");
        }
        //insert
        for (int i = 1; i <= 10; i++) {
            User user = new User((long) i, "insert");
            //Integer insertResult = mapper.insertUser(user);
            int insertResult = sqlSession.insert("com.oceanbase.mapper.IUserMapper.insertUser", user);
        }
        //delete
        int deleteResult = sqlSession.delete("com.oceanbase.mapper.IUserMapper.deleteUser", 1L);
        //update
        User updateUser = new User(2L, "update");
        int updateResult = sqlSession.update("com.oceanbase.mapper.IUserMapper.updateUser", updateUser);
        //selectUsers
        List<User> userList = sqlSession.selectList("com.oceanbase.mapper.IUserMapper.selectUsers", null);
        userList.forEach(System.out::println);
        //System.out.println("userList = " + userList);
        statement.close();
        sqlSession.commit();
        sqlSession.close();
    }

    @Test
    public void testAppMapper() throws SQLException, IOException {
        //mybatis annotation usecases
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
        SqlSession sqlSession = sqlSessionFactory.openSession();
        Statement statement = sqlSession.getConnection().createStatement();
        try {
            statement.execute("drop table test_app");
        } catch (SQLException ex) {
        } finally {
            statement.execute("create table test_app(id number(20) primary key,name varchar2(100))");
        }

        IAppMapper mapper = sqlSession.getMapper(IAppMapper.class);

        //insert
        for (int i = 1; i <= 10; i++) {
            App app = new App((long) i, "insert" + i);
            Integer insertResult = mapper.insertApp(app);
        }

        //delete
        Integer deleteResult = mapper.deleteApp(1L);
        //update
        App updateApp = new App(2L, "update");
        Integer updateResult = mapper.updateApp(updateApp);
        //commit
        sqlSession.commit();

        //selectApps
        List<App> appList = mapper.selectApps();
        appList.forEach(System.out::println);

        //selectbyPage
        //set page parameters
        PageHelper.startPage(2, 3);
        //selectApps
        List<App> appList1 = mapper.selectApps();
        //get pageList
        PageInfo pageInfo = new PageInfo(appList1);
        List<App> pageList = pageInfo.getList();
        System.out.println("pageList = " + pageList);

        sqlSession.close();
    }
}

関連ドキュメント

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

前のトピック

HibernateでOceanBase Cloudに接続するサンプルプログラム
前へ

次のトピック

JfinalによるOceanBase Cloudデータベース接続サンプルプログラム
次へ
このページの内容
前提条件
操作手順
ステップ1:OceanBase Cloudデータベースの接続文字列を取得する
ステップ2:java-oceanbase-mybatis プロジェクトをIDEAにインポートする
ステップ3:java-oceanbase-mybatis プロジェクトのデータベース接続情報を修正する
ステップ4:java-oceanbase-mybatis プロジェクトを実行する
プロジェクトコードについて
pom.xmlコードの紹介
jdbc.properties コードの説明
mybatis-config.xmlの紹介
IUserMapper.xmlのコード紹介
IAppMapper.javaのコード紹介
IUserMapper.javaのコード紹介
App.javaのコード紹介
User.javaのコード紹介
MyBatisTest.javaファイルの紹介
全コード表示
関連ドキュメント