美文网首页
JKDBModel 换账号登录数据库混乱

JKDBModel 换账号登录数据库混乱

作者: aggie1024 | 来源:发表于2019-03-29 17:16 被阅读0次

问题描述:有多个账户,先登录第一个账号,退出登录,登录第二个账号,杀掉应用程序,启动app,此时发现从数据库 取出的还是第一个账号的信息,而不是第二次登录的账号信息

问题分析:查看JKDBModel的源码,发现

➕ (JKDBHelper *)shareInstance;单例类,只创建一次。

解决办法:
第一,创建数据库时候路径加userid来区分。

JKDBHelper中+ (NSString *)dbPathWithDirectoryName:(NSString *)directoryName方法里面:
源码:NSString *dbpath = [docsdir stringByAppendingPathComponent:@"jkdb.sqlite"];
修改为:
NSString *dbpath = [docsdir stringByAppendingPathComponent:[NSString stringWithFormat:@"%@jkdb.sqlite",USER_ID]];
分析:源码的数据库叫jkdb.sqlite,登录多个账号的时候,应该给一个可以区分的,有唯一性的名字。

第二,每次存数据库前面,销毁JKDBHelper。
(1)在JKDBHelper里加上类方法

➕ (void)destroyJKDBHelper{
onceToken = 0;
_instance = nil;
}

(2)在退出登录之后调取

[JKDBHelper destroyJKDBHelper ];

这样在退出登录时候,单例被置为nil,且账号数据没有被清空。

相关文章

  • JKDBModel 换账号登录数据库混乱

    问题描述:有多个账户,先登录第一个账号,退出登录,登录第二个账号,杀掉应用程序,启动app,此时发现从数据库 取出...

  • JKDBModel 换账号登录数据库混乱

    问题描述:有多个账户,先登录第一个账号,退出登录,登录第二个账号,杀掉应用程序,启动app,此时发现从数据库 取出...

  • 数据库的安全机制

    添加登录账号 添加windows登录账户(了解) 添加SQLServer登录账户(重点) 添加数据库用户 创建数据...

  • JKDBModel与CoreData

    JKDBModel是对fmdb的封装,极大简化数据库操作. 参考:https://github.com/Halle...

  • oracle 数据泵导入导出

    数据导出 账号赋权,文件目录创建 1.sqlPlush管理员身份登录数据库,或者用plsql直接用DBA账号登录s...

  • MySQL:Linux / python

    linux ---MySQL mysql 登录账号 显示数据库 选中数据库 查看选中数据库里的文件 查看某个文件的...

  • Postgresql 管理

    1 添加只读账号 使用有管理权限的账号登录数据库后 > create role readonly with log...

  • 复制postgres数据库

    Stack Overflow原文 登录postgres账号,postgres是我的账号名,我想复制的数据库是用该账...

  • SQL server数据库、登录、架构、用户、角色、权限

    1.创建一个数据库mydb; 2.创建一个登录账号,账号名为loginuser,密码为123,默认数据库为mydb...

  • 修改用户密码

    1、使用管理员账号登录数据库 sqlplus system/123456@127.0.0.1:1521/orcl ...

网友评论

      本文标题:JKDBModel 换账号登录数据库混乱

      本文链接:https://www.haomeiwen.com/subject/dnhrbqtx.html