rfdb 0.0.1
rfdb: ^0.0.1 copied to clipboard
A Flutter package for simple model-based SQLite database management.
Database Manager #
A Flutter/Dart package for managing SQLite database configuration using model-based definitions.
Features #
- Configure SQLite database name and version
- Create database tables using models
- Update database structure using models
- Delete database structures using models
- Define database field types through models
- Simple database initialization
Installation #
Add the package to your pubspec.yaml:
dependencies:
rfdb: ^1.0.0
Then run:
flutter pub get
Usage #
1. Create a Database Model #
Create a model class and define the fields that should be stored in the database.
For example, a Meeting model:
class Meeting {
String? meetingId;
String? meetingDateTime;
int? participant;
Meeting();
@override
String toString() {
return 'Meeting{'
'meetingId: $meetingId, '
'meetingDateTime: $meetingDateTime, '
'participant: $participant'
'}';
}
Map<String, String> getDataTypeMap() {
return {
'meetingId': 'String',
'meetingDateTime': 'String',
'participant': 'int',
};
}
}
The getDataTypeMap() method defines the database field names and their data types.
2. Configure the Database #
Configure the database using DatabaseHelper:
late DatabaseManager databaseManager;
class DatabaseConfig {
static void configDatabase() {
DatabaseHelper.databaseName = "test.db";
DatabaseHelper.databaseVersion = 1;
// Models used for creating database tables
DatabaseHelper.dbCreateModels = [
Meeting(),
];
// Models used for updating database structure
DatabaseHelper.dbUpdateModels = [];
// Models used for deleting database structures
DatabaseHelper.dbDeleteModels = [];
DatabaseHelper.isAccurateFieldType = true;
databaseManager = DatabaseManager();
}
}
3. Initialize the Database #
Initialize the database during application startup:
Future<void> initialSetup() async {
DatabaseConfig.configDatabase();
}
Then call:
await initialSetup();
For example:
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await initialSetup();
runApp(const MyApp());
}
Model Field Types #
The getDataTypeMap() method defines the database field types.
For example:
Map<String, String> getDataTypeMap() {
return {
'meetingId': 'String',
'meetingDateTime': 'String',
'participant': 'int',
};
}
This represents:
| Field | Type |
|---|---|
meetingId |
String |
meetingDateTime |
String |
participant |
int |
You can create additional models following the same pattern.
Example #
A complete working example is available in the package's example directory.
The example demonstrates:
- Creating a
Meetingmodel - Configuring the database
- Registering the model for database creation
- Initializing the database
Changelog #
See CHANGELOG.md for release history.
License #
This package is licensed under the MIT License.