Flutter数据库管理插件needle_orm_mariadb的使用

Flutter数据库管理插件needle_orm_mariadb的使用

在本示例中,我们将展示如何在Flutter项目中使用needle_orm_mariadb插件来管理和操作MariaDB数据库。needle_orm_mariadb是一个用于ORM(对象关系映射)的插件,它简化了数据库的操作。

初始化MariaDB连接

首先,我们需要创建一个MariaDB数据库连接。这通常在应用启动时完成。以下是一个简单的初始化方法:

import 'package:mysql1/mysql1.dart';
import 'package:needle_orm/needle_orm.dart';
import 'package:needle_orm_mariadb/needle_orm_mariadb.dart';

// 初始化MariaDB数据库连接
Future<Database> initMariaDb() async {
  var settings = ConnectionSettings(
    host: 'localhost', // 数据库主机地址
    port: 3306,        // 数据库端口号
    user: 'needle',    // 数据库用户名
    password: 'needle', // 数据库密码
    db: 'needle'       // 数据库名称
  );
  var conn = await MySqlConnection.connect(settings);
  return MariaDbDatabase(conn); // 返回MariaDbDatabase实例
}

创建表结构

接下来,我们定义一个简单的数据模型,并使用该模型创建表结构。以下是定义一个名为User的数据模型的示例:

import 'package:needle_orm_mariadb/needle_orm_mariadb.dart';

class User extends Entity {
  [@PrimaryKey](/user/PrimaryKey)(autoIncrement: true)
  int? id;

  String name;

  int age;

  User({this.id, required this.name, required this.age});
}

操作数据库

现在我们可以使用上述定义的模型进行数据库操作,如插入、查询等。以下是插入一条用户记录的示例:

void insertUser(Database db) async {
  var userRepository = UserRepository(db);

  // 创建一个用户实例
  var newUser = User(name: "张三", age: 28);

  // 插入用户记录
  await userRepository.create(newUser);
}

以下是从数据库中查询所有用户的示例:

Future<void> queryUsers(Database db) async {
  var userRepository = UserRepository(db);

  // 查询所有用户记录
  List<User> users = await userRepository.findAll();

  // 打印查询结果
  for (var user in users) {
    print('ID: ${user.id}, Name: ${user.name}, Age: ${user.age}');
  }
}

完整示例代码

将以上代码整合到一个完整的示例中,可以参考以下完整代码:

import 'package:mysql1/mysql1.dart';
import 'package:needle_orm/needle_orm.dart';
import 'package:needle_orm_mariadb/needle_orm_mariadb.dart';

class User extends Entity {
  [@PrimaryKey](/user/PrimaryKey)(autoIncrement: true)
  int? id;

  String name;

  int age;

  User({this.id, required this.name, required this.age});
}

void main() async {
  // 初始化MariaDB数据库连接
  var db = await initMariaDb();

  // 插入用户记录
  insertUser(db);

  // 查询所有用户记录
  await queryUsers(db);
}

Future<Database> initMariaDb() async {
  var settings = ConnectionSettings(
    host: 'localhost',
    port: 3306,
    user: 'needle',
    password: 'needle',
    db: 'needle'
  );
  var conn = await MySqlConnection.connect(settings);
  return MariaDbDatabase(conn);
}

void insertUser(Database db) async {
  var userRepository = UserRepository(db);

  // 创建一个用户实例
  var newUser = User(name: "张三", age: 28);

  // 插入用户记录
  await userRepository.create(newUser);
}

Future<void> queryUsers(Database db) async {
  var userRepository = UserRepository(db);

  // 查询所有用户记录
  List<User> users = await userRepository.findAll();

  // 打印查询结果
  for (var user in users) {
    print('ID: ${user.id}, Name: ${user.name}, Age: ${user.age}');
  }
}

更多关于Flutter数据库管理插件needle_orm_mariadb的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter数据库管理插件needle_orm_mariadb的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


needle_orm_mariadb 是一个用于 Flutter 的 ORM(对象关系映射)插件,专门用于与 MariaDB 数据库进行交互。它简化了数据库操作,允许开发者通过 Dart 对象来操作数据库,而不需要直接编写 SQL 查询。

安装

首先,你需要在 pubspec.yaml 文件中添加 needle_orm_mariadb 依赖:

dependencies:
  flutter:
    sdk: flutter
  needle_orm_mariadb: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来安装依赖。

基本用法

  1. 创建模型类

    首先,你需要定义一个模型类,这个类将映射到数据库中的一张表。例如:

    import 'package:needle_orm_mariadb/needle_orm_mariadb.dart';
    
    [@Table](/user/Table)(name: 'users')
    class User {
      @PrimaryKey()
      int id;
    
      @Column()
      String username;
    
      @Column()
      String email;
    
      User({this.id, this.username, this.email});
    }
    
  2. 初始化数据库连接

    在使用 ORM 之前,你需要初始化数据库连接:

    import 'package:needle_orm_mariadb/needle_orm_mariadb.dart';
    
    void main() async {
      var orm = await MariaDBORM.connect(
        host: 'localhost',
        port: 3306,
        user: 'root',
        password: 'password',
        db: 'mydatabase',
      );
    
      // 现在你可以使用 orm 来操作数据库
    }
    
  3. 插入数据

    你可以使用 ORM 来插入数据到数据库中:

    var user = User(username: 'john_doe', email: 'john[@example](/user/example).com');
    await orm.insert(user);
    
  4. 查询数据

    你可以查询数据库中的数据:

    var users = await orm.find(User);
    for (var user in users) {
      print('User: ${user.username}, Email: ${user.email}');
    }
    
  5. 更新数据

    你可以更新数据库中的数据:

    var user = await orm.findOne(User, where: 'username = ?', whereArgs: ['john_doe']);
    user.email = 'john.doe[@example](/user/example).com';
    await orm.update(user);
    
  6. 删除数据

    你可以删除数据库中的数据:

    var user = await orm.findOne(User, where: 'username = ?', whereArgs: ['john_doe']);
    await orm.delete(user);
    

高级用法

  1. 条件查询

    你可以使用 wherewhereArgs 来进行条件查询:

    var users = await orm.find(User, where: 'email LIKE ?', whereArgs: ['%[@example](/user/example).com']);
    
  2. 分页查询

    你可以使用 limitoffset 来进行分页查询:

    var users = await orm.find(User, limit: 10, offset: 20);
    
  3. 事务处理

    你可以使用事务来确保一系列操作的原子性:

    await orm.transaction((txn) async {
      var user1 = User(username: 'user1', email: 'user1[@example](/user/example).com');
      await txn.insert(user1);
    
      var user2 = User(username: 'user2', email: 'user2[@example](/user/example).com');
      await txn.insert(user2);
    });
回到顶部