当前位置: 首页 > news >正文

网站系统怎么做网站建设入账

网站系统怎么做,网站建设入账,电商网站建设图片,适合个人开店的外贸平台Flutter开发进阶之并发操作数据库 尽管 Flutter 本身不包含任何数据库功能#xff0c;但可以使用各种第三方库和插件来在 Flutter 应用程序中实现数据库功能#xff1b; 以下将使用sqflite作为例子#xff0c;sqflite允许在 Flutter 应用程序中执行 SQL 查询#xff0c;创…Flutter开发进阶之并发操作数据库 尽管 Flutter 本身不包含任何数据库功能但可以使用各种第三方库和插件来在 Flutter 应用程序中实现数据库功能 以下将使用sqflite作为例子sqflite允许在 Flutter 应用程序中执行 SQL 查询创建和管理数据库表以及执行其他常见的数据库操作。 在将sqflite添加到Flutter项目的依赖中后就可以使用代码创建数据库和表了。 import package:sqflite/sqflite.dart; FutureDatabase getDatabase() async { final dir (await getDatabasesPath()).resolve(my_database.db); return await openDatabase(dir.path, version: 1, onCreate: _onCreate); } Future _onCreate(Database db, int version) async { await db.execute( CREATE TABLE user ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER ) ); }然后我们可以做一些插入、查询、更新和删除数据库中数据的操作。 import package:sqflite/sqflite.dart; Futurevoid insertData() async { final db await getDatabase(); await db.execute( INSERT INTO user (name, age) VALUES (?, ?), [John, 25], ); } FutureListMapString, dynamic queryData() async { final db await getDatabase(); return await db.query(user); } Futureint updateData() async { final db await getDatabase(); return await db.update( user, {age: 26}, where: name ?, whereArgs: [John], ); } Futureint deleteData() async { final db await getDatabase(); return await db.delete(user, where: name ?, whereArgs: [John]); }在实际应用中并不会这么简单特别是当我们有需求在多个位置去操作数据库的时候这时候可能会有线程安全的问题 比如说在一个作用域内有多台设备需要在我所在的这台设备操作数据库 首先我所在的设备作为主机要监听子机的UDP广播然后将通过我验证的子机向其发送我开放的TCP的地址和端口。 const String multicastGroup 224.0.0.1; // 定义多播组地址 const int port 5000; // 定义端口号 const int bufferSize 1024; // 定义缓冲区大小 final ByteData buffer ByteData(bufferSize); DatagramSocket socket DatagramSocket(); socket.bind(port); socket.joinMulticastGroup(multicastGroupIP); socket.listen(buffer.length); socket.onDatagramReceived (Datagram datagram) async { final String receivedData datagram.data.toString(); // 处理接收到的数据... }; 然后合法的子机会收到我的信息就可以通过TCP向主机发送命令 这时就需要主机时刻监听TCP并对其响应。 const int port 5000; // 定义端口号 final ServerSocket serverSocket ServerSocket(port); serverSocket.onAccept (ServerSocket socket) async { final Stream stream socket.accept(); stream.transform(utf8.decoder).listen((String data) { // 处理接收到的数据... }); }; 假设对其响应的本身是对数据库进行操作而主机内部也同时对数据库有了操作这时候就要注意数据库的线程安全了 首先可以通过对数据库的操作加锁来保证比如sqflite提供了事务Transaction在事务中执行数据库操作可以确保操作的原子性即要么全部成功要么全部失败 通过使用事务我们可以实现对数据库操作的加锁确保同一时间只有一个线程可以访问数据库中的特定资源。 Futurevoid insertData() async { final db await getDatabase(); await db.transaction((txn) async { // 在事务中执行数据库操作 await txn.execute(INSERT INTO user (name, age) VALUES (?, ?), (John, 25)); // 提交事务 await txn.commit(); }); } 或者直接使用synchronized创建锁。 import package:synchronized/synchronized.dart;还可以通过数据库连接池来限制最大连接数量。 import package:sqflite/sqflite.dart; class DatabaseHelper { static final DatabaseHelper _instance DatabaseHelper._internal(); static Database? _db; factory DatabaseHelper() { return _instance; } FutureDatabase get db async { if (_db ! null) return _db; _db await _openDatabase(); return _db; } Futurevoid close() async { if (_db ! null) { await _db!.close(); _db null; } } FutureDatabase _openDatabase() async { final pool await SqliteConnectionPool.forDatabase(path/to/database.db); pool.maxSize 10; // 设置最大连接数为10 return pool.openDatabase(); } }这样同时还避免了直接使用Database实例。
http://www.laogonggong.com/news/125905.html

相关文章:

  • 成都网站搭建公司哪家便宜wordpress分表存储
  • 表格布局的网站ui设计稿
  • 深圳做app网站制作公司网站如何建立
  • 单位网站备案手机赚钱软件
  • 怎样给自己建立网站网站域名登
  • 山东网站建设标准经营者采用过哪几种网络营销方式
  • 网站建设怎么购买空间手机wordpress写作
  • 企业网站管理系统哪个好优秀品牌企业网站建设案例
  • 南京网站建设公司大全黄骅港赶海推荐个好地方
  • 上虞网站建设哪家好dw建设网站视频
  • 婚纱网网站建设目的及功能定位wordpress网站 华为
  • 常德网络建站河北省住房和城乡建设厅网站查询
  • 建设上海网站网站建设期任务及总结
  • 国微 网站建设wordpress页面添加侧边栏
  • 网站建设论文伯乐在线网站名称有哪些
  • 建站排行榜简约好看的网站
  • 淡水网站建设东莞常平牙科
  • 山东省环保厅官方网站建设项目免费电子商务网站源码
  • 响应式建站网站微信 wordpress 群发
  • 自学编程的网站智慧团建网站入口pc端
  • 做我的世界皮肤壁纸的网站网站换关键词
  • 哈尔滨网络科技公司做网站骨干校建设验收网站
  • 做网站创业流程图佛山建站怎么做
  • 企业公司如何做网站网页设置背景图片
  • 网站备案就是合法的商业网线多少钱一年
  • 娱乐平台网站建设惠州市博罗县建设局网站
  • 做专业慢摇的网站门户网站衰落的原因
  • 沈阳快速建站模板网页设计与制作有什么用
  • 电子商务在酒店管理网站建设wordpress h1
  • 网站建设资料需要公司提交的吗免费发帖的平台有哪些