frida_query_builder 1.1.0 copy "frida_query_builder: ^1.1.0" to clipboard
frida_query_builder: ^1.1.0 copied to clipboard

A dart library that helps you create SQLITE queries using statements and the builder design pattern.

example/frida_query_builder_example.dart

import 'package:frida_query_builder/frida_query_builder.dart';
import 'package:frida_query_builder/src/query/common/statement.dart';
import 'package:frida_query_builder/src/query/create/column/column_blob.dart';
import 'package:frida_query_builder/src/query/create/column/column_integer.dart';
import 'package:frida_query_builder/src/query/create/column/column_real.dart';
import 'package:frida_query_builder/src/query/create/column/column_text.dart';
import 'package:frida_query_builder/src/query/create/foreign_key.dart';
import 'package:frida_query_builder/src/query/criterion/criterion_login.dart';
import 'package:frida_query_builder/src/query/criterion/operators/greater_equal_than.dart';
import 'package:frida_query_builder/src/query/criterion/operators/greater_than.dart';
import 'package:frida_query_builder/src/query/criterion/operators/grouping.dart';
import 'package:frida_query_builder/src/query/functions/length.dart';

void main() {
  // Create tables
  final contactsTable = Create(
    tableName: "contacts",
    columns: [
      ColumnInteger(
        name: "id",
        isPrimaryKey: true,
        isAutoIncrement: true,
      ),
      ColumnText(
        name: "name",
        isNotNull: true,
        checkConstraints: [
          GreaterThan(Length("name"), 1),
        ],
      ),
      ColumnText(name: "email"),
    ],
  );

  final transactionsTable = Create(
    tableName: "transactions",
    columns: [
      ColumnInteger(
        name: "id",
        isPrimaryKey: true,
        isAutoIncrement: true,
      ),
      ColumnText(
        name: "title",
        isNotNull: true,
      ),
      ColumnReal(
        name: "amount",
        isNotNull: true,
      ),
      ColumnInteger(
        name: "contact_id",
        foreignKey: ForeignKey(
          referencedTable: "contacts",
          referencedColumn: "id",
        ),
      ),
    ],
  );

  print(FridaQueryBuilder(contactsTable).build() + "\n");
  print(FridaQueryBuilder(transactionsTable).build() + "\n");

// Insert data
  final insertContact = Insert(
    into: "contacts",
    values: {
      "name": "Felipe",
      "email": "f@f.com",
    },
  );

  final insertTransaction = Insert(
    into: "transactions",
    values: {
      "title": "Payment",
      "amount": 100.0,
      "contact_id": 1,
    },
  );

  print(FridaQueryBuilder(insertContact).build() + "\n");
  print(FridaQueryBuilder(insertTransaction).build() + "\n");

// Select with join, grouping and filters
  final query = Select(
    from: "transactions",
    columns: [
      "transactions.title".field,
      "transactions.amount".field,
      "contacts.name".field,
    ],
    joins: [
      Join(
        "contacts",
        type: JoinType.inner,
        criteria: [
          Equals(
            "transactions.contact_id".field,
            "contacts.id".field,
          ),
        ],
      ),
    ],
    where: [
      GreaterThan("transactions.amount".field, 50),
    ],
    groupBy: ["contacts.name"],
    limit: 10,
  );

  print(FridaQueryBuilder(query).build() + "\n");

// Delete
  final deleteContact = Delete(
    table: "contacts",
    criteria: [
      Equals("name".field, "Felipe"),
    ],
  );

  print(FridaQueryBuilder(deleteContact).build() + "\n");
}
3
likes
0
points
563
downloads

Publisher

unverified uploader

Weekly Downloads

A dart library that helps you create SQLITE queries using statements and the builder design pattern.

Repository (GitHub)
View/report issues

License

unknown (license)

More

Packages that depend on frida_query_builder