FLEXDatabaseManager.m 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. //
  2. // PTDatabaseManager.m
  3. // PTDatabaseReader
  4. //
  5. // Created by Peng Tao on 15/11/23.
  6. // Copyright © 2015年 Peng Tao. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "FLEXDatabaseManager.h"
  10. #import "FLEXSQLiteDatabaseParser.h"
  11. #import "FLEXRealmDatabaseParser.h"
  12. @implementation FLEXDatabaseManager {
  13. NSString *_databasePath;
  14. id<FLEXDatabaseManagerParser> _parser;
  15. }
  16. - (instancetype)initWithPath:(NSString*)aPath
  17. {
  18. self = [super init];
  19. if (self) {
  20. _databasePath = [aPath copy];
  21. _parser = [self parserForFileAtPath:aPath];
  22. }
  23. return self;
  24. }
  25. - (BOOL)open
  26. {
  27. return [_parser open];
  28. }
  29. - (NSArray *)queryAllTables
  30. {
  31. return [_parser queryAllTables];
  32. }
  33. - (NSArray *)queryAllColumnsWithTableName:(NSString *)tableName
  34. {
  35. return [_parser queryAllColumnsWithTableName:tableName];
  36. }
  37. - (NSArray *)queryAllDataWithTableName:(NSString *)tableName
  38. {
  39. return [_parser queryAllDataWithTableName:tableName];
  40. }
  41. - (id<FLEXDatabaseManagerParser>)parserForFileAtPath:(NSString *)path
  42. {
  43. NSString *pathExtension = path.pathExtension;
  44. if ([@[@"db", @"sqlite", @"sqlite3"] containsObject:pathExtension]) {
  45. return [[FLEXSQLiteDatabaseParser alloc] initWithPath:path];
  46. }
  47. else if ([pathExtension isEqualToString:@"realm"]) {
  48. return [[FLEXRealmDatabaseParser alloc] initWithPath:path];
  49. }
  50. return nil;
  51. }
  52. @end