前回の記事「UnityにおけるSQLite統合:基本的なSQLコマンド」では、データベース接続、テーブル作成、テーブル削除、データ挿入、データ更新など、一般的に使用されるSQLコマンドについて説明しました。本記事は、UnityにおけるSQLite統合の実践編として、様々なSQLコマンドのカプセル化と実装例に焦点を当てます。
- SQLiteにおける重要なクラスの紹介
SQLiteコマンドに関連する2つの重要なクラスとして、SqliteConnectionとSqliteCommandがあります。以下にこれらのクラスの概要を説明します。
SqliteConnection:SQLiteデータベースとの接続を確立・管理するためのクラスです。接続の開始、終了、SQLコマンドの実行、トランザクション処理などを行うためのメソッドとプロパティを提供します。SqliteConnectionを使用することで、SQLiteデータベースに接続し、各種操作を実行できます。このクラスを利用するには、まずMono.Data.Sqlite名前空間を参照し、接続文字列を指定してSqliteConnectionオブジェクトを作成する必要があります。接続文字列には、データベースの場所、名前、その他の接続パラメータが含まれます。以下に、SqliteConnectionを使用してSQLiteデータベースに接続し、クエリを実行する例を示します。
using Mono.Data.Sqlite;
// 接続文字列の作成
string dbConnectionString = "URI=file:sample.db";
// SqliteConnectionオブジェクトの作成
using (var dbConnection = new SqliteConnection(dbConnectionString))
{
// 接続を開く
dbConnection.Open();
// その他のコマンドを実行
// 接続を閉じる
dbConnection.Close();
}
SqliteCommand:SQLステートメントまたはストアドプロシージャを実行するためのオブジェクトです。このクラスは、SQLステートメントをSQLiteデータベースに送信し、データベースから結果を取得する役割を担います。クエリ、挿入、更新、削除など、あらゆる種類のSQLステートメントの実行に使用できます。SqliteCommandは、データセットを返さないSQLステートメントを実行するためのExecuteNonQuery()メソッド、単一の値を返すSQLステートメントを実行するためのExecuteScalar()メソッド、結果セットを返すSQLステートメントを実行するためのExecuteReader()メソッドなどを提供しています。また、パラメータをバインドすることで、パラメータ化されたクエリをSQLステートメントで使用でき、セキュリティと効率を向上させることができます。以下に使用例を示します。
// 新しいSQLiteCommandオブジェクトの作成
using (var sqlCommand = new SQLiteCommand(dbConnection))
{
// 実行するSQLステートメントの設定
sqlCommand.CommandText = "SELECT * FROM Customers";
// クエリを実行し結果を取得
using (var dataReader = sqlCommand.ExecuteReader())
{
while (dataReader.Read())
{
// データの処理
}
}
}