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

データベース

OceanBase CloudOceanBaseデータベース

データベース

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

OceanBaseデータベース

  • エコシステム統合の概要
  • ORMフレームワーク
    • Java
      • SpringBootサンプルプログラム
      • SpringBatchサンプルプログラム
      • Spring JDBCサンプルプログラム
      • SpringDataJPAサンプルプログラム
      • Hibernateサンプルプログラム
      • MyBatisサンプルプログラム
    • Python
      • SQLAlchemyによるOceanBaseデータベース接続サンプルプログラム
      • peeweeによるOceanBaseデータベース接続サンプルプログラム
      • Tortoise ORM による OceanBase データベース接続サンプルプログラム
    • Go
      • GORMサンプルプログラム
    • Rust
      • SeaORM による OceanBase データベース接続サンプルプログラム
    • Ruby
      • ActiveRecordによるOceanBaseデータベース接続サンプルプログラム
      • Sequel で OceanBase データベースに接続するサンプルプログラム
      • Ruby on RailsによるOceanBaseデータベース接続サンプルプログラム
    • Node.js
      • SequelizeでOceanBaseデータベースに接続する
      • TypeORMを使用してOceanBaseデータベースに接続する
      • Prismaを使用してOceanBaseデータベースに接続する
      • Drizzle ORMを使用してOceanBaseデータベースに接続する
    • C#
      • Dapperを使用してOceanBaseデータベースに接続する
      • SqlSugarを使用してOceanBaseデータベースに接続する
      • FreeSQLを使用してOceanBaseデータベースに接続する
    • PHP
      • Yii 2.0 ORMサンプルプログラム
      • Laravel Eloquent ORMサンプルプログラム
  • データベースのバージョン管理
    • Liquibaseを使用したOceanBaseデータベースのバージョンの管理
    • Flywayを使用してOceanBaseデータベースを統合し、バージョン管理を実現する
  • データ統合
    • dbtを使用したOceanBaseデータの分析
    • Flink DirectLoadを使用したOceanBaseのダイレクトインポート
    • SeaTunnelを使用したOceanBaseデータの読み取りと同期
    • Maxwellを使用したOceanBaseデータの読み取り
    • Debeziumを使用してOceanBaseに接続し、データを取得する
    • Spark Catalogを使用してOceanBaseデータベースに接続する
    • Apache NiFiを使用してOceanBaseデータベースと統合する
  • SQL開発
    • WebLogicを使用してOceanBaseデータベースに接続する
    • DBeaverを使用してOceanBaseデータベースに接続する
    • Navicatを使用してOceanBaseデータベースに接続する
    • DataGripでOceanBaseデータベースに接続する
    • TablePlusでOceanBaseデータベースに接続する
    • DMSを使用したOceanBaseデータベースの管理
  • 編成とスケジューリング
    • AirflowとOceanBaseデータベースの連携
    • PowerJobとOceanBaseデータベースの連携
    • DolphinSchedulerにOceanBaseデータソースを設定する
    • LinkisとOceanBaseデータベースの統合
  • 可視化ツール
    • SupersetとOceanBaseを使用したデータ分析
    • Power BIでOceanBaseに接続してデータを取得する
    • Quick BIでOceanBaseに接続してデータを取得する
    • Bytebaseを使用したOceanBaseインスタンスの管理
  • データベース管理
    • NineDataを使用したOceanBaseデータソースの管理
    • Bytebaseを使用したOceanBaseインスタンスの管理
  • AI
    • OpenAI
    • Qwen
    • OceanBaseデータベースとLangChainの統合
    • OceanBaseデータベースのベクトル検索機能とLlamaIndexの連携
    • OceanBaseデータベースのベクトル検索機能とDifyの連携
    • OceanBaseデータベースとn8nの連携
    • OceanBase MCP ServerとTraeの連携
    • OceanBaseデータベースとSpring AI Alibabaの連携
    • OceanBase MCP ServerとClineの連携
    • OceanBase MCP ServerとCursorの連携
    • OceanBase MCP ServerとContinueの連携
    • Google GenAI Toolboxを使用して独自のOceanBase MCP Serverを構築する
    • OceanBaseデータベースとCamelAIの連携
    • OceanBase VectorとFirecrawlの連携
    • OceanBase VectorとHugging Faceの連携
    • OceanBase VectorとOllamaの連携
    • OceanBaseデータベースとGoogle Geminiの連携
    • OceanBase VectorとCloudflare Workers AIの連携
    • OceanBase VectorとJina AIの連携
    • OceanBase MCP ServerとAugment Codeの連携
    • OceanBase MCP ServerとClaude Codeの連携
    • OceanBase MCP ServerとKiroの連携

