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

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

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

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

適用対象

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

SqlSugarは、機能豊富で使いやすいORMフレームワークであり、.NETプラットフォームをサポートしています。本記事では、SqlSugarを使用して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 SqlSugarOceanBaseDemo
    cd SqlSugarOceanBaseDemo
    

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

  1. SqlSugarコアパッケージとMySQLデータベースプロバイダーをインストールします:

    # ORMコアパッケージ
    dotnet add package SqlSugarCore
    
    # データベースプロバイダー
    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 クラスを追加します:

    using SqlSugar;
    
    namespace SqlSugarOceanBaseDemo.Models;
    
    [SugarTable("users")]
    public class User
    {
        [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
        public int Id { get; set; }
    
        [SugarColumn(Length = 50, IsNullable = false)]
        public string Username { get; set; }
    
        [SugarColumn(Length = 100, IsNullable = false)]
        public string Email { get; set; }
    
        [SugarColumn(Length = 255, IsNullable = false)]
        public string PasswordHash { get; set; }
    
        [SugarColumn(IsNullable = false)]
        public DateTime CreatedAt { get; set; }
    
        [SugarColumn(IsNullable = true)]
        public DateTime? UpdatedAt { get; set; }
    }
    

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

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

    using Microsoft.Extensions.Configuration;
    using SqlSugar;
    using System;
    using System.IO;
    
    namespace SqlSugarOceanBaseDemo.Services;
    
    public class DatabaseContext
    {
        public SqlSugarScope Db { get; private set; }
    
        public DatabaseContext(IConfiguration configuration)
        {
            Db = new SqlSugarScope(new ConnectionConfig()
            {
                ConnectionString = configuration.GetConnectionString("DefaultConnection"),
                DbType = DbType.MySql,
                IsAutoCloseConnection = true,
                InitKeyType = InitKeyType.Attribute
            },
            db =>
            {
                db.Aop.OnLogExecuting = (sql, pars) =>
                {
                    Console.WriteLine($"SQL: {sql}");
                    if (pars != null)
                    {
                        foreach (var param in pars)
                        {
                            Console.WriteLine($"  -> {param.ParameterName}: {param.Value}");
                        }
                    }
                };
    
                db.Aop.OnError = (exp) =>
                {
                    Console.WriteLine($"Error: {exp.Message}");
                    return true;
                };
    
                db.Aop.OnLogExecuted = (sql, pars) =>
                {
                    Console.WriteLine($"Execution time: {db.Ado.SqlExecutionTime.TotalMilliseconds}ms");
                };
    
                db.InitKeyType = InitKeyType.Attribute;
            };
    
            Db.CodeFirst.InitTables(typeof(Models.User));
        }
    }
    
  2. Repositories フォルダを作成し、UserRepository.cs クラスを追加します:

    using SqlSugar;
    using SqlSugarOceanBaseDemo.Models;
    using System.Collections.Generic;
    using System.Threading.Tasks;
    
    namespace SqlSugarOceanBaseDemo.Repositories;
    
    public class UserRepository
    {
        private readonly ISqlSugarClient _db;
    
        public UserRepository(ISqlSugarClient db)
        {
            _db = db;
        }
    
        public async Task<List<User>> GetAllUsersAsync()
        {
            return await _db.Queryable<User>().ToListAsync();
        }
    
        public async Task<User> GetUserByIdAsync(int id)
        {
            return await _db.Queryable<User>().FirstAsync(u => u.Id == id);
        }
    
        public async Task<int> CreateUserAsync(User user)
        {
            user.CreatedAt = DateTime.UtcNow;
            return await _db.Insertable(user).ExecuteReturnIdentityAsync();
        }
    
        public async Task<bool> UpdateUserAsync(User user)
        {
            user.UpdatedAt = DateTime.UtcNow;
            return await _db.Updateable(user).ExecuteCommandHasChangeAsync();
        }
    
        public async Task<bool> DeleteUserAsync(int id)
        {
            return await _db.Deleteable<User>().Where(u => u.Id == id).ExecuteCommandHasChangeAsync();
        }
    }
    

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

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

using Microsoft.Extensions.Configuration;
using SqlSugarOceanBaseDemo.Models;
using SqlSugarOceanBaseDemo.Repositories;
using SqlSugarOceanBaseDemo.Services;
using System;
using System.IO;
using System.Threading.Tasks;

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

var dbContext = new DatabaseContext(configuration);
var userRepository = new UserRepository(dbContext.Db);

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

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

    var user = await userRepository.GetUserByIdAsync(createdUser.Id);
    if (user != null)
    {
        Console.WriteLine($"Retrieved user: {user.Username}, Email: {user.Email}");
        
        user.Username = "updated_username";
        var updated = await userRepository.UpdateUserAsync(user);
        Console.WriteLine($"User updated: {updated}");
        
        var users = await userRepository.GetAllUsersAsync();
        Console.WriteLine($"Total users: {users.Count}");
        
        var deleted = await userRepository.DeleteUserAsync(user.Id);
        Console.WriteLine($"User deleted: {deleted}");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"An error occurred: {ex.Message}");
}

プログラムの実行

  1. appsettings.json 内のデータベース接続文字列が最新であることを確認します。

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

    dotnet run
    

関連ドキュメント

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

前のトピック

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

次のトピック

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