jaguar_query_postgresql 0.2.5

  • README.md
  • CHANGELOG.md
  • Installing
  • Versions
  • 11

jaguar_query_postgresql

postgresql adapter for jaguar_orm

Usage

A simple usage example:

import 'dart:async';
import 'package:jaguar_orm_postgresql/jaguar_orm_postgresql.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
PgAdapter _adapter =
    new PgAdapter('postgres://postgres:dart_jaguar@localhost/postgres');

/// 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';

  /// Inserts a new post into table
  Future insert(Post post) async {
    InsertStatement inserter = new InsertStatement()..into(tableName);

    inserter.set(id.set(post.id));
    inserter.set(msg.set(post.msg));
    inserter.set(author.set(post.author));

    await _adapter.insert(inserter);
  }

  /// Updates a post
  Future update(int id, String author) async {
    UpdateStatement updater = new UpdateStatement()..into(tableName);
    updater.where(this.id.eq(id));

    updater.set(this.author.set(author));

    await _adapter.update(updater);
  }

  /// Finds one post by [id]
  Future<Post> findOne(int id) async {
    FindStatement updater = new FindStatement()..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 {
    FindStatement finder = new FindStatement()..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 delete(int id) async {
    DeleteStatement deleter = new DeleteStatement()..from(tableName);

    deleter.where(this.id.eq(id));

    await _adapter.delete(deleter);
  }

  /// Deletes all posts
  Future deleteAll() async {
    DeleteStatement deleter = new DeleteStatement()..from(tableName);

    await _adapter.delete(deleter);
  }
}

main() async {
  // Connect
  await _adapter.connect();

  PostBean bean = new PostBean();

  // Delete all
  await bean.deleteAll();

  // 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.delete(1);
  await bean.delete(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();
}

Changelog

0.2.5

  • Composite foreign keys

0.2.4

  • dropDb implementation

0.2.2

  • Where clauses can be any Expression

0.2.0

  • Upgraded to jaguar_query 0.2.x

0.0.1

  • Initial version, created by Stagehand

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  jaguar_query_postgresql: ^0.2.5

2. Install it

You can install packages from the command line:

with pub:


$ pub get

Alternatively, your editor might support 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_postgresql/jaguar_query_postgresql.dart';
  
Version Uploaded Documentation Archive
0.2.5 Sep 24, 2017 Go to the documentation of jaguar_query_postgresql 0.2.5 Download jaguar_query_postgresql 0.2.5 archive
0.2.4 Jul 29, 2017 Go to the documentation of jaguar_query_postgresql 0.2.4 Download jaguar_query_postgresql 0.2.4 archive
0.2.2 Jul 28, 2017 Go to the documentation of jaguar_query_postgresql 0.2.2 Download jaguar_query_postgresql 0.2.2 archive
0.2.1 Jul 12, 2017 Go to the documentation of jaguar_query_postgresql 0.2.1 Download jaguar_query_postgresql 0.2.1 archive
0.2.0 Jul 12, 2017 Go to the documentation of jaguar_query_postgresql 0.2.0 Download jaguar_query_postgresql 0.2.0 archive
0.1.4 Jul 12, 2017 Go to the documentation of jaguar_query_postgresql 0.1.4 Download jaguar_query_postgresql 0.1.4 archive
0.1.2 Jul 10, 2017 Go to the documentation of jaguar_query_postgresql 0.1.2 Download jaguar_query_postgresql 0.1.2 archive
0.1.1 Jul 10, 2017 Go to the documentation of jaguar_query_postgresql 0.1.1 Download jaguar_query_postgresql 0.1.1 archive
0.1.0 Jul 5, 2017 Go to the documentation of jaguar_query_postgresql 0.1.0 Download jaguar_query_postgresql 0.1.0 archive
0.0.4 Jun 6, 2017 Go to the documentation of jaguar_query_postgresql 0.0.4 Download jaguar_query_postgresql 0.0.4 archive

All 13 versions...

Popularity:
Describes how popular the package is relative to other packages. [more]
22
Health:
Code health derived from static analysis. [more]
0
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
0
Overall:
Weighted score of the above. [more]
11
Learn more about scoring.

The package version is not analyzed, because it does not support Dart 2. Until this is resolved, the package will receive a health and maintenance score of 0.

Issues and suggestions

Support Dart 2 in pubspec.yaml.

The SDK constraint in pubspec.yaml doesn't allow the Dart 2.0.0 release. For information about upgrading it to be Dart 2 compatible, please see https://www.dartlang.org/dart-2#migration.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=1.8.0 <2.0.0