orm 3.4.8 copy "orm: ^3.4.8" to clipboard
orm: ^3.4.8 copied to clipboard

◭ Next-generation ORM for Dart & Flutter | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB.

example/main.dart

import 'dart:io';

import 'package:orm/logger.dart';
import 'package:prisma_dart_example/prisma_client.dart';

/// Database URL
///
/// Note: The `prisma.sqlite` file will be created automatically if it
/// does not exist.
///
/// The Dart code only runs on the Dart VM, so we can use the `Platform.script`
/// to get the path to the current script.
///
/// See: https://api.dart.dev/stable/2.19.4/dart-io/Platform/script.html
final databaseUrl =
    Platform.script.resolve('prisma/prisma.sqlite').toFilePath();

final prisma = PrismaClient(
  // Output all events to stdout
  stdout: Event.values,

  // In real business, you should fill in the correct information, here is the demonstration information of the example.
  datasources: Datasources(db: 'file:$databaseUrl'),
);

void main() async {
  try {
    // Delete all users
    final deleted = await prisma.user.deleteMany();
    print('------------------ delete users ------------------');
    print('Deleted: ${deleted.count}');
    print('-------------------------------------------------');

    // Create a user
    final created = await prisma.user.create(
      data: UserCreateInput(id: 'seven', name: 'Seven(世伟) Du(杜)'),
    );
    print('------------------ create user ------------------');
    print(
        'User: ${created.id} - ${created.name}, Created At: ${created.createdAt}');
    print('------------------------------------------------');

    // Create many users
    // Note: The `createMany` method is not supported by SQLite
    //
    // final createdMany = await prisma.user.createMany(
    //  data: [
    //   UserCreateInput(id: 'user1', name: 'User 1'),
    //   UserCreateInput(id: 'user2', name: 'User 2'),
    //  ],
    // );
    // print('------------------ create many users ------------------');
    // print('Created: ${createdMany.count}');
    // print('-------------------------------------------------------');

    // Upsert a user
    final upserted = await prisma.user.upsert(
      where: UserWhereUniqueInput(id: 'seven'),
      create: UserCreateInput(id: 'seven', name: 'Odroe'),
      update: UserUpdateInput(
        name: StringFieldUpdateOperationsInput(set: 'Odroe'),
      ),
    );
    print('------------------ upsert user ------------------');
    print(
        'User: ${upserted.id} - ${upserted.name}, Created At: ${upserted.createdAt}');
    print('------------------------------------------------');

    User? user = await prisma.user.findFirst();
    if (user != null) {
      print('------------------ first user ------------------');
      print('User: ${user.id} - ${user.name}, Created At: ${user.createdAt}');
      print('------------------------------------------------');
    }

    final users = await prisma.user.findMany();
    print('------------------ all users ------------------');
    for (final user in users) {
      print('User: ${user.id} - ${user.name}, Created At: ${user.createdAt}');
    }
    print('-----------------------------------------------');
  } finally {
    await prisma.$disconnect();
  }
}
213
likes
140
pub points
88%
popularity

Publisher

verified publisherodroe.dev

◭ Next-generation ORM for Dart & Flutter | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB.

Homepage
Repository (GitHub)
View/report issues
Contributing

Documentation

API reference

Funding

Consider supporting this project:

github.com
opencollective.com

License

BSD-3-Clause (license)

Dependencies

analyzer, code_builder, crypto, dart_style, freezed_annotation, http, json_annotation, json_rpc_2, meta, path, recase, retry, stream_channel

More

Packages that depend on orm