安卓ORM框架greenDAO
来源:互联网 发布:linux搭建multicraft 编辑:程序博客网 时间:2024/06/06 01:51
greenDAO ormlite的性能对比:
上面可以看到,greeendao的insert和update效率要比ormlite快两倍左右,load更是夸张到4倍多。
我们可以在官网(http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22de.greenrobot%22%20AND%20a%3A%22greendao-generator%22)上直接下来,也可去github项目主页上下载源码。
下面新建一个java工程,注意是java工程不是android工程,工程名GreenDaoExample。并手动在工程中新建src-gen文件夹。导入freemaker.jar和greendao-generator.jar,加入到build path。建一个如下的类:
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;/** * Generates entities and DAOs for the example project DaoExample. * * Run it as a Java application (not Android). * * @author Markus */public class ExampleDaoGenerator{ public static void main(String[] args) throws Exception { Schema schema = new Schema(3, "com.young.do"); addNote(schema); addCustomerOrder(schema); new DaoGenerator().generateAll(schema, "../DaoExample/src-gen"); } private static void addNote(Schema schema) { Entity note = schema.addEntity("Note"); note.addIdProperty(); note.addStringProperty("text").notNull(); note.addStringProperty("comment"); note.addDateProperty("date"); } private static void addCustomerOrder(Schema schema) { Entity customer = schema.addEntity("Customer"); customer.addIdProperty(); customer.addStringProperty("name").notNull(); Entity order = schema.addEntity("Order"); order.setTableName("ORDERS"); // "ORDER" is a reserved keyword order.addIdProperty(); Property orderDate = order.addDateProperty("date").getProperty(); Property customerId = order.addLongProperty("customerId").notNull().getProperty(); order.addToOne(customer, customerId); ToMany customerToOrders = customer.addToMany(order, customerId); customerToOrders.setName("orders"); customerToOrders.orderAsc(orderDate); } }
直接运行,代码生成
自动生成model和dao,随便看一个model类:
package com.young.do;// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. Enable "keep" sections if you want to edit. /** * Entity mapped to table "NOTE". */public class Note { private Long id; /** Not-null value. */ private String text; private String comment; private java.util.Date date; public Note() { } public Note(Long id) { this.id = id; } public Note(Long id, String text, String comment, java.util.Date date) { this.id = id; this.text = text; this.comment = comment; this.date = date; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } /** Not-null value. */ public String getText() { return text; } /** Not-null value; ensure this value is available before it is saved to the database. */ public void setText(String text) { this.text = text; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } public java.util.Date getDate() { return date; } public void setDate(java.util.Date date) { this.date = date; }}
在安卓中使用greenDAO
首先加入greendao.jar包,并把java工程中生成的类复制到安卓工程中。然后就可以进行增删改查了,具体代码如下。
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);DevOpenHelper helper = new DaoMaster.DevOpenHelper(this,"greendao_test.db", null);SQLiteDatabase db = helper.getWritableDatabase();DaoMaster daoMaster = new DaoMaster(db);DaoSession daoSession = daoMaster.newSession();final NoteDao noteDao = daoSession.getNoteDao();// noteDao.insertInTx(new ArrayList<Note>(), true);findViewById(R.id.but).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubNote note = new Note();note.setDate(new Date());note.setId(System.currentTimeMillis());note.setText("ttteesstt");noteDao.insert(note);}});findViewById(R.id.get).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubList<Note> l = noteDao.loadAll();StringBuilder builder = new StringBuilder();for (Note note : l) {builder.append(note.getId()).append(" ").append(note.getText()).append(" ").append(note.getDate()).append("\n");}Toast.makeText(getApplicationContext(), builder, 1).show();}});}}
由于NoteDao继承自AbstractDao,所以可以直接调用各种增删改查方法
0 0
- 安卓ORM框架greenDAO
- 最好的安卓数据库ORM框架greenDao使用详解(一)
- Android Orm框架(GreenDao)
- ORM框架GreenDao
- ORM框架GreenDao使用
- greenDao---orm框架
- Android Orm框架(GreenDao)
- ORM框架-GreenDao
- ORM 框架之 GreenDao
- GreenDao开源ORM框架浅析
- android数据库ORM框架GreenDao
- Android ORM框架GreenDao用法
- 使用ORM数据库框架greenDao
- Android ORM框架 greenDao使用
- Android ORM框架 greenDAO 使用方法
- Android ORM 框架之 greenDAO
- Android ORM 框架之 greenDAO
- Android ORM 框架之 greenDAO
- Hadoop集群_MapReduce初级案例
- bzoj3576: [Hnoi2014]江南乐
- JavaScript实现表格的排序
- 数据链路层
- jquery弹窗
- 安卓ORM框架greenDAO
- CSS3变形与动画上
- Android Studio上方便使用butterknife注解框架的偷懒插件Android Butterknife Zelezny
- 隐马尔可夫模型(二)--- viterbi算法
- ant 基础
- 最大子序列和求解 最优算法O(N)
- C++中的sizeof(struct)
- WebSocket聊天
- elk 日志分析系统