jaguar_query_sqflite 2.2.11
jaguar_query_sqflite #
sqflite
adapter for jaguar_query
and jaguar_orm
.
Usage #
A simple usage example:
import 'dart:io';
import 'dart:async';
import 'package:sqflite/sqflite.dart';
import 'package:jaguar_query_sqflite/jaguar_query_sqflite.dart';
// The model
class Post {
Post();
Post.make(this.id, this.msg, this.author);
int id;
String msg;
String author;
String toString() => '$id $msg $author';
}
/// The adapter
SqfliteAdapter _adapter;
/// The bean
class PostBean {
/// Field DSL for id column
final IntField id = new IntField('_id');
/// Field DSL for msg column
final StrField msg = new StrField('msg');
/// Field DSL for author column
final StrField author = new StrField('author');
/// Table name for the model this bean manages
String get tableName => 'posts';
Future<Null> createTable() async {
final st = new Create()
.named(tableName)
.ifNotExists()
.addNullInt('_id', primary: true)
.addNullStr('msg')
.addNullStr('author');
await _adapter.createTable(st);
}
/// Inserts a new post into table
Future insert(Post post) async {
Insert inserter = new Insert()..into(tableName);
inserter.set(id, post.id);
inserter.set(msg, post.msg);
inserter.set(author, post.author);
return await _adapter.insert(inserter);
}
/// Updates a post
Future<int> update(int id, String author) async {
Update updater = new Update()..into(tableName);
updater.where(this.id.eq(id));
updater.set(this.author, author);
return await _adapter.update(updater);
}
/// Finds one post by [id]
Future<Post> findOne(int id) async {
Find updater = new Find()..from(tableName);
updater.where(this.id.eq(id));
Map map = await _adapter.findOne(updater);
Post post = new Post();
post.id = map['_id'];
post.msg = map['msg'];
post.author = map['author'];
return post;
}
/// Finds all posts
Future<List<Post>> findAll() async {
Find finder = new Find()..from(tableName);
List<Map> maps = await (await _adapter.find(finder)).toList();
List<Post> posts = new List<Post>();
for (Map map in maps) {
Post post = new Post();
post.id = map['_id'];
post.msg = map['msg'];
post.author = map['author'];
posts.add(post);
}
return posts;
}
/// Deletes a post by [id]
Future<int> remove(int id) async {
Remove deleter = new Remove()..from(tableName);
deleter.where(this.id.eq(id));
return await _adapter.remove(deleter);
}
/// Deletes all posts
Future<int> removeAll() async {
Remove deleter = new Remove()..from(tableName);
return await _adapter.remove(deleter);
}
}
main() async {
_adapter = new SqfliteAdapter(await getDatabasesPath());
// Connect
await _adapter.connect();
final bean = new PostBean();
await bean.createTable();
// Delete all
await bean.removeAll();
// Insert some posts
await bean.insert(new Post.make(1, 'Whatever 1', 'mark'));
await bean.insert(new Post.make(2, 'Whatever 2', 'bob'));
// Find one post
Post post = await bean.findOne(1);
print(post);
// Find all posts
List<Post> posts = await bean.findAll();
print(posts);
// Update a post
await bean.update(1, 'rowling');
// Check that the post is updated
post = await bean.findOne(1);
print(post);
// Delete some posts
await bean.remove(1);
await bean.remove(2);
// Find a post when none exists
try {
post = await bean.findOne(1);
print(post);
} on JaguarOrmException catch (e) {
print(e);
}
// Close connection
await _adapter.close();
exit(0);
}
For more usage don't hesitate to check this example https://github.com/jaguar-orm/sqflite
Changelog #
2.2.11 #
- Fix upsert when foreign keys are enabled by adding a flag on the generated method
2.2.9 #
- Fixed
DROP DATABASE
bug
2.2.2 #
upsert
andupsertMany
2.2.1 #
- Fixed SQL string escape
// Copyright (c) 2016, teja. All rights reserved. Use of this source code
// is governed by a BSD-style license that can be found in the LICENSE file.
import 'dart:async';
import 'dart:io';
import 'package:jaguar_query_sqflite/jaguar_query_sqflite.dart';
import 'package:sqflite/sqflite.dart';
// The model
class Post {
Post();
Post.make(this.id, this.msg, this.author);
int id;
String msg;
String author;
String toString() => '$id $msg $author';
}
/// The adapter
SqfliteAdapter _adapter;
/// The bean
class PostBean {
/// Field DSL for id column
final IntField id = new IntField('_id');
/// Field DSL for msg column
final StrField msg = new StrField('msg');
/// Field DSL for author column
final StrField author = new StrField('author');
/// Table name for the model this bean manages
String get tableName => 'posts';
Future<Null> createTable() async {
final st = new Create(tableName, ifNotExists: true)
.addInt('_id', primary: true)
.addStr('msg', isNullable: true)
.addStr('author', isNullable: true);
await _adapter.createTable(st);
}
/// Inserts a new post into table
Future insert(Post post) async {
Insert inserter = new Insert(tableName);
inserter.set(id, post.id);
inserter.set(msg, post.msg);
inserter.set(author, post.author);
return await _adapter.insert(inserter);
}
/// Updates a post
Future<int> update(int id, String author) async {
Update updater = new Update(tableName);
updater.where(this.id.eq(id));
updater.set(this.author, author);
return await _adapter.update(updater);
}
/// Finds one post by [id]
Future<Post> findOne(int id) async {
Find updater = new Find(tableName);
updater.where(this.id.eq(id));
Map map = await _adapter.findOne(updater);
Post post = new Post();
post.id = map['_id'];
post.msg = map['msg'];
post.author = map['author'];
return post;
}
/// Finds all posts
Future<List<Post>> findAll() async {
Find finder = new Find(tableName);
List<Map> maps = await (await _adapter.find(finder)).toList();
List<Post> posts = new List<Post>();
for (Map map in maps) {
Post post = new Post();
post.id = map['_id'];
post.msg = map['msg'];
post.author = map['author'];
posts.add(post);
}
return posts;
}
/// Deletes a post by [id]
Future<int> remove(int id) async {
Remove deleter = new Remove(tableName);
deleter.where(this.id.eq(id));
return await _adapter.remove(deleter);
}
/// Deletes all posts
Future<int> removeAll() async {
Remove deleter = new Remove(tableName);
return await _adapter.remove(deleter);
}
}
main() async {
_adapter = new SqfliteAdapter(await getDatabasesPath());
// Connect
await _adapter.connect();
final bean = new PostBean();
await bean.createTable();
// Delete all
await bean.removeAll();
// Insert some posts
await bean.insert(new Post.make(1, 'Whatever 1', 'mark'));
await bean.insert(new Post.make(2, 'Whatever 2', 'bob'));
// Find one post
Post post = await bean.findOne(1);
print(post);
// Find all posts
List<Post> posts = await bean.findAll();
print(posts);
// Update a post
await bean.update(1, 'rowling');
// Check that the post is updated
post = await bean.findOne(1);
print(post);
// Delete some posts
await bean.remove(1);
await bean.remove(2);
// Find a post when none exists
post = await bean.findOne(1);
print(post);
// Close connection
await _adapter.close();
exit(0);
}
Use this package as a library
1. Depend on it
Add this to your package's pubspec.yaml file:
dependencies:
jaguar_query_sqflite: ^2.2.11
2. Install it
You can install packages from the command line:
with Flutter:
$ flutter pub get
Alternatively, your editor might support flutter pub get
.
Check the docs for your editor to learn more.
3. Import it
Now in your Dart code, you can use:
import 'package:jaguar_query_sqflite/jaguar_query_sqflite.dart';
Popularity:
Describes how popular the package is relative to other packages.
[more]
|
89
|
Health:
Code health derived from static analysis.
[more]
|
100
|
Maintenance:
Reflects how tidy and up-to-date the package is.
[more]
|
100
|
Overall:
Weighted score of the above.
[more]
|
94
|
We analyzed this package on Dec 9, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:
- Dart: 2.6.1
- pana: 0.12.21
- Flutter: 1.9.1+hotfix.6
Platforms
Detected platforms: Flutter
References Flutter, and has no conflicting libraries.
Health suggestions
Fix lib/src/adapter.dart
. (-0.50 points)
Analysis of lib/src/adapter.dart
reported 1 hint:
line 21 col 18: Name non-constant identifiers using lowerCamelCase.
Dependencies
Package | Constraint | Resolved | Available |
---|---|---|---|
Direct dependencies | |||
Dart SDK | >=2.0.0-dev.65.0 <3.0.0 | ||
flutter | 0.0.0 | ||
jaguar_query | ^2.2.9 | 2.2.9 | |
sqflite | ^1.1.7+2 | 1.1.7+3 | |
Transitive dependencies | |||
collection | 1.14.11 | 1.14.12 | |
meta | 1.1.7 | 1.1.8 | |
path | 1.6.4 | ||
sky_engine | 0.0.99 | ||
synchronized | 2.1.1 | ||
typed_data | 1.1.6 | ||
vector_math | 2.0.8 | ||
Dev dependencies | |||
flutter_test |