sql_query_manager 1.0.1 copy "sql_query_manager: ^1.0.1" to clipboard
sql_query_manager: ^1.0.1 copied to clipboard

Sql Query generator for Dart.

example/sql_query_manager_example.dart

import 'package:sqflite_common_ffi/sqflite_ffi.dart';
import 'package:sql_query_manager/sql_query_manager.dart';

import 'tables/profiles/forms/create.dart';
import 'tables/profiles/table.dart';
import 'tables/users/forms/create.dart';
import 'tables/users/table.dart';

void main() async {
  sqfliteFfiInit();
  databaseFactory = databaseFactoryFfi;
  final factory = databaseFactory;
  final dbPath = await factory.getDatabasesPath();
  await factory.deleteDatabase(dbPath);

  final databaseName = 'test_database.db';
  final databasePath = [dbPath, databaseName].join("/");

  ///Init database
  final database = await factory.openDatabase(databasePath,
      options: OpenDatabaseOptions(
          onOpen: (db) async {
            await db.execute("PRAGMA foreign_keys = ON");
          },
          onCreate: (db, version) async {
            await db.execute(UsersTable().toCreateQuery);
            await db.execute(ProfilesTable().toCreateQuery);
          },
          version: 1));

  ///MAKE A CREATE IN THE 'USERS' TABLE
  await UsersTable().makeInsert(
      database: database,
      creationForm: UserCreationForm(username: "MyUsername"));
  final userCreated = await database.query(UsersTable().tableName);
  print(userCreated);

  ///MAKE A CREATE IN THE 'PROFILES' TABLE
  await ProfilesTable().makeInsert(
      database: database,
      creationForm: ProfileCreationForm(
          userId: 1, firstName: "MyFirstName", lastName: "MyLastName"));
  final profileCreated = await database.query(ProfilesTable().tableName);
  print(profileCreated);

  ///VISUALIZE AS A SIMPLE QUERY
  final users = await database.rawQuery(UsersTable().makeSelect());
  print(users);
  final profiles = await database.rawQuery(ProfilesTable().makeSelect());
  print(profiles);

  ///VISUALIZE THE DATA USING 'JOINS'
  final joinQuery = UsersTable().makeSelect(
      queryParams: SqlSelectQueryParams(
          joins: (mainTable) => [
                JoinQueryColumn<ProfilesTable>(
                    table: ProfilesTable(),
                    instance: ProfilesTable(),
                    onExpressions: (table) => [
                          OnExpressionColumnSqL(
                              originAlias: "users",
                              column: table.userId,
                              operation: "=",
                              value: mainTable.localId)
                        ])
              ],
          whereExpressions: (table) => [
                ColumnExpressionSqL(
                    column: table.localId, operation: "=", value: 1)
              ]));
  print(joinQuery);
  final joinedData = await database.rawQuery(joinQuery);
  print(joinedData);
}
1
likes
140
points
15
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Sql Query generator for Dart.

Homepage
Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

intl, sqflite, sqflite_common

More

Packages that depend on sql_query_manager