PDF をダウンロード

ドキュメントフィードバック
  1. ドキュメントセンター
  2. OceanBaseデータベース
  3. master

Dapperを使用してOceanBaseデータベースに接続する

最終更新:2026-10-10 03:12:37

前提条件
手順
ステップ1:新しいプロジェクトを作成する
ステップ2:必要なNuGetパッケージをインストールする
ステップ3:データベース接続を設定する
ステップ4:データモデルを作成する
ステップ5:データアクセス層を実装する
ステップ6:メインプログラムを実装する
データベーステーブルの作成
プログラムの実行
関連ドキュメント

機能の適用範囲

DapperはOceanBaseデータベースのMySQLモードで動作します。

Dapperは軽量なオブジェクト関係マッピング(ORM)ツールであり、.NETプラットフォーム向けです。本記事では、Dapperを使用してOceanBaseデータベースのMySQLモードに接続する方法について説明します。

前提条件

  • .NET SDK 6.0以降がインストール済みであること。
  • Visual StudioまたはVS Codeがインストールされていること。
  • OceanBaseデータベースがデプロイ済みで、MySQLモードのテナントが作成されていること。

手順

  1. 新しいプロジェクトを作成します。
  2. 必要なNuGetパッケージをインストールします。
  3. データベース接続を設定します。
  4. データモデルを作成します。
  5. データアクセス層を実装します。
  6. サンプルプログラムを実行します。

ステップ1:新しいプロジェクトを作成する

  1. ターミナルを開き、以下のコマンドを実行して新しいコンソールアプリケーションを作成します:

    dotnet new console -n DapperOceanBaseDemo
    cd DapperOceanBaseDemo
    

ステップ2:必要なNuGetパッケージをインストールする

  1. Dapper、MySQL Connectorおよび関連する依存パッケージをインストールします:

    # コアパッケージ
    dotnet add package Dapper
    dotnet add package MySql.Data
    
    # 設定関連
    dotnet add package Microsoft.Extensions.Configuration --version 8.0.0
    dotnet add package Microsoft.Extensions.Configuration.FileExtensions --version 8.0.0
    dotnet add package Microsoft.Extensions.Configuration.Json --version 8.0.0
    
    # パスワードの暗号化
    dotnet add package BCrypt.Net-Next --version 4.0.3
    

ステップ3:データベース接続を設定する

  1. appsettings.json ファイルを作成し、データベース接続文字列を追加します:

    {
      "ConnectionStrings": {
        "DefaultConnection": "Server=your_server;Port=2881;Database=your_database;Uid=your_username;Pwd=your_password;"
      }
    }
    
  2. プロジェクトファイル(.csproj)を修正し、appsettings.json が出力ディレクトリにコピーされていることを確認します:

    <ItemGroup>
      <None Update="appsettings.json">
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      </None>
    </ItemGroup>
    

ステップ4:データモデルを作成する

  1. Models フォルダを作成し、User.cs クラスを追加します:

    namespace DapperOceanBaseDemo.Models;
    
    public class User
    {
        public int Id { get; set; }
        public string Username { get; set; }
        public string Email { get; set; }
        public string PasswordHash { get; set; }
        public DateTime CreatedAt { get; set; }
        public DateTime? UpdatedAt { get; set; }
    }
    

