Dart的数据库操作
连接数据库
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的数据库操作相关推荐
- Python的数据库操作(Sqlalchemy)
ORM 全称 Object Relational Mapping, 翻译过来叫对象关系映射.简单的说,ORM 将数据库中的表与面向对象语言中的类建立了一种对应关系.这样,我们要操作数据库,数据库中的表 ...
- 便捷,轻巧的Groovy数据库操作
本文主要介绍Groovy对数据的CRUD操作,熟悉groovy.sql包,测试使用的数据库是H2. 1.数据库连接配置 //数据库连接配置 def db = [url:'jdbc:h2:mem:gro ...
- Django模型之数据库操作-查询
六.数据库操作-查询 6.1基础条件查询 1 基本查询 get查询单一结果,如果不存在会抛出模型类.DoesNotExist异常. all查询多个结果.[返回的所有结果是列表] count查询结果数量 ...
- 命令行客户端MySQL基本命令的使用(登录、登出、数据库操作的SQL语句、表结构的SQL语句、表数据操作的SQL语句)
1. 登录和登出数据库 登录数据库: 输入下面命令: mysql -uroot -p 说明: -u 后面是登录的用户名 [写成-u root也是可以的] -p 后面是登录密码, 如果不填写, 回车之 ...
- .ne中的控制器循环出来的数据如何显示在视图上_Web程序设计-ASP.NET MVC4数据库操作实例...
ASP.NET MVC4数据库操作实例 之前文章介绍了MVC4与Pure框架结合进行的网页设计过程中如何定义控制器.方法.模型.视图等.并使用实例进行了简单说明.本文将在此基础上进一步说明如何使用MV ...
- oracle可以面向对象吗,Jbdc助手-数据库操作面向对象的实现(oracle)
前言: 如果你对hibernate不是那样的推崇,但感觉jdbc的sqlr操作又不是那么OO的话,那么这篇文章可能给能带来或多或少的期望- 在很长的一段时间里,中总感觉应该对sql的操作来实现一种集成 ...
- yii mysql数据库操作_Yii2数据库操作常用方法小结
本文实例讲述了Yii2数据库操作常用方法.分享给大家供大家参考,具体如下: 查询: // find the customers whose primary key value is 10 $custo ...
- mfc 访问局域网mysql_数据库操作:MFC连接与MYSQL
数据库操作:MFC连接与MYSQL mysql 与MFC通常情况下都是用ODBC或者是是ADO相连接,但有点伤 我直接找网上的教程,仿照着进行连接,试了n边还是只能连接上,但无法进行如图读取,写入的操 ...
- 数据库操作(使用FMDB)
iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepers ...
最新文章
- C语言 memset()函数(内存初始化函数)
- PHP Learning every day
- AI浪潮席卷而来,现在加入还来得及吗?
- 清华大学上海交大,复制粘贴般的优秀!
- Java zip and unzip demo
- 加入rtp组播_耗时10+小时撰写 带你系统认识组播 收藏这些概念
- 怎样修改MTK Scatter 文件
- C语言lcd实现奥运五环编程,如何用C语言程序来设计奥运五环图案
- 致力于推动植物性食品革命的可持续性食品科技公司——BENSON HILL将与STAR PEAK CORP II合并
- mysql 创建 innodb_MySQL创建数据表时设定引擎MyISAM/InnoDB操作
- 三天流量有效期具体怎么算_飞猪流量有效期多久?怎么提取?
- 具见--逍遥游 庄子南华(南怀瑾老师)
- Axure 制作左侧导航栏实现三级菜单效果
- JVM系列之故障排查与性能调优(重点)
- 性价比之王:基于低代码平台搭建非标系统
- SSD为什么需要Trim?
- MySQL面试 (一) 数据类型
- Android开发--调用系统邮件
- ZBIT、UBIT是什么?
- Linux系统中出现依赖libssl1.1.0问题
热门文章
- 计算机算法设计与分析 最长子序列
- 计算机算法设计与分析 循环赛日程表
- 蓝桥杯 2018年预赛C语言大学B组 C/C++
- GhostNet 解读及代码实验(附代码、超参、日志和预训练模型)
- pytorch学习笔记(三十):RNN反向传播计算图公式推导
- 程序员提升工作效率和质量工具
- JSON Schema
- 开源10轴IMU PCB,基于MEMS传感器MPU6500-HMC5983-AK8975-BMP280-MS5611设计,适用于多轴无人机、平衡车、惯导入门
- Python:SyntaxError: unexpected EOF while parsing
- 度量分析之报告信息的四个层次:数据,信息,分析,措施