Flutter 5 大本地数据库解决方案
原文 https://levelup.gitconnected.com/top-5-local-database-solutions-for-flutter-development-6351cd494070
前言
这里列出了最流行的数据库解决方案以及代码示例。
选择正确的数据管理系统对于提高效率和可 extension 性以及影响可用性和用户体验至关重要。尽管 flutter 仍然处于早期阶段,但是有很多数据管理解决方案可供选择,其中一些已经可以投入生产。我将概述用于在本地维护数据的最常见的数据库管理系统。
正文
Sqflite 是一个著名的 SQLite flutter 插件。这是一个具有良好交易和批量支持的关系数据库。当数据库打开时,它会自动管理版本控制。它还包括用于常见 CRUD 操作的帮助器。后台线程处理所有数据库操作。它与 ACID 兼容,因此几乎支持所有 SQL 标准。如果您喜欢将自己的 SQL 查询编写为字符串,那么这个简单的插件将满足您的数据管理需求。
<br>Database database = <span class="hljs-keyword">await</span> openDatabase(path, version: <span class="hljs-number">1</span>,<br>    onCreate: (Database db, <span class="hljs-built_in">int</span> version) <span class="hljs-keyword">async</span> {
<br>  <br>  <span class="hljs-keyword">await</span> db.execute(<br>      <span class="hljs-string">'CREATE TABLE Test (id INTEGER PRIMARY KEY, name TEXT, value INTEGER, num REAL)'</span>);<br>});<br><br><br><span class="hljs-keyword">await</span> database.transaction((txn) <span class="hljs-keyword">async</span> {
<br>  <span class="hljs-built_in">int</span> id1 = <span class="hljs-keyword">await</span> txn.rawInsert(<br>      <span class="hljs-string">'INSERT INTO Test(name, value, num) VALUES("some name", 1234, 456.789)'</span>);<br>  <span class="hljs-built_in">print</span>(<span class="hljs-string">'inserted1: <span class="hljs-subst">$id1</span>'</span>);<br>  <span class="hljs-built_in">int</span> id2 = <span class="hljs-keyword">await</span> txn.rawInsert(<br>      <span class="hljs-string">'INSERT INTO Test(name, value, num) VALUES(?, ?, ?)'</span>,<br>      [<span class="hljs-string">'another name'</span>, <span class="hljs-number">12345678</span>, <span class="hljs-number">3.1416</span>]);<br>  <span class="hljs-built_in">print</span>(<span class="hljs-string">'inserted2: <span class="hljs-subst">$id2</span>'</span>);<br>});<br><br><br><span class="hljs-built_in">int</span> count = <span class="hljs-keyword">await</span> database.rawUpdate(<br>    <span class="hljs-string">'UPDATE Test SET name = ?, value = ? WHERE name = ?'</span>,<br>    [<span class="hljs-string">'updated name'</span>, <span class="hljs-string">'9876'</span>, <span class="hljs-string">'some name'</span>]);<br><span class="hljs-built_in">print</span>(<span class="hljs-string">'updated: <span class="hljs-subst">$count</span>'</span>);<br><br><br><span class="hljs-built_in">List</span><<span class="hljs-built_in">Map</span>> list = <span class="hljs-keyword">await</span> database.rawQuery(<span class="hljs-string">'SELECT * FROM Test'</span>);<br><span class="hljs-built_in">List</span><<span class="hljs-built_in">Map</span>> expectedList = [<br>  {
<span class="hljs-string">'name'</span>: <span class="hljs-string">'updated name'</span>, <span class="hljs-string">'id'</span>: <span class="hljs-number">1</span>, <span class="hljs-string">'value'</span>: <span class="hljs-number">9876</span>, <span class="hljs-string">'num'</span>: <span class="hljs-number">456.789</span>},<br>  {
Original: https://blog.csdn.net/weixin_42320543/article/details/128071431
Author: 会煮咖啡的猫咪
Title: Flutter 5 大本地数据库解决方案
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/817567/
转载文章受原作者版权保护。转载请注明原作者出处!