基於SQLite3輕量級封裝,一行代碼實現增刪改查

 

D61084AE-36DE-4516-802E-1E4619B637DF.png

 

最近幾天一直在看關於數據庫的資料,寫了各類sql語句,已經在崩潰的邊緣,爲了下次再也不寫重複的語句,更爲了偷懶...花了幾天時間基於SQLite3封裝了一下,經常使用的功能一行代碼就能夠實現,內部使用runtime獲取屬性列表,再利用KVC完成賦值,很少說,直接上代碼,git

 

下面是提供的接口github

1sql

2數據庫

3spa

4.net

5code

6orm

7對象

8接口

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

/// 獲取全局數據庫單例

+ (instancetype)sharedManager;

/**

 *  打開數據庫

 *

 *  @return 成功/失敗

 */

- (BOOL)openDatabase;

/**

 *  根據類名建立表格,默認主鍵爲t_default_id

 *

 *  @param className  類名t_default_id

 */

- (BOOL)creatTableWithClassName:(id)className;

 

#pragma mark -

#pragma mark - =============== 插入數據 ===============

/**

 *  插入數據

 *  該方法會將模型對象插入到對象類型所對應的表格中 

 *  @param object 模型對象

 */

- (void)insertDataFromObject:(id)object;

 

#pragma mark -

#pragma mark - =============== 查詢數據 ===============

/**

 *  獲取表格中全部數據,

 */

- (NSArray *)selecteDataWithClass:(id)className;

 

/**

 *  獲取表格中數據行數

 */

- (NSInteger)getTotalRowsFormClass:(id)className;

 

/**

 *  獲取表格中第n條數據

 */

- (id)selecteFormClass:(id)className index:(NSInteger)index;

 

/**

 *  單條件查詢

 *

 *  @param obj   類名

 *  @param key   屬性名 例 @"name"

 *  @param opt   符號 例 @"=" > < 

 *  @param value 值 例 @"zhangsan"

 *

 *  @return 查詢結果

 */

- (NSArray *)selectObject:(Class)className key:(id)key operate:(NSString *)operate value:(id)value;

 

/**

 *  自定義語句查詢

 *

 *  @param sqlString 自定義的sql語句

 *  @param className 類名

 *

 *  @return 查詢結果

 */

- (NSArray *)selecteDataWithSqlString:(NSString *)sqlString class:(id)className;

 

/**

 *  數據庫模糊查詢(單條件)

 *

 *  @param obj          類

 *  @param propertyName 屬性名也是字段名

 *  @param type         模糊查詢的位置類型

 *  @param content      查詢的字符串

 *

 *  @return 查詢內容

 */

- (NSArray *)selectObject:(Class)className propertyName:(NSString *)propertyName type:(GKDatabaseSelectLocation)type content:(NSString *)content;

 

#pragma mark -

#pragma mark - =============== 更新數據 ===============

/**

 *  數據更新

 *

 *  @param obj             類名

 *  @param oldValues   要更新的內容 例 @【@"name=lisi"】

 *  @param conditionType   條件類型 例 OR 或者 AND

 *  @param newValues 更新條件 例 @【@"id=5",@"name=zhangsan"】

 */

- (BOOL) updateObject:(Class)className oldValues:(NSArray *)oldValues conditionType:(QueryType)conditionType newValues:(NSArray *)newValues;

 

#pragma mark -

#pragma mark - =============== 刪除數據 ===============

/**

 *  刪除數據

 *

 *  @param className 類名

 *  @param string    刪除語句,字符串須要加上單引號 例@"name = 'Chris'" / @"id = 1234" / @"integer > 1234";

 *

 *  @return 刪除結果

 */

- (BOOL)deleteObject:(Class)className withString:(NSString *)string;

 

/**

 *  清空數據庫某表格的內容

 *

 *  @param className 類名

 *

 *  @return 清空結果

 */

- (BOOL)clearTableWithName:(id)className;

 

/**

 *  刪除數據庫表格

 *

 *  @param className 類名

 *

 *  @return 刪除結果

 */

- (BOOL)deleteTableWithTableName:(id)className;

具體使用請看Demo:https://github.com/ChrisCaixx/GKDatabase

源碼中給出了詳細的註釋,若有須要請移步:https://github.com/ChrisCaixx/GKDatabase 如以爲好用,

相關文章
相關標籤/搜索