package com.csq.thesceneryalong.io.db;
import java.io.IOException;
import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Property;
import de.greenrobot.daogenerator.Schema;
import de.greenrobot.daogenerator.ToMany;
public class TsaDaoGenerator{
private static final int dbVersion = 1;
public static void main(String[] args) throws IOException, Exception {
// TODO Auto-generated method stub
Schema schema = new Schema(dbVersion, "com.csq.thesceneryalong.db");
addTables(schema);
schema.enableKeepSectionsByDefault();
new DaoGenerator().generateAll(schema, "../TheSceneryAlong/src-gen");
}
public static void addTables(Schema schema){
//------------------------- 轨迹 ----------------------------
Entity track = schema.addEntity("Track");
track.addIdProperty(); //id
track.addStringProperty("uniqueMack").notNull();//轨迹唯一标志,手机uuid+beginTime,轨迹文件保存文件夹
track.addIntProperty("version"); //版本数,每修改编辑一次+1
track.addStringProperty("name").notNull(); //轨迹名
track.addStringProperty("description"); //描述
track.addLongProperty("beginTime").notNull(); //轨迹开始记录的时间
track.addLongProperty("endTime"); //轨迹停止记录的时间
track.addIntProperty("pointsNum"); //轨迹点数
track.addLongProperty("firstPointTime"); //记录到的第一个轨迹点的时间
track.addLongProperty("lastPointTime"); //记录到的最后一个轨迹点的时间
track.addLongProperty("movingTime"); //轨迹记录移动的时间
track.addDoubleProperty("movingDistance"); //轨迹记录移动的里程
track.addLongProperty("simulateTime"); //模拟时间
track.addIntProperty("sceneryNum"); //风景数,即图片和视频数
track.addIntProperty("recordStatus"); //记录状态,0finished,1recording,2paused
track.implementsSerializable();
//------------------------- 轨迹点 ----------------------------
Entity trackPoint = schema.addEntity("TrackPoint");
trackPoint.addIdProperty(); //id
Property trackIdProperty = trackPoint.addLongProperty("trackId").notNull().getProperty(); //轨迹id
trackPoint.addToOne(track, trackIdProperty); //一个轨迹点只对应一条轨迹
Property timeProperty = trackPoint.addLongProperty("time").notNull().getProperty(); //时间
trackPoint.addDoubleProperty("longitude").notNull(); //经度
trackPoint.addDoubleProperty("latitude").notNull(); //纬度
trackPoint.addDoubleProperty("altitude"); //海拔
trackPoint.addFloatProperty("accuracy"); //精度
trackPoint.addFloatProperty("speed"); //速度
trackPoint.addFloatProperty("bearing"); //方向
trackPoint.addStringProperty("provider"); //位置提供者
trackPoint.addIntProperty("pointStatus").notNull(); //轨迹点状态,0正常记录,1暂停,2恢复,1-2位置无效
//一条轨迹对应多个轨迹点
ToMany trackToTrackPoints = track.addToMany(trackPoint, trackIdProperty);
trackToTrackPoints.setName("trackPoints");
trackToTrackPoints.orderAsc(timeProperty);
trackPoint.implementsSerializable();
//------------------------- 风景 ----------------------------
Entity scenery = schema.addEntity("Scenery");
scenery.addIdProperty(); //id
scenery.addStringProperty("name").notNull(); //名称
scenery.addStringProperty("description"); //描述
scenery.addStringProperty("type").notNull(); //类型,image/video/none
scenery.addStringProperty("uniqueMack").notNull(); //轨迹唯一标志,手机uuid+beginTime,轨迹文件保存文件夹
Property trackIdProperty2 = scenery.addLongProperty("trackId").notNull().getProperty(); //轨迹id
scenery.addToOne(track, trackIdProperty2); //一个轨迹点只对应一条轨迹
Property timeProperty2 = scenery.addLongProperty("time").notNull().getProperty(); //时间
scenery.addDoubleProperty("longitude").notNull(); //经度
scenery.addDoubleProperty("latitude").notNull(); //纬度
scenery.addDoubleProperty("altitude"); //海拔
scenery.addFloatProperty("accuracy"); //精度
scenery.addFloatProperty("speed"); //速度
scenery.addFloatProperty("bearing"); //方向
scenery.addStringProperty("provider"); //位置提供者
scenery.addStringProperty("address"); //地址
//一条轨迹对应多个轨迹点
ToMany sceneryToTrackPoints = track.addToMany(scenery, trackIdProperty2);
sceneryToTrackPoints.setName("scenerys");
sceneryToTrackPoints.orderAsc(timeProperty2);
scenery.implementsSerializable();
}
}