用于PeakSqlite项目的实体生成器,需要配合PeakSqlite项目使用,可以根据建表的sql语句自动生成数据实体代码,简化Sqlite的操作。 每个表将会生成一个实体,必需要有一个主键,并且主键的数据类型应为integer,但主键名可以是其它名字。
#Information
Conis
Blog: http://iove.net
E-mail: conis.yi@gmail.com
#Usage
npm install peaksqlite-entity-maker,建议使用全局方式进行安装,npm install -g peaksqlite-entity-maker
##通过命令行调用方式 此方式也是最常用的调用方式,如下:
- 创建一个配置文件
PeakSqlite.json,格式请参照test/PeakSqlite.json。 - 打开终端,运行
peaksqlite <path>,如果不指定path,将会到当前目前查找PeakSqlite.json的配置文件。
##直接的调用方式
var maker = require('peaksqlite-entity-maker');
//通过sql的方式调用
maker.makeWithSql(sql, saveTo, options);
//通过sqlite调用
maker.makeWithSqlite(sqlite, saveTo, options, callback);
//通过配置文件调用
maker.makeWithConfig(cfgFile, callback);##PeakSqlite配置指南
sqlite: 可以直接给定一个sqlite文件的路径,如果sqlite为字符类型,则直接读取sqlite数据库;如果sqlite为数组,则应该是sql语句列表。
saveToFolder: 生成的实体要保存的目录
#options
配置文件中的options与makeWithSql、makeWithSqlite、makeForConfig中的options是一样的。
'classFormatter': 类的格式化方式,默认为"{0}Entity",即生成表名+Entity的方式,如TodolistEntity。
allowUnderscore:是否允许下划线,默认为false,会将字段和表名中的下划线转换为大小写的方式,如todo_level转换为todoLevel。
mapping:重新定义映射,主要是针对数据库中的数据类型与实际类型不一致的情况,目前重点是针对日期类型。
"mapping":{
//表名
"todolist": {
//字段名重新对应数据类型为日期类型
"timestamp": "date"
},
"category": {
"timestamp": "date"
}
}
##其它
自用模块,使用说明欠奉,可参考测试用例中的代码,请参考示例代码,欢迎完善。
对建表的Sql语句会有较高的要求,没有加入容错设计。
日期类型需要注意,因为FMDB无法处理日期格式的数据类型,我建议存储的时候使用double或者float类型,然后在options.mapping中作映射,请参考test/PeakSqlite.json文件中的示例
#LICENSE MIT