ステップ5:データアクセス層を実装する

  1. Repositories フォルダを作成し、UserRepository.cs クラスを追加します:

    using System.Data;
    using Dapper;
    using DapperOceanBaseDemo.Models;
    using Microsoft.Extensions.Configuration;
    using MySql.Data.MySqlClient;
    
    namespace DapperOceanBaseDemo.Repositories;
    
    public class UserRepository
    {
        private readonly string _connectionString;
    
        public UserRepository(IConfiguration configuration)
        {
            _connectionString = configuration.GetConnectionString("DefaultConnection");
        }
    
        public async Task<User> GetUserByIdAsync(int id)
        {
            using IDbConnection db = new MySqlConnection(_connectionString);
            return await db.QueryFirstOrDefaultAsync<User>(
                "SELECT * FROM users WHERE Id = @Id LIMIT 1", new { Id = id });
        }
    
        public async Task<int> CreateUserAsync(User user)
        {
            const string sql = @"
                INSERT INTO users (Username, Email, PasswordHash, CreatedAt, UpdatedAt)
                VALUES (@Username, @Email, @PasswordHash, @CreatedAt, @UpdatedAt);
                SELECT LAST_INSERT_ID();";
    
            using IDbConnection db = new MySqlConnection(_connectionString);
            return await db.ExecuteScalarAsync<int>(sql, new
            {
                user.Username,
                user.Email,
                user.PasswordHash,
                CreatedAt = DateTime.UtcNow,
                UpdatedAt = (DateTime?)null
            });
        }
    }
    

ステップ6:メインプログラムを実装する

Program.cs ファイルを修正します:

using DapperOceanBaseDemo.Models;
using DapperOceanBaseDemo.Repositories;
using Microsoft.Extensions.Configuration;
using System.Text;

var configuration = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
    .Build();

var userRepository = new UserRepository(configuration);

// Create a new user
var newUser = new User
{
    Username = "testuser",
    Email = "test@example.com",
    PasswordHash = BCrypt.Net.BCrypt.HashPassword("your_secure_password")
};

try
{
    var userId = await userRepository.CreateUserAsync(newUser);
    Console.WriteLine($"User created with ID: {userId}");

    // Query the user
    var user = await userRepository.GetUserByIdAsync(userId);
    if (user != null)
    {
        Console.WriteLine($"Retrieved user: {user.Username}, Email: {user.Email}");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"An error occurred: {ex.Message}");
}

データベーステーブルの作成

プログラムを実行する前に、OceanBaseデータベースに対応するテーブルが作成されていることを確認してください:

CREATE TABLE IF NOT EXISTS users (
    Id INT AUTO_INCREMENT PRIMARY KEY,
    Username VARCHAR(50) NOT NULL,
    Email VARCHAR(100) NOT NULL UNIQUE,
    PasswordHash VARCHAR(255) NOT NULL,
    CreatedAt DATETIME NOT NULL,
    UpdatedAt DATETIME NULL,
    INDEX idx_email (Email)
);

プログラムの実行

  1. appsettings.json 内のデータベース接続文字列が更新されていることを確認します。

  2. ターミナルで次のコマンドを実行します:

    dotnet run
    

関連ドキュメント

  • Dapper公式ドキュメント
  • .NETデータベースアクセスのベストプラクティス
  • OceanBase公式ドキュメント

前のトピック

Drizzle ORMを使用してOceanBaseデータベースに接続する
前へ

次のトピック

SqlSugarを使用してOceanBaseデータベースに接続する
次へ
このページの内容
前提条件
手順
ステップ1:新しいプロジェクトを作成する
ステップ2:必要なNuGetパッケージをインストールする
ステップ3:データベース接続を設定する
ステップ4:データモデルを作成する
ステップ5:データアクセス層を実装する
ステップ6:メインプログラムを実装する
データベーステーブルの作成
プログラムの実行
関連ドキュメント