GreenDao使用

package com.homeway.dao;


import java.io.IOException;
import java.util.List;

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;
import de.greenrobot.daogenerator.ToOne;

public class TestDemoGenerator {
	
	static final String DB_NAME = "testDemo"; 
	static final int DB_VERSION = 1;
	static final String DB_PACKAGE = "com.homeway.database.gen";
	static final String DB_OUT_PATH = "../StudyDemo/src-gen"; 
	

	public static Property findProperty(Entity entity, String name) {
		List<Property> properties =  entity.getProperties();
		for (Property property : properties) {
			if (property.getPropertyName().equals(name)) {
				return property;
			}
		}
		return null;
	}
	
	// 创建产品类
	private static Entity genProduct(Schema schema) {
		Entity product = schema.addEntity("Product");
		// 序列化
		product.implementsSerializable();
                // 设置表名
		product.setTableName("Product");
		// 列: ID, 自增
		product.addIdProperty().autoincrement();
		// 列: 产品名称, 非空
		product.addStringProperty("name").columnName("prd_name").notNull();
		product.addStringProperty("code").columnName("prd_code").notNull().unique();
		product.addDoubleProperty("price");
		product.addDateProperty("prdDate");
		return product;
	}
	
	// 创建类别类
	private static Entity genCategory(Schema schema) {
		Entity category = schema.addEntity("Category");
		category.implementsSerializable();	
		category.addIdProperty().autoincrement();
		category.addStringProperty("name").columnName("ctg_name").notNull();
		return category;
	}
	
	// 生成数据库表
	public static void genDataBase() throws IOException, Exception{
		Schema schema = new Schema(DB_VERSION, DB_PACKAGE);
		schema.enableKeepSectionsByDefault();
		schema.enableActiveEntitiesByDefault();
		Entity product = genProduct(schema);
		Entity category = genCategory(schema);
		
		// 创建表间关系		
		// 产品 - 类别:  一对一
		Property fkPrdCate = product.addLongProperty("categoryId").notNull().getProperty();
		ToOne prd2cate = product.addToOne(category, fkPrdCate);
		prd2cate.setName("category");
		// 类别 - 产品:  一对多
		ToMany cate2prd	= category.addToMany(product, fkPrdCate);
		cate2prd.setName("products");
		cate2prd.orderAsc(findProperty(product, "prdDate"));
		cate2prd.orderDesc(findProperty(product, "price"));
		
		new DaoGenerator().generateAll(schema, DB_OUT_PATH);
	}
	
	
	public static void main(String[] args) {
		try {
			genDataBase();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
}

 

 

猜你喜欢

转载自200cc.iteye.com/blog/2155536