您的位置:首页 > 其它

GreenDao框架,生成类个人注释

2016-04-03 11:09 316 查看
0、GreenDao框架是访问数据库

1、前提首先导入GreenDao的jar包或者导入GreenDao源代码

2、注意 GreenDao生成项目,可是java工程哦

3、留下生成类的注释

public class TestCase {
private static int mDbVersion = 1; //数据库版本号
private String mModelPackage = "com.wp.wpsqltest.bean"; //这个包名,正是你要放到Android应用中的包名,牛逼

private Schema mSchema = new Schema(mDbVersion, mModelPackage); //new一个Schema实例对象,这个还没有明白有啥用?

public TestCase() {
super();
}

public void init() {
//定义一个实体,cao,就是一张表啊
Entity entityHeader = mSchema.addEntity("Header");  //闹半天Shema下的addEntity实例方法可以得到一个Entity实例对象,传入的参数要求是String的类名
entityHeader.implementsSerializable(); //实现序列化接口?这里不明白这个方法是干什么用的
entityHeader.addIdProperty();  //addIdProperty方法返回一个PropertyBuilder实例对象,不明白这个方法具体的用途,说是定义一个id字段主键,但是表在哪?
//增加一个字段? 没错
entityHeader.addStringProperty("headerName").notNull();//还能设置这个字段的属性,不可以为空指

//又一个Entity实例对象,又一张表
Entity entityItem = mSchema.addEntity("Item");
entityItem.implementsSerializable();
entityItem.addIdProperty();
entityItem.addStringProperty("itemName").notNull();

//说是用于多张表的设计字段,不是特别的明白
Property Itemid = entityItem.addLongProperty("ItemId").getProperty();

//又是一张表
Entity entityStudent = mSchema.addEntity("Student");
entityStudent.implementsSerializable();
entityStudent.addIdProperty();
entityStudent.addStringProperty("studentName");

//又是一张表
Entity entityTeacher = mSchema.addEntity("Teacher");
entityTeacher.implementsSerializable();
entityTeacher.addIdProperty();
entityTeacher.addStringProperty("teacherName");

//又是一张表  ,没明白 long字段有啥用
Entity entityTeacherAndStudent = mSchema.addEntity("TeacherAndStudent");
Property teacherId = entityTeacherAndStudent.addLongProperty("teacherId").getProperty();
Property studentId = entityTeacherAndStudent.addLongProperty("studentId").getProperty();

//树桩结构,cao,完全没明白,实现1对多
Entity entityTree = mSchema.addEntity("Tree");
entityTree.addIdProperty(); //加入id字段
entityTree.addStringProperty("treeName"); //再加入字段treeName
Property parentId = entityTree.addLongProperty("parentId").getProperty();
entityTree.addToOne(entityTree, parentId).setName("parent"); //这里还没有明白,addToOne返回一个OneTo实例对象,然后又调用了它的setName方法,
entityTree.addToMany(entityTree,parentId).setName("children");

//外键添加1对多,这里没有懂
entityItem.addToOne(entityHeader, Itemid);
ToMany addToMany = entityHeader.addToMany(entityItem, Itemid);
addToMany.setName("Items");

//下面实现的是多对多,greenDao不支持多对多,这里我也不明白
entityTeacherAndStudent.addToOne(entityStudent, studentId);
entityTeacherAndStudent.addToOne(entityTeacher, teacherId);
entityStudent.addToMany(entityTeacherAndStudent, studentId).setName("studentsteachers");
entityTeacher.addToMany(entityTeacherAndStudent, teacherId).setName("studentsteachers");

}

public static void main(String args[]) throws Exception {
TestCase testCase = new TestCase();
testCase.init();
testCase.mSchema.enableKeepSectionsByDefault(); //这个方法是干什么用的?
testCase.mSchema.enableActiveEntitiesByDefault();//这个方法是干什么用的。Schema实例对象下的方法,平时可不推荐这么写,这么写我就打你头
String outDir = "D:\\workspaceNew\\WpSqlTest\\src"; //指定路径
new DaoGenerator().generateAll(testCase.mSchema, outDir); //这个outDier一定要理解,就是android项目的路径
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: