OceanBase logo

OceanBase

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

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

OceanBase Cloud

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

エンタープライズ版

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

オープンソース版を試す

コミュニティ版

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

OceanBase seekdb

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

顧客事例

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

さらに見る
利用シーン別

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

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

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

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

複数インスタンスの統合

ドキュメント

会社概要

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

OceanBaseについて

トラストセンター

法的情報

お問い合わせ

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

OceanBase

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

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

OceanBase Cloud

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

エンタープライズ版

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

オープンソース版を試す

コミュニティ版

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

OceanBase seekdb

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

顧客事例

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

さらに見る
利用シーン別

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

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

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

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

複数インスタンスの統合

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

OceanBaseについて

トラストセンター

法的情報

お問い合わせ

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

OceanBase Cloud

すべてのバージョン

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

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

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

© OceanBase 2026. All rights reserved

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

MyBatis を使用して OB Cloud データベースに接続するサンプルプログラム

最終更新日:2026-06-08 08:05:36  更新
シェア
このページの内容
前提条件
手順
手順 1:OB Cloud データベースの接続文字列を取得する
手順 2:java-oceanbase-mybatis プロジェクトを IDEA にインポートする
手順 3:java-oceanbase-mybatis プロジェクト内のデータベース接続情報を変更する
手順 4:java-oceanbase-mybatis プロジェクトを実行する
よくある質問
1. 接続タイムアウト
2. 文字セットの問題
3. SSL 接続
4. アカウントパスワード内の特殊文字
プロジェクトコードの紹介
pom.xml コードの紹介
jdbc.properties コードの紹介
mybatis-config.xml の紹介
IUserMapper.xml コードの紹介
IAppMapper.java コードの紹介
IUserMapper.java コードの紹介
App.java コードの紹介
User.java コードの紹介
TestMyBatis.java ファイルの紹介
完全なコードの表示
関連情報

折りたたみ

シェア

本ドキュメントでは、MyBatis フレームワークと OB Cloud データベースを使用してアプリケーションを構築し、テーブルの作成、データの挿入、データのクエリなどの基本操作を実装する方法について説明します。

      java-oceanbase-mybatis サンプルプロジェクトをダウンロード
  </a>

前提条件

  • OB Cloud データベースのアカウントを登録し、クラスタインスタンスと MySQL互換モード のテナントを作成していること。詳細は、クラスタインスタンスの作成 および テナントの作成 をご参照ください。
  • JDK 1.8 および Maven がインストールされていること。
  • IntelliJ IDEA がインストールされていること。

説明

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

手順

説明

本ドキュメントに記載されている手順は、Windows 環境に基づいています。他のオペレーティングシステム環境やコンパイラを使用している場合、手順が若干異なる場合があります。

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

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

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

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

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

    説明

    jdbc.properties ファイルでこの URL 情報が必要になります。

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

    パラメータの説明:

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

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:OB Cloud データベースの接続文字列を取得する の情報に基づいて、jdbc.properties ファイル内のデータベース接続情報を変更します。

例は以下の通りです:

  • データベースドライバ名:com.mysql.cj.jdbc.Driver
  • OBServerノード の IP アドレス:t5******.********.oceanbase.cloud
  • アクセスポート:3306
  • アクセスするスキーマ名:test
  • URL の追加接続プロパティ:useServerPrepStmts=true&rewriteBatchedStatements=true
  • テナントの接続アカウント:mysql001
  • パスワード:******

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

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:oceanbase://t5******.********.oceanbase.cloud:3306/test?useServerPrepStmts=true&rewriteBatchedStatements=true
jdbc.username=mysql001
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'}
    

よくある質問

1. 接続タイムアウト

接続タイムアウトの問題が発生した場合は、JDBC URL で接続タイムアウトパラメータを設定できます:

jdbc:mysql://host:port/database?connectTimeout=30000&socketTimeout=60000

2. 文字セットの問題

正しい文字エンコーディングを確保するために、JDBC URL で正しい文字セットパラメータを設定します:

jdbc:mysql://host:port/database?characterEncoding=utf8&useUnicode=true

3. SSL 接続

OB Cloud データベースとの SSL 接続を有効にするには、JDBC URL に以下のパラメータを追加します:

jdbc:mysql://host:port/database?useSSL=true&requireSSL=true

4. アカウントパスワード内の特殊文字

