`

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();
		}
	}
	
}

 

 

  • 大小: 5.4 KB
分享到:
评论

相关推荐

    android 的Greendao使用demo,供初学者使用

    这个“android的GreenDao使用demo”是为初学者准备的一个实例,旨在帮助理解并快速上手GreenDao的使用。 一、GreenDao简介 GreenDao是一款高效且易于使用的Java库,它允许开发者直接在Android应用中通过对象与...

    Android GreenDao使用教程

    **Android GreenDao使用教程** GreenDao是一款专门为Android平台设计的高效、轻量级的对象关系映射(ORM)框架,它允许开发者将数据模型类与SQLite数据库进行映射,从而简化了数据库操作。在这个教程中,我们将深入...

    Android greenDAO使用demo

    这个“Android greenDAO使用demo”是专门为展示如何在Android项目中集成并使用greenDAO而设计的。 首先,我们要理解greenDAO的核心概念。greenDAO是一种轻量级的库,它通过自动生成与SQLite数据库交互的Java对象...

    Android GreenDao使用Demo

    **Android GreenDao使用Demo** GreenDao是一款专门为Android平台设计的高效、轻量级的对象关系映射(ORM)框架,它允许开发者将数据模型类与SQLite数据库进行映射,从而简化了数据库操作。在这个Demo中,我们将深入...

    安卓GreenDao使用.rar

    **Android GreenDao 使用详解** GreenDao 是一个针对 Android 平台的高性能 ORM(对象关系映射)库,它使得在 Android 应用中操作 SQLite 数据库变得更加简单。通过使用 GreenDao,开发者可以将 Java 对象直接映射...

    GreenDAO使用的jar包

    GreenDAO使用中所需要的jar包,包括greendao-generator-2.0.0.jar,freemarker-2.3.23.jar和greendao-2.0.0.jar。前两个用于Java项目,后一个用于android项目。

    GreenDao使用demo

    **GreenDao使用详解** GreenDao是一款专门为Android平台设计的高效、轻量级的对象关系映射(ORM)框架,它使得开发者能够便捷地在SQLite数据库上操作数据,无需编写大量的SQL语句。GreenDao通过将Java对象与数据库...

    greenDAO使用demo

    在这个“greenDAO使用demo”中,我们将深入探讨如何在Android应用中集成并使用greenDAO。 首先,我们要了解**对象关系映射(ORM)**的概念,它是连接数据库和编程语言的一种技术,使得开发者可以像操作对象一样操作...

    GreenDao的使用

    要在项目中使用GreenDao,首先需要在`build.gradle`文件中添加依赖。目前的版本可能需要在Gradle repositories中添加JitPack仓库,并在dependencies块中引入GreenDao库。 2. **实体类(Entity)**: 在GreenDao中...

    greendao使用说明

    greendao调研结果,greendao使用说明,对初学greendao有帮助

    GreenDao使用Demo

    在这个"GreenDao使用Demo"中,虽然代码可能较为混乱,但展示了如何在实际项目中结合RxJava来运用GreenDao的主要功能。 1. **安装与配置**: - 首先,你需要在项目级`build.gradle`文件中添加GreenDao的依赖,通常...

    greenDao使用总结(包括模型生成、增删改查、修改存储路径、数据库更新升级和加解密数据库)

    在本文中,我们将深入探讨GreenDao的几个核心功能,包括模型生成、数据的增删改查、自定义数据库存储路径、数据库的更新升级以及加解密数据库,帮助开发者更高效地使用这一工具。 1. **模型生成**: 在使用...

    GreenDao的使用方法

    **GreenDao的使用方法** GreenDao是一款专门为Android平台设计的高效、轻量级的对象关系映射(ORM)框架,它允许开发者将Java对象直接映射到SQLite数据库中,极大地简化了Android应用的数据存储操作。本篇文章将...

    GreenDao使用例子-Android工程中如何便捷使用

    GreenDao的官方example中进行操作需要新建一个session,然而不知道如何释放这个session是件很头痛的事情,所以使用单例模式,来保存这个session以便重复使用是极好的,资源是对官方example的一个改进。

    Android代码-安卓GreenDao使用例子

    一个基于GreenDAO的Android使用例子,对GreenDAO进行工具类封装,使之快速使用。 可Clone之后查看使用,方便二次开发。 About Me YaphetZhao Email:yaphetzhao@gmail.com Email_CN:yaphetzhao@foxmail.com GitHub:...

    Android GreenDao 使用全面讲解,基于android的app的设计与开发.pdf

    在本文中,我们将深入探讨如何在Android应用中使用GreenDao进行数据管理和查询。 首先,让我们来看一个基本的查询示例。在下面的代码中,我们查询名称为“一”的所有`Student`对象: ```java public List&lt;Student&gt;...

    史上最牛逼的Android数据库 GreenDao3.1 详细使用教程

    本教程将深入讲解GreenDao 3.1的使用,帮助小白也能快速上手。 一、GreenDao简介 GreenDao是一个轻量级的数据库框架,它的核心思想是通过代码生成技术,将Java对象与SQLite数据库表进行映射,避免了手动编写SQL语句...

    greendao所需jar

    在 Android 应用开发中,使用 GreenDAO 可以避免编写大量的 SQL 语句,提高开发效率。 在描述中提到的 "greendao所需jar" 指的是使用 GreenDAO 开发时所需的库文件,通常是一个或多个 JAR(Java Archive)文件。...

Global site tag (gtag.js) - Google Analytics