博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Dart的数据库操作
阅读量:6503 次
发布时间:2019-06-24

本文共 2638 字,大约阅读时间需要 8 分钟。

连接数据库

Dart连接数据库需要先从Pub下载sqljocky包

我新建了一个数据库,内容如下

这里写图片描述

连接数据库的代码如下

import 'package:sqljocky/sqljocky.dart';main(List
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
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
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
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
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
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的用户

这里写图片描述

你可能感兴趣的文章
Centos7安装编译安装zabbix2.219及mariadb-5.5.46
查看>>
怎么获得combobox的valueField值
查看>>
Console-算法[if,while]-一输入两个正整数m和n,求其最大公约数和最小公倍数
查看>>
浅谈网络协议(四) IP的由来--DHCP与PXE
查看>>
jre与jdk的区别
查看>>
全景图的种类
查看>>
git 维护
查看>>
jfinal框架下使用c3P0连接池连接sql server 2008
查看>>
Jfinal Generator 不需要生成带某个前缀的表名数组的方法
查看>>
struts2中使用标签操作静态方法等
查看>>
熬夜写了一个小游戏,向SpaceX聊表敬意
查看>>
身份证工具类
查看>>
JPA增删改查,
查看>>
apache 开启 gzip 压缩服务
查看>>
python mysql
查看>>
开源 免费 java CMS - FreeCMS1.5-建站向导
查看>>
Selenium的延迟等待
查看>>
jquery 1.6以上版本 全选
查看>>
AppCan 学习
查看>>
flask框架
查看>>