Dart的数据库操作

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: <div class="markdown_views"><h2 id="连接数据库">连接数据库</h2><p>Dart连接数据库需要先从Pub下载sqljocky包 <br>我新建了一个数据库,内容如下</p><p><img src="http://img.blog.csdn.net/20150621133957536" alt="这里写图片描述" title="

连接数据库

Dart连接数据库需要先从Pub下载sqljocky包
我新建了一个数据库,内容如下

这里写图片描述

连接数据库的代码如下

import 'package:sqljocky/sqljocky.dart';

main(List<String> arguments) {
  //创建一个连接池,host:连接地址,port:端口,user:用户名,password:密码,db:数据库名,max:最大并发数
  var pool = new ConnectionPool(host: 'localhost',port: 3306, user: 'root', password: '123456', db: 'test_mysql', max: 5);
  //执行一条SQL语句
  pool.query("SELECT * FROM users");
}

控制台如果没有报错,那就说明连接成功了

使用下标读取结果

import 'package:sqljocky/sqljocky.dart';

main(List<String> arguments) {
  var pool = new ConnectionPool(host: 'localhost',port: 3306, user: 'root', password: '123456', db: 'test_mysql', max: 5);
  pool.query("SELECT * FROM users").then((results) {
    results.forEach((row) {
      //使用下标查询结果
      print('${row[1]},${row[3]}');
    });
  });
}

执行代码,控制台输出如下

这里写图片描述

使用字段读取结果

import 'package:sqljocky/sqljocky.dart';

main(List<String> arguments) {
  var pool = new ConnectionPool(host: 'localhost',port: 3306, user: 'root', password: '123456', db: 'test_mysql', max: 5);
  pool.query("SELECT * FROM users").then((results) {
    results.forEach((row) {
      //使用字段查询结果
      print('${row.name},${row.age}');
    });
  });
}

执行代码,控制台输出如下

这里写图片描述

准备SQL语句执行一次

import 'package:sqljocky/sqljocky.dart';

main(List<String> arguments) {
  var pool = new ConnectionPool(host: 'localhost',port: 3306, user: 'root', password: '123456', db: 'test_mysql', max: 5);
  //准备一个SQL语句
  pool.prepare('insert into users (name, age, email) values (?, ?, ?)').then((query) {
    //执行SQL语句
    query.execute(['咖啡', 22, 'kf@qq.com']).then((result) {
      //一个插入语句的结果是空的,但是会有一个自动递增的id
      print("新用户的ID:${result.insertId}");
    });
  });
}

先查看一下控制台的输出

这里写图片描述

再看一下数据库

这里写图片描述

好了,我们成功插入了一条新数据

准备SQL语句批量执行

import 'package:sqljocky/sqljocky.dart';

main(List<String> arguments) {
  var pool = new ConnectionPool(host: 'localhost',port: 3306, user: 'root', password: '123456', db: 'test_mysql', max: 5);
  pool.prepare('insert into users (name, age, email) values (?, ?, ?)').then((query) {
    //批量执行SQL语句
    query.executeMulti([['绿豆', 18, 'ld@qq.com'],
                        ['红豆', 17, 'hd@qq.com'],
                        ['青豆', 17, 'hd@qq.com']]).then((results) {
      //使用结果列表
      for (var result in results) {
        print("新用户的ID:${result.insertId}");
      }
    });
  });
}

先看看控制台输出

这里写图片描述

再看看数据库

这里写图片描述

执行一个事务

import 'package:sqljocky/sqljocky.dart';

main(List<String> arguments) {
  var pool = new ConnectionPool(host: 'localhost',port: 3306, user: 'root', password: '123456', db: 'test_mysql', max: 5);
  //创建一个事务
  pool.startTransaction().then((trans) {
    trans.query("DELETE FROM users WHERE id = '6'").then((result) {
      //提交事务
      trans.commit();
    });
  });
}

看看是否成功删除了id为6的用户

这里写图片描述

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
19天前
|
SQL 关系型数据库 MySQL
go语言中数据库操作
【10月更文挑战第22天】
29 4
|
6月前
|
API 数据库 Python
Python web框架fastapi数据库操作ORM(二)增删改查逻辑实现方法
Python web框架fastapi数据库操作ORM(二)增删改查逻辑实现方法
324 1
|
6月前
|
存储 Dart 编译器
Dart笔记:Dart语言中的注解(元数据)
Dart笔记:Dart语言中的注解(元数据)
413 0
|
存储 SQL 开发框架
Flutter数据库操作看这一篇就够了
Flutter数据库操作看这一篇就够了
Flutter数据库操作看这一篇就够了
Dart面向对象理解
Dart 是一门面向对象的编程语言,支持类、继承、多态等面向对象特性。以下是 Dart 面向对象的一些常见理解和代码实现
Dart面向对象理解
|
Dart
Dart 之 接口
Dart 之 接口
87 0
Dart 之 接口
|
Dart
Dart之 面向对象
Dart之 面向对象
85 0
Dart之 面向对象
|
Dart JavaScript 前端开发
dart系列之:dart中的异步编程
dart系列之:dart中的异步编程
|
Dart Java 程序员
dart系列之:dart语言中的异常
dart系列之:dart语言中的异常