连接数据库

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) {//一个插入语句的结果是空的,但是会有一个自动递增的idprint("新用户的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的用户

Dart的数据库操作相关推荐

  1. Python的数据库操作(Sqlalchemy)

    ORM 全称 Object Relational Mapping, 翻译过来叫对象关系映射.简单的说,ORM 将数据库中的表与面向对象语言中的类建立了一种对应关系.这样,我们要操作数据库,数据库中的表 ...

  2. 便捷,轻巧的Groovy数据库操作

    本文主要介绍Groovy对数据的CRUD操作,熟悉groovy.sql包,测试使用的数据库是H2. 1.数据库连接配置 //数据库连接配置 def db = [url:'jdbc:h2:mem:gro ...

  3. Django模型之数据库操作-查询

    六.数据库操作-查询 6.1基础条件查询 1 基本查询 get查询单一结果,如果不存在会抛出模型类.DoesNotExist异常. all查询多个结果.[返回的所有结果是列表] count查询结果数量 ...

  4. 命令行客户端MySQL基本命令的使用(登录、登出、数据库操作的SQL语句、表结构的SQL语句、表数据操作的SQL语句)

    1. 登录和登出数据库 登录数据库: 输入下面命令: mysql -uroot -p 说明: -u 后面是登录的用户名  [写成-u root也是可以的] -p 后面是登录密码, 如果不填写, 回车之 ...

  5. .ne中的控制器循环出来的数据如何显示在视图上_Web程序设计-ASP.NET MVC4数据库操作实例...

    ASP.NET MVC4数据库操作实例 之前文章介绍了MVC4与Pure框架结合进行的网页设计过程中如何定义控制器.方法.模型.视图等.并使用实例进行了简单说明.本文将在此基础上进一步说明如何使用MV ...

  6. oracle可以面向对象吗,Jbdc助手-数据库操作面向对象的实现(oracle)

    前言: 如果你对hibernate不是那样的推崇,但感觉jdbc的sqlr操作又不是那么OO的话,那么这篇文章可能给能带来或多或少的期望- 在很长的一段时间里,中总感觉应该对sql的操作来实现一种集成 ...

  7. yii mysql数据库操作_Yii2数据库操作常用方法小结

    本文实例讲述了Yii2数据库操作常用方法.分享给大家供大家参考,具体如下: 查询: // find the customers whose primary key value is 10 $custo ...

  8. mfc 访问局域网mysql_数据库操作:MFC连接与MYSQL

    数据库操作:MFC连接与MYSQL mysql 与MFC通常情况下都是用ODBC或者是是ADO相连接,但有点伤 我直接找网上的教程,仿照着进行连接,试了n边还是只能连接上,但无法进行如图读取,写入的操 ...

  9. 数据库操作(使用FMDB)

    iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepers ...

最新文章

  1. C语言 memset()函数(内存初始化函数)
  2. PHP Learning every day
  3. AI浪潮席卷而来,现在加入还来得及吗?
  4. 清华大学上海交大,复制粘贴般的优秀!
  5. Java zip and unzip demo
  6. 加入rtp组播_耗时10+小时撰写 带你系统认识组播 收藏这些概念
  7. 怎样修改MTK Scatter 文件
  8. C语言lcd实现奥运五环编程,如何用C语言程序来设计奥运五环图案
  9. 致力于推动植物性食品革命的可持续性食品科技公司——BENSON HILL将与STAR PEAK CORP II合并
  10. mysql 创建 innodb_MySQL创建数据表时设定引擎MyISAM/InnoDB操作
  11. 三天流量有效期具体怎么算_飞猪流量有效期多久?怎么提取?
  12. 具见--逍遥游 庄子南华(南怀瑾老师)
  13. Axure 制作左侧导航栏实现三级菜单效果
  14. JVM系列之故障排查与性能调优(重点)
  15. 性价比之王:基于低代码平台搭建非标系统
  16. SSD为什么需要Trim?
  17. MySQL面试 (一) 数据类型
  18. Android开发--调用系统邮件
  19. ZBIT、UBIT是什么?
  20. Linux系统中出现依赖libssl1.1.0问题

热门文章

  1. 计算机算法设计与分析 最长子序列
  2. 计算机算法设计与分析 循环赛日程表
  3. 蓝桥杯 2018年预赛C语言大学B组 C/C++
  4. GhostNet 解读及代码实验(附代码、超参、日志和预训练模型)
  5. pytorch学习笔记(三十):RNN反向传播计算图公式推导
  6. 程序员提升工作效率和质量工具
  7. JSON Schema
  8. 开源10轴IMU PCB,基于MEMS传感器MPU6500-HMC5983-AK8975-BMP280-MS5611设计,适用于多轴无人机、平衡车、惯导入门
  9. Python:SyntaxError: unexpected EOF while parsing
  10. 度量分析之报告信息的四个层次:数据,信息,分析,措施