LHDB是基于底层sqlite3.0直接对model进行存取的数据库操作框架

加入收藏
已有 7 人收藏

介绍:
    LHDB是基于底层sqlite3.0直接对model进行存取的数据库操作框架。

    内部已经实现异步操作,线程安全。直接对NSObject写类别,所以可以用model直接调用方法,操作简单。

    

    LHDB内部两种调用方式:

     一种是非队列执行,就是普通执行无法保证在多线程环境下数据库锁住问题;

     另一种就是队列执行,所有执行任务都会在一个唯一的队列中执行,完全保证在一个时间内只会有一个线程操作数据库。

    

     LHModelStateMent.h :这个类是对封装sql语句;

     LHDataBaseExecute.h :所有的数据库操作都由这个类完成;

     LHPredicate.h :用来确定要操作的范围和查询的排序规则,类似NSPredicate;

     LHDBQueue.h :封装一层队列,保证数据库的线程安全;

     NSObject+LHModelOperation.h :用于解析model;

     LHDBPath.h :用于确定操作的数据库路劲,在没有初始化此对象之前LHDB默认一个数据库路径,如果在使用过程中需要切换数据库,需要使用此类的单例确定数据库路径;

     NSObject+LHDB.h :使用类别,所有外部需要操作数据库都要使用这个类中的方法。

测试环境:
  [Code4App]编译测试
效果图:
  • iOS / iPhone LHDB是基于底层sqlite3.0直接对model进行存取的数据库操作框架。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;内部已经实现异步操作,线程安全。直接对NSObject写类别,所以可以用model直接调用方法,操作简单。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;LHDB内部两种调用方式:<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;     一种是非队列执行,就是普通执行无法保证在多线程环境下数据库锁住问题;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;     另一种就是队列执行,所有执行任务都会在一个唯一的队列中执行,完全保证在一个时间内只会有一个线程操作数据库。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;    <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;     LHModelStateMent.h :这个类是对封装sql语句;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;     LHDataBaseExecute.h :所有的数据库操作都由这个类完成;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;     LHPredicate.h :用来确定要操作的范围和查询的排序规则,类似NSPredicate;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;     LHDBQueue.h :封装一层队列,保证数据库的线程安全;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;     NSObject+LHModelOperation.h :用于解析model;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;     LHDBPath.h :用于确定操作的数据库路劲,在没有初始化此对象之前LHDB默认一个数据库路径,如果在使用过程中需要切换数据库,需要使用此类的单例确定数据库路径;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;     NSObject+LHDB.h :使用类别,所有外部需要操作数据库都要使用这个类中的方法。
代码评论:
登录后方可评论

  
  • 2016-04-01 17:28:12
    回复
    @天道勤酬88:已经存在的字段 你使用addcolumn加了一个表中已经存在的字段
    登录后方可评论

      
  • 2016-03-31 08:39:02
    回复
    这个运行报错,才开始弄sqlite,不知道什么原因? 提示: 数据库操作数据失败! 错误信息duplicate column name: age,alter table Model add age TEXT 2016-03-31 08:33:21.948 LHDBDemo[353:49338] selectArray1 = ( ""
    登录后方可评论

      
  • 2016-03-18 15:38:45
    回复
    有个问题请教楼主,当我尝试按条件删除的时候,报错,Error Domain=no such column: ‘李四’ Code=1 "(null)" UserInfo={sqlString=DELETE FROM Model WHERE name = ‘李四’} 请问应该如何解决?谢谢
    登录后方可评论