frida_query_builder 1.0.0
frida_query_builder: ^1.0.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';
void main() {
final createStatement = Create(
tableName: "students",
columns: [
Column(
name: "student_id",
type: ColumnDataType.integer,
isAutoIncrement: true,
isPrimaryKey: true,
),
Column(
name: "name",
type: ColumnDataType.text,
isNotNull: true,
defaultValue: "2"),
Column(
name: "email",
type: ColumnDataType.text,
isNotNull: true,
),
],
);
final selectStatement = Select(from: "students", alias: "s", columns: [
"name".field,
"age".field,
"gender".field,
"Simple Text",
22
]);
final fridaQueryBuilder = FridaQueryBuilder(selectStatement);
final queryString = fridaQueryBuilder.build();
print(queryString);
createSelectQuery();
createComplexSelectQuery();
print(
FridaQueryBuilder(
Update(
table: "students",
values: {"name": "Juan"},
criteria: [Equals("name".field, "Felipe")],
),
).build(),
);
print(
FridaQueryBuilder(
Delete(
table: "students",
criteria: [
Equals("name".field, "Felipe"),
],
),
).build(),
);
}
void createSelectQuery() {
//Select query
print(
FridaQueryBuilder(
Select(
from: "students",
),
).build(),
);
/*
Output:
SELECT * FROM person
*/
}
void createComplexSelectQuery() {
// Select complex query
print(
FridaQueryBuilder(
Select(
from: "students",
columns: [
"s.name".field,
"s.student_id",
"s.email",
'"Text" AS simpleText',
2.field,
2.22.field,
"Text x2",
],
joins: [
Join(
"student_classes",
alias: "c",
criteria: [
Equals(
"c.student_id".field,
"s.student_id".field,
),
NotEquals(
Field("c.description"),
"math",
),
],
)
],
alias: "s",
limit: 2,
offset: 3,
orderBy: ["c.description"],
criteria: [
In(Field("s.name"), ["Felipe", "Juan"]),
Or(
[
Equals("b", "b"),
And([Equals("1", "1"), Equals("1", "1")])
],
)
],
),
).build(),
);
}