greenDAo的简单入门介绍

本文介绍如何使用绿色DAO框架进行移动开发的ORM操作,包括项目初始化、代码生成、实体模型创建及DAO层实现。详细展示了从生成实体、DAO层到实际应用的完整流程,并提供了简化开发过程的开源架构参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

greenDao是一个移动开发的ORM框架。
在此总结下用法。
首先需要新建一个JAVA项目用来自动生成文件。
需要导入greendao-generator-1.3.0.jar和freemarker.jar到项目中

下载地址: http://download.youkuaiyun.com/detail/f112122/7944535


 

在创建完项目后,在根目录下,新建个src-gen文件夹。用来放greenDAo生成的代码。




然后复制下这个代码。

import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema;

/**
 * Generates entities and DAOs for the example project DaoExamples.
 * 
 * Run it as a Java application (not Android).
 * 
 * @author Sanjay
 */
public class ExampleDaoGenerator {

	public static void main(String[] args) throws Exception {

		Schema schema = new Schema(3, "com.day30.dao");   //3为数据库版本,后面为包名                                   <span style="font-family: Arial;">		Entity PlanItem = schema.addEntity("Plan");//我们要生成的实体</span>
		PlanItem.addIdProperty().autoincrement().primaryKey();//设置各种属性,不解释
		PlanItem.addStringProperty("title").notNull();
		PlanItem.addStringProperty("description");
		PlanItem.addStringProperty("date");

	new DaoGenerator().generateAll(schema, "../DaoExamples/src-gen");//这个是项目的路径,可能需要修改下项目名字
	} 
}

=====================

然后直接运行。会生成报告。

greenDAO Generator
Copyright 2011-2014 Markus Junginger, greenrobot.de. Licensed under GPL V3.
This program comes with ABSOLUTELY NO WARRANTY
Processing schema version 3...
Written H:\Users\Administrator\workspace\DaoExamples\src-gen\com\day30\dao\PlanDao.java
Written H:\Users\Administrator\workspace\DaoExamples\src-gen\com\day30\dao\Plan.java
Written H:\Users\Administrator\workspace\DaoExamples\src-gen\com\day30\dao\DaoMaster.java
Written H:\Users\Administrator\workspace\DaoExamples\src-gen\com\day30\dao\DaoSession.java
Processed 1 entities in 435ms

===================

OK,现在刷新下项目

我们看到生成的代码啦

 

 


=====================

 

在完成上面的生成model和DAo层后。

现在我们来看怎么使用。

先新建安卓项目。

public class MainActivity extends Activity {
	 String TAG= getClass().getName();
	PlanDao planDao;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main); 
		
		DaoSession daoSession = MyApplication.getDaoSession(MainActivity.this);
		planDao = daoSession.getPlanDao();
		
		for (int i = 0; i < 5; i++) {
			Plan plan = new Plan();
			plan.setDate("data" + i);
			plan.setDescription("desc" + i);
			plan.setTitle("title" + i);
			planDao.insert(plan);
		}
		
		List<Plan> array = planDao.loadAll();
		for (Plan plan : array) { 	
			Log.i("day30", plan.getTitle()); 
		} 
	} 
} 



public class MyApplication extends Application {

	private static DaoMaster daoMaster;
	private static DaoSession daoSession;

	private static MyApplication app;

	private MyApplication() {
	}

	public static Application getInstance() {
		if (app == null) {
			app = new MyApplication();
		}
		return app;
	}

	@Override
	public void onCreate() {
		super.onCreate();
	}

	public static DaoMaster getDaoMaster(Context context) {
		if (daoMaster == null) {
			OpenHelper helper = new DaoMaster.DevOpenHelper(context, "PlanDB",
					null);
			daoMaster = new DaoMaster(helper.getWritableDatabase());
		}
		return daoMaster;
	}

	/**
	 * 取得DaoSession
	 * 
	 * @param context
	 * @return
	 */
	public static DaoSession getDaoSession(Context context) {
		if (daoSession == null) {
			if (daoMaster == null) {
				daoMaster = getDaoMaster(context);
			}
			daoSession = daoMaster.newSession();
		}
		return daoSession;
	}
}

---------------------------

通过上面不走就ok啦。。走了一个流程!

简单入门下。再具体的看下面

参考文章: http://glblong.blog.51cto.com/3058613/1354953

http://blog.youkuaiyun.com/krislight/article/details/9391455

===============

如果觉得上面步骤还是很多。那么欢迎看下这两个开源的架构。看看什么叫简洁

https://github.com/wyouflf/xUtils

https://github.com/yangfuhai/afinal



-------------------------------------------------------------------------------------

项目详情:https://github.com/greenrobot/greenDAO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值