Sqlite封装2-动态建表-基本创建

一、基本创建要做的的事情:

  1. 主要思想:想办法凑够拼接完整建表sql语句, 需要的数据。
  2. 表的名称:根据类名定义
  3. 字段名称:类的成员变量,去掉_
  4. 字段的类型:类型编码到sql类型的映射类型,运行时type, 和 SQL type的映射表
  5. 主键:通过协议

二、每个类的功能:

  1. XMGSqliteTool:上一篇中讲到
  • 对sqlite3的封装;
  • 实现增删改、查功能;
  • 执行sql语句。
  1. XMGModelTool
  • 对数据模型进行操作;
    1. 获取表名:根据该模型类名来定义,返回字符串;
      + (NSString *)tableName:(Class)cls
    2. 获取所有成员变量,类型为原生;
      + (NSDictionary *)classIvarNameTypeDic:(Class)cls;
    3. 获取所有成员变量,类型为数据库对应的类型;
      + (NSDictionary *)classIvarNameSqliteTypeDic:(Class)cls;
    4. 把成员变量和数据库对应的类型,拼接成字符串,返回字符串。(用于拼凑sql字段部分)
      + (NSString *)columnNamesAndTypesStr:(Class)cls;
Sqlite封装2-动态建表-基本创建_第1张图片
方法之间的使用关系
Sqlite封装2-动态建表-基本创建_第2张图片
XMGModelTool.h
XMGModelTool.m
  1. XMGSqliteModelTool
  • 连接数据库工具和模型工具;
  • 从模型工具中获取信息,拼接sql语句,让数据库执行。
  • API:根据模型类和用户名来建表:

思想:尽可能多的, 能够自己获取, 就自己获取, 实在判定不了用的意图的, 只能让用户来告诉我们。

步骤:
1.创建表格的sql语句给拼接出来
1.1 获取表格名称
1.2 获取主键
1.3 获取一个模型里面所有的字段, 以及类型
2.执行

Sqlite封装2-动态建表-基本创建_第3张图片
Snip20170802_100.png
  1. XMGModelProtocol

由模型类遵守该协议,并且实现该类方法。

Sqlite封装2-动态建表-基本创建_第4张图片
Snip20170802_102.png

你可能感兴趣的:(Sqlite封装2-动态建表-基本创建)