flutter sqflite(1)

数据库和excel的使用是一样的,确定路径,新建文件,绘制表格,填入数据

第0步 导入库

pubspec.ymal中添加依赖

dependencies:
  # 数据库
  sqflite: ^2.2.8+4

文件中引用

import 'package:sqflite/sqflite.dart';

第一步 找位置

方法1:默认的位置

String databasesPath = await getDatabasesPath();

方法2:用path_provider自定义一个位置

// 用getApplicationSupportDirectory() 是来自于path_provider的方法,
// 返回系统分配给程序专属访问的空间的路径,返回的是一个Directory类型的对象,
// 用.then((value)=>{})的方式把得到的Directory类型对象转换成String类型,
// 用 join 方法拼接得到路径字符串
String directory = await getApplicationSupportDirectory()
						.then((value) =>value.path);
// 拼接路径和自定义的名字
String path = join(directory, dataBaseName);

第二步 建库

数据库和excel类比

数据库软件 excel软件
xxx数据库 xxx.xls
tabs 表单

和使用excel不能说毫无二致,只能说一模一样
打开 “某某某数据库” 意思就是打开 “某某某.xls” 文件,

使用创建方法openDatabase,该方法即是打开也是创建
数据库已存在则打开,没有则按照路径参数创建
若路径参数相同,不会重复创建,
若路径参数相同,返回数据库单例,并且自动丢弃其它参数
只有路径参数是必须的,其他的可以再改(具体细节阅读文档)

_database = await openDatabase(path,//相当于在某一路径新建 .xls文件
  
  // 以下参数都可以不写,不写的话,该方法相当于创建一个空的.xls文件
  version: 1, 
  onCreate:(Database db, int newVersion)async{//第一张表的结构
    await db.execute('''
      CREATE TABLE USER_TABLE(            
      id INTEGER PRIMARY KEY AUTOINCREMENT,
      name TEXT,
      password TEXT,
      age INTEGER)
    ''');
  }
);

第三步 建表

大多数的方式是第二步建库和建表一并完成,上文在第二步中也是这么写的,这里再单独多写一步建表

Future<void> creattab()async{
    _database.execute(建表的sql语句);
}



你可能感兴趣的:(flutter,sqlite)