ユーザー名またはパスワードに特殊文字(# など)が含まれている場合は、URL エンコードを行う必要があります:

String encodedPassword = URLEncoder.encode(password, "UTF-8");

注意

MySQL Connector/J 8.x を使用する場合、アカウントパスワードにハッシュ記号 (#) が含まれていないことを確認してください。含まれていると、接続エラーが発生する可能性があります。

プロジェクトコードの紹介

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 モデルバージョンを設定します。

    1. xmlns を使用して、POM の名前空間を http://maven.apache.org/POM/4.0.0 に指定します。
    2. xmlns:xsi を使用して、XML 名前空間を http://www.w3.org/2001/XMLSchema-instance に指定します。
    3. xsi:schemaLocation を使用して、POM の名前空間を http://maven.apache.org/POM/4.0.0 に指定し、POM の XSD ファイルの場所を http://maven.apache.org/xsd/maven-4.0.0.xsd に指定します。
    4. <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>
    
  3. 基本情報の設定。

    1. <groupId> を使用して、プロジェクト識別子を com.oceanbase.example に指定します。
    2. <artifactId> を使用して、プロジェクト依存関係を java-oceanbase-mybatis に指定します。
    3. <version> を使用して、プロジェクトのバージョン番号を 1.0-SNAPSHOT に指定します。

    コードは以下の通りです:

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

    1. <plugins> を使用して、プロジェクトで設定するプラグインを指定します。
    2. <plugin> を使用して、プロジェクトで設定する単一のプラグインを指定します。
    3. <groupId> を使用して、プロジェクト識別子を org.apache.maven.plugins に指定します。
    4. <artifactId> を使用して、プロジェクト依存関係を maven-compiler-plugin に指定します。
    5. <configuration> を使用して、設定するプラグインのパラメータを指定します。
    6. <source> を使用して、コンパイラのソースコードバージョンを 8 に指定します。
    7. <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>
    
  5. <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:OB Cloud データベースの接続文字列を取得する から直接取得します。

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

コードは以下の通りです:

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://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="mysql"/>
       <!-- 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 ステートメントを定義するためのマッピングファイルです。このファイルには IUserMapper という名前空間が定義されており、ユーザーオブジェクトに関連する SQL ステートメントを格納するために使用されます。

説明

サンプルを検証するだけであれば、デフォルトのコードを使用し、変更する必要はありません。変更が必要な場合は、実際の状況に応じて変更してください。

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">
    
  2. IUserMapper.java とのマッピング関係を設定します。

    1. Mapper インターフェースの名前空間を定義し、Java コード内の 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 テーブルのレコードを更新します。name フィールドの値を #{name} に更新し、id フィールドの値に基づいて対応するレコードを照合します。値は #{id} です。
    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 マッピング関係を定義し、データベースに対する CRUD 操作を実装するために使用されます。具体的には、IAppMapper インターフェースは test_app テーブルに対する CRUD 操作のメソッドを定義しており、以下が含まれます:

    • @Insert メソッド:データベースにデータを挿入するために使用されます。
    • @Update メソッド:データベース内のデータを更新するために使用されます。
    • @Delete メソッド:データベース内のデータを削除するために使用されます。
    • @Select メソッド:データベース内のデータをクエリするために使用されます。
    • @Results メソッド:クエリ結果のマッピング関係を示し、クエリ結果のフィールドを Java オブジェクトのプロパティにマッピングするために使用されます。 データベースに対する CRUD 操作は以下の通りです:
    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 というクラスを定義します。これには id と name の 2 つのプライベートプロパティ、および引数なしのコンストラクタ public App(){} が含まれます。
    2. 指定された id と name を持つアプリケーションオブジェクトを作成するために、パラメータ付きのコンストラクタ public App(Long id, String 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 + '\'' +
                '}';
    }
}

TestMyBatis.java ファイルの紹介

TestMyBatis.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.mysql.cj.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 を使用して OB Cloud に接続するサンプルプログラム
最後

次のトピック

connector-j
次
このページの内容
前提条件
手順
手順 1:OB Cloud データベースの接続文字列を取得する
手順 2:java-oceanbase-mybatis プロジェクトを IDEA にインポートする
手順 3:java-oceanbase-mybatis プロジェクト内のデータベース接続情報を変更する
手順 4:java-oceanbase-mybatis プロジェクトを実行する
よくある質問
1. 接続タイムアウト
2. 文字セットの問題
3. SSL 接続
4. アカウントパスワード内の特殊文字
プロジェクトコードの紹介
pom.xml コードの紹介
jdbc.properties コードの紹介
mybatis-config.xml の紹介
IUserMapper.xml コードの紹介
IAppMapper.java コードの紹介
IUserMapper.java コードの紹介
App.java コードの紹介
User.java コードの紹介
TestMyBatis.java ファイルの紹介
完全なコードの表示
関連情報