Flutter本地CRUD操作插件shared_crud_local的使用
Flutter本地CRUD操作插件shared_crud_local的使用
shared_crud_local
这是一个旨在通过更强大且易于实现的方法来简化CRUD操作的包。它借鉴了Java中的JPA,并专注于字符串操作。由于它利用了shared_preferences,因此能够满足由该包所定义的实现。
如果您希望以自己的方式实现,建议查阅官方文档:shared_preferences文档。
本包旨在通过几行代码就能实现一个CRUD,减少头痛问题。
功能
推荐使用Dart内置的编码和解码功能,可以将对象转换为JSON字符串,并在本地存储,从而使得创建、编辑和加载这些信息更加方便。
- 对象和对象列表的CRUD操作。
String etBilu = '{"nome":"ET BILU", "idade":"3400"}';
List<String> cafes = [
'{"nome":"cuado", "sabor":"Meio Amargo"}',
'{"nome":"Capuchino", "sabot":"Adocicado"}',
'{"nome":"Expresso", "sabor":"encorpado"}'
];
包的使用
在项目中添加此包时,请注意版本匹配。按照步骤操作后,您的项目将完全支持该包。
在pubspec.yaml
文件中添加依赖项,如下所示或通过命令:
- 手动添加:
dependencies:
shared_crud_local: 1.0.3
- 使用
flutter pub add
命令添加:
$ flutter pub add shared_crud_local
查看更新详情
配置完成后,请确保该包已添加到项目的依赖项中。如果一切正常,只需实例化Shared_preferences
:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await SharedInstance.getInstance(); // 实例化共享偏好设置
runApp(const MyApp());
}
使用本地对象示例
创建(保存)对象
LocalRepository repository = LocalRepository();
void saveInfo() async {
await repository.save('{"nome":"ET BILU", "idade":"3400"}'); // 保存对象
}
加载(读取)对象
void loadinfo() async {
Result response = await repository.load();
String objeto = response.sucess!; // {"nome":"ET BILU", "idade":"3400"}
}
更多关于Flutter本地CRUD操作插件shared_crud_local的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter本地CRUD操作插件shared_crud_local的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
shared_crud_local
是一个用于在 Flutter 应用中执行本地 CRUD 操作的插件。它基于 shared_preferences
插件,允许你轻松地在本地存储中执行创建、读取、更新和删除操作。
安装插件
首先,你需要在 pubspec.yaml
文件中添加 shared_crud_local
插件的依赖:
dependencies:
flutter:
sdk: flutter
shared_crud_local: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
基本用法
1. 初始化 SharedCRUDLocal
在使用 shared_crud_local
之前,你需要初始化它。通常可以在 main.dart
文件中进行初始化:
import 'package:flutter/material.dart';
import 'package:shared_crud_local/shared_crud_local.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await SharedCRUDLocal.init(); // 初始化
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
2. 创建数据
你可以使用 create
方法将数据存储到本地:
void _createData() async {
await SharedCRUDLocal.create('key1', 'value1');
print('Data created');
}
3. 读取数据
使用 read
方法从本地存储中读取数据:
void _readData() async {
String? value = await SharedCRUDLocal.read('key1');
print('Read data: $value');
}
4. 更新数据
使用 update
方法更新已存在的数据:
void _updateData() async {
await SharedCRUDLocal.update('key1', 'new_value1');
print('Data updated');
}
5. 删除数据
使用 delete
方法删除数据:
void _deleteData() async {
await SharedCRUDLocal.delete('key1');
print('Data deleted');
}
6. 检查数据是否存在
你可以使用 exists
方法检查某个键是否存在:
void _checkData() async {
bool exists = await SharedCRUDLocal.exists('key1');
print('Data exists: $exists');
}
完整示例
以下是一个完整的示例,展示了如何使用 shared_crud_local
插件进行 CRUD 操作:
import 'package:flutter/material.dart';
import 'package:shared_crud_local/shared_crud_local.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await SharedCRUDLocal.init();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
void _createData() async {
await SharedCRUDLocal.create('key1', 'value1');
print('Data created');
}
void _readData() async {
String? value = await SharedCRUDLocal.read('key1');
print('Read data: $value');
}
void _updateData() async {
await SharedCRUDLocal.update('key1', 'new_value1');
print('Data updated');
}
void _deleteData() async {
await SharedCRUDLocal.delete('key1');
print('Data deleted');
}
void _checkData() async {
bool exists = await SharedCRUDLocal.exists('key1');
print('Data exists: $exists');
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Shared CRUD Local Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: _createData,
child: Text('Create Data'),
),
ElevatedButton(
onPressed: _readData,
child: Text('Read Data'),
),
ElevatedButton(
onPressed: _updateData,
child: Text('Update Data'),
),
ElevatedButton(
onPressed: _deleteData,
child: Text('Delete Data'),
),
ElevatedButton(
onPressed: _checkData,
child: Text('Check Data Exists'),
),
],
),
),
);
}
}