本文共 2638 字,大约阅读时间需要 8 分钟。
Dart连接数据库需要先从Pub下载sqljocky包
我新建了一个数据库,内容如下连接数据库的代码如下
import 'package:sqljocky/sqljocky.dart';main(Listarguments) { //创建一个连接池,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(Listarguments) { 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(Listarguments) { 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}'); }); });}
执行代码,控制台输出如下
import 'package:sqljocky/sqljocky.dart';main(Listarguments) { 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}"); }); });}
先查看一下控制台的输出
再看一下数据库
好了,我们成功插入了一条新数据
import 'package:sqljocky/sqljocky.dart';main(Listarguments) { 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(Listarguments) { 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的用户