- データベース接続の確立: まず、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
パラメータを使用して、データベースが作成されたときにテーブルを作成する処理を指定しています。
- データの検索:
データベースのテーブルからデータを検索するには、
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を使用したデータベース検索を行うことができます。必要に応じて、データベースの構造や検索条件をカスタマイズしてください。