FFDBManager.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. //
  2. // FFDBManager.h
  3. // FFDB
  4. //
  5. // Created by Fidetro on 2017/5/11.
  6. // Copyright © 2017年 Fidetro. All rights reserved.
  7. //
  8. // https://github.com/Fidetro/FFDB
  9. #import <Foundation/Foundation.h>
  10. #import <FMDB/FMDB.h>
  11. @class FFDataBaseModel;
  12. @interface FFDBManager : NSObject
  13. /**
  14. select object by params
  15. @param columns query columns
  16. @param dbClass query dbClass
  17. @param format Like sqlstatement rule, example: where name = 'fidetro' and age = '21'
  18. @return class objects
  19. */
  20. + (NSArray <__kindof FFDataBaseModel *>*)selectColumns:(NSArray <NSString *>*)columns
  21. fromClass:(Class)dbClass
  22. SQLStatementWithFormat:(NSString *)format;
  23. + (long long int)selectCountfromClasses:(NSArray <Class>*)dbClasses
  24. SQLStatementWithFormat:(NSString *)format;
  25. /**
  26. Contingency query
  27. @param columns query columns ,if nil,then will be query toClass all property
  28. @param dbClasses query dbClass
  29. @param toClass return this class Objects
  30. @param format Like sqlstatement rule, example: where name = 'fidetro' and age = '21'
  31. @return toClass Array
  32. */
  33. + (NSArray <__kindof FFDataBaseModel *>*)selectColumns:(NSArray <NSString *>*)columns
  34. fromClasses:(NSArray <Class>*)dbClasses
  35. toClass:(Class)toClass
  36. SQLStatementWithFormat:(NSString *)format;
  37. /**
  38. delete all object from class
  39. @param dbClass delete dbClass
  40. @param format Like sqlstatement rule, example: where name = 'fidetro' and age = '21'
  41. @return isSuccess
  42. */
  43. + (BOOL)deleteFromClass:(Class)dbClass
  44. SQLStatementWithFormat:(NSString *)format;
  45. /**
  46. insertObject by columns
  47. @param model need insert model
  48. @param columns insert Columns,if nil,then will be insert model all property
  49. @return isSuccess
  50. */
  51. + (BOOL)insertObject:(__kindof FFDataBaseModel *)model
  52. columns:(NSArray <NSString *>*)columns;
  53. /**
  54. Update dbClass
  55. @param dbClass need update dbClass
  56. @param format Like sqlstatement rule, example: where name = 'fidetro' and age = '21'
  57. @return isSuccess
  58. */
  59. + (BOOL)updateFromClass:(Class)dbClass
  60. SQLStatementWithFormat:(NSString *)format;
  61. /**
  62. update object by columns
  63. @param model need update model
  64. @param columns update columns,if nil,then will be update model all property
  65. @return isSuccess
  66. */
  67. + (BOOL)updateObject:(__kindof FFDataBaseModel *)model
  68. columns:(NSArray <NSString *>*)columns;
  69. /**
  70. custom query SQL
  71. @param toClass return toClass Object
  72. @param format SQL statement exmaple:select * from person
  73. @return return this class Objects
  74. */
  75. + (NSArray <__kindof FFDataBaseModel *>*)selectDBToClass:(Class)toClass
  76. SQLStatementWithFormat:(NSString *)format;
  77. /**
  78. custom update
  79. @param format SQL statement
  80. @return isSuccess
  81. */
  82. + (BOOL)updateDBWithSQLStatementWithFormat:(NSString *)format;
  83. /**
  84. alert new columns to dbClass
  85. @param dbClass dbClass
  86. @param columns alert columns
  87. */
  88. + (void)alterFromClass:(Class)dbClass
  89. columns:(NSArray <NSString *>*)columns;
  90. /**
  91. then will be create Table by Class property
  92. @param dbClass dbClass
  93. @return isSuccess
  94. */
  95. + (BOOL)createTableFromClass:(Class)dbClass;
  96. /**
  97. FFDB databasePath
  98. */
  99. + (NSString *)databasePath;
  100. /**
  101. FMDatabase object
  102. */
  103. + (FMDatabase *)database;
  104. @end