t_db 2.1.0 copy "t_db: ^2.1.0" to clipboard
t_db: ^2.1.0 copied to clipboard

TDB<T> is a base abstract class for a generic binary database.It is designed to provide type-safe, object-oriented (OOP) database operations for any user-defined type `T`.

example/t_db_example.dart

import 'package:t_db/t_db.dart';

void main() async {
  // print(await TDB.readHeader('test.db'));

  final db = TDB.getInstance();

  await db.open(
    // '/home/thancoder/Downloads/Apyar App/apyar.db',
    'test.db',
    config: DBConfig.getDefault().copyWith(saveLocalDBLock: false),
  );
  db.setAdapter<User>(UserAdapter());

  await db.compact();

  final userBox = db.getBox<User>();

  // await userBox.add(User(name: 'user one'));
  // await userBox.add(User(name: 'user two'));
  // await userBox.add(User(name: 'user three'));
  // await userBox.deleteById(3);
  // await userBox.updateById(3, User(name: 'three update'));

  for (var user in await userBox.getAll()) {
    print(user);
  }
  print(db.getUniqueFieldIdList);

  print('magic: ${db.magic}');
  print('type: ${db.type}');
  print('version: ${db.version}');
  print('lastId: ${db.lastId}');
  print('deletedCount: ${db.deletedCount}');
  print('deletedSize: ${db.deletedSize}');
  await db.close();
}

class UserAdapter extends TDAdapter<User> {
  @override
  User fromMap(Map<String, dynamic> map) {
    return User.fromMap(map);
  }

  @override
  int getUniqueFieldId() {
    return 1; // must be unique for each model
  }

  @override
  Map<String, dynamic> toMap(User value) {
    return value.toMap();
  }

  @override
  int getId(User value) {
    return value.autoId;
  }
}

class CarAdapter extends TDAdapter<Car> {
  @override
  getFieldValue(Car value, String fieldName) {
    if (fieldName == 'userId') return value.userId;
  }

  @override
  Car fromMap(Map<String, dynamic> map) {
    return Car.fromMap(map);
  }

  @override
  int getUniqueFieldId() {
    return 2;
  }

  @override
  Map<String, dynamic> toMap(Car value) {
    return value.toMap();
  }

  @override
  int getId(Car value) {
    return value.autoId;
  }
}

class User {
  final int autoId;
  final String name;
  User({this.autoId = 0, required this.name});

  Map<String, dynamic> toMap() {
    return <String, dynamic>{'autoId': autoId, 'name': name};
  }

  factory User.fromMap(Map<String, dynamic> map) {
    return User(autoId: map['autoId'] as int, name: map['name'] as String);
  }
  @override
  String toString() => '''User(autoId: $autoId, name: $name)''';

  User copyWith({int? autoId, String? name}) {
    return User(autoId: autoId ?? this.autoId, name: name ?? this.name);
  }
}

class Car {
  final int autoId;
  final int userId;
  final String name;
  Car({this.autoId = 0, required this.userId, required this.name});

  @override
  String toString() {
    return 'ID: $autoId - Name: $name userId: $userId';
  }

  Map<String, dynamic> toMap() {
    return <String, dynamic>{'autoId': autoId, 'userId': userId, 'name': name};
  }

  factory Car.fromMap(Map<String, dynamic> map) {
    return Car(
      autoId: map['autoId'] as int,
      userId: map['userId'] as int,
      name: map['name'] as String,
    );
  }
}
0
likes
160
points
35
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

TDB<T> is a base abstract class for a generic binary database.It is designed to provide type-safe, object-oriented (OOP) database operations for any user-defined type `T`.

Repository (GitHub)
View/report issues

License

MIT (license)

More

Packages that depend on t_db