1. 云栖社区>
  2. PHP教程>
  3. 正文

基于SQLite3轻量级封装,一行代码实现增删改查

作者:用户 来源:互联网 时间:2017-12-01 19:45:38

sqlite3封装实现代码删改基于一行轻量级

基于SQLite3轻量级封装,一行代码实现增删改查 - 摘要: 本文讲的是基于SQLite3轻量级封装,一行代码实现增删改查, 最近几天一直在看关于数据库的资料,写了各种sql语句,已经在崩溃的边缘,为了下次不再写重复的语句,更为了偷懒...花了几天时间基于SQLite3封装了一下,常用的功能一行代码就可以实现,内部使用runtime获取属性列表,再利用KVC完

基于SQLite3轻量级封装,一行代码实现增删改查

最近几天一直在看关于数据库的资料,写了各种sql语句,已经在崩溃的边缘,为了下次不再写重复的语句,更为了偷懒...花了几天时间基于SQLite3封装了一下,常用的功能一行代码就可以实现,内部使用runtime获取属性列表,再利用KVC完成赋值,不多说,直接上代码,

下面是提供的接口

1

2

3

4

5

6

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

*

*@paramclassName类名t_default_id

*/

-(BOOL)creatTableWithClassName:(id)className;

#pragmamark-

#pragmamark-===============插入数据===============

/**

*插入数据

*该方法会将模型对象插入到对象类型所对应的表格中

*@paramobject模型对象

*/

-(void)insertDataFromObject:(id)object;

#pragmamark-

#pragmamark-===============查询数据===============

/**

*获取表格中所有数据,

*/

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

/**

*获取表格中数据行数

*/

-(NSInteger)getTotalRowsFormClass:(id)className;

/**

*获取表格中第n条数据

*/

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

/**

*单条件查询

*

*@paramobj类名

*@paramkey属性名例@"name"

*@paramopt符号例@"="><

*@paramvalue值例@"zhangsan"

*

*@return查询结果

*/

-(NSArray*)selectObject:(Class)classNamekey:(id)keyoperate:(NSString*)operatevalue:(id)value;

/**

*自定义语句查询

*

*@paramsqlString自定义的sql语句

*@paramclassName类名

*

*@return查询结果

*/

-(NSArray*)selecteDataWithSqlString:(NSString*)sqlStringclass:(id)className;

/**

*数据库模糊查询(单条件)

*

*@paramobj类

*@parampropertyName属性名也是字段名

*@paramtype模糊查询的位置类型

*@paramcontent查询的字符串

*

*@return查询内容

*/

-(NSArray*)selectObject:(Class)classNamepropertyName:(NSString*)propertyNametype:(GKDatabaseSelectLocation)typecontent:(NSString*)content;

#pragmamark-

#pragmamark-===============更新数据===============

/**

*数据更新

*

*@paramobj类名

*@paramoldValues要更新的内容例@【@"name=lisi"】

*@paramconditionType条件类型例OR或者AND

*@paramnewValues更新条件例@【@"id=5",@"name=zhangsan"】

*/

-(BOOL)updateObject:(Class)classNameoldValues:(NSArray*)oldValuesconditionType:(QueryType)conditionTypenewValues:(NSArray*)newValues;

#pragmamark-

#pragmamark-===============删除数据===============

/**

*删除数据

*

*@paramclassName类名

*@paramstring删除语句,字符串需要加上单引号例@"name='Chris'"/@"id=1234"/@"integer>1234";

*

*@return删除结果

*/

-(BOOL)deleteObject:(Class)classNamewithString:(NSString*)string;

/**

*清空数据库某表格的内容

*

*@paramclassName类名

*

*@return清空结果

*/

-(BOOL)clearTableWithName:(id)className;

/**

*删除数据库表格

*

*@paramclassName类名

*

*@return删除结果

*/

-(BOOL)deleteTableWithTableName:(id)className;


具体使用请看Demo:https://github.com/ChrisCaixx/GKDatabase

源码中给出了详细的注释,如有需要请移步:https://github.com/ChrisCaixx/GKDatabase如觉得好用,



以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索sqlite3 , 封装 , 实现 , 代码 , 删改 , 基于 , 一行 轻量级 ,以便于您获取更多的相关知识。

弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一

云服务器9.9元/月,大学必备