# chat_storage_sqlite SQLite存储插件,用于存储聊天记录并支持分页查询。 ## 功能特点 - 使用SQLite数据库存储聊天记录 - 提供分页查询功能,可指定获取对应页码的记录 - 支持按会话ID组织和查询聊天记录 - 提供添加、查询、删除等基本操作 ## 使用方法 ### 保存聊天记录 ```dart import 'package:chat_storage/chat_storage.dart'; // 保存一条聊天记录 final result = await ChatStorage.saveMessage( sessionId: 'session_123', message: '你好,这是一条测试消息', sender: 'user', metadata: '{"timestamp": 1630000000000}' // 可选的元数据,支持JSON字符串 ); if (result['success']) { print('消息保存成功,ID: ${result['id']}'); } else { print('消息保存失败: ${result['error']}'); } ``` ### 获取聊天记录(支持分页) ```dart // 获取指定会话的聊天记录,支持分页 final pagedResult = await ChatStorage.getMessages( sessionId: 'session_123', page: 1, // 当前页码,从1开始 pageSize: 20, // 每页记录数 ); // 使用结果 print('总记录数: ${pagedResult.totalCount}'); print('总页数: ${pagedResult.totalPages}'); print('当前页: ${pagedResult.page}'); // 遍历消息列表 for (var message in pagedResult.messages) { print('ID: ${message.id}'); print('发送者: ${message.sender}'); print('内容: ${message.message}'); print('时间: ${message.timestamp}'); print('---'); } ``` ### 删除聊天记录 ```dart // 方式1:删除指定ID的消息 final deleteResult1 = await ChatStorage.deleteMessages( messageIds: [1, 2, 3], ); // 方式2:删除整个会话的所有消息 final deleteResult2 = await ChatStorage.deleteMessages( sessionId: 'session_123', ); // 方式3:清空整个数据库 final clearResult = await ChatStorage.clearDatabase(); ``` ## 注意事项 - 插件会自动创建和管理SQLite数据库,无需手动初始化 - 所有操作都是异步的,请使用async/await处理返回结果 - 插件内部已处理异常情况,但建议在使用时添加适当的错误处理