sqfliteを使用したデータベース検索の基本的な方法


  1. データベース接続の確立: まず、sqfliteパッケージをインポートし、データベースに接続します。以下のコードを使用します。
import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';
void main() async {
  Database database = await openDatabase(
    join(await getDatabasesPath(), 'my_database.db'),
    onCreate: (db, version) {
      return db.execute(
        "CREATE TABLE posts(id INTEGER PRIMARY KEY, title TEXT, content TEXT)",
      );
    },
    version: 1,
  );
}

このコードでは、openDatabase関数を使用してデータベース接続を確立しています。getDatabasesPath関数を使用してデータベースのパスを取得し、join関数を使用してパスを結合しています。また、onCreateパラメータを使用して、データベースが作成されたときにテーブルを作成する処理を指定しています。

  1. データの検索: データベースのテーブルからデータを検索するには、query関数を使用します。以下のコードを参考にしてください。
void searchPosts(String keyword) async {
  Database database = await openDatabase(
    join(await getDatabasesPath(), 'my_database.db'),
  );
  List<Map<String, dynamic>> results = await database.query(
    'posts',
    where: 'title LIKE ? OR content LIKE ?',
    whereArgs: ['%$keyword%', '%$keyword%'],
  );
  for (var result in results) {
    print('Title: ${result['title']}');
    print('Content: ${result['content']}');
  }
}

この例では、query関数を使用して、postsテーブルからtitleまたはcontentのいずれかに指定したキーワードが含まれるデータを検索しています。whereパラメータを使用して検索条件を指定し、whereArgsパラメータを使用してプレースホルダーにキーワードを渡します。検索結果はList<Map<String, dynamic>>の形式で返されます。

これらの基本的な手順とコード例を使用することで、sqfliteを使用したデータベース検索を行うことができます。必要に応じて、データベースの構造や検索条件をカスタマイズしてください。