greenDAO 使用初体验
来源:互联网 发布:mash up软件下载 编辑:程序博客网 时间:2024/05/28 15:07
1: 使用的架包:greenDAO-generator.jar ,freemarker.jar,greenDAO.jar
2: 在同一个classpath 路径下建立一个javaProject
3: 引入架包 greenDAO-generator.jar,freemarker.jar
4:编写bean类,dao类,DaoMaster,DaoSession 生成器 代码如下:
package com.guanzhi.daogenerator;
import java.io.IOException;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema;
public class MyDaoGenerator {
public static void main(String[] args) {
Schema schema = new Schema(3, "com.example.db");
addNote(schema);
try {
new de.greenrobot.daogenerator.DaoGenerator().generateAll(schema,
"../GrenDaoTest/src-gen");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void addNote(Schema schema) {
Entity note = schema.addEntity("Person");
note.addIdProperty().autoincrement();
note.addStringProperty("name").notNull();
note.addStringProperty("age").notNull();
note.addStringProperty("color").notNull();
note.addDateProperty("date");
}
}
7: 生成的结构如下图:
8:编写BaseApplication实例化,DaoMaster,DaoSession
package com.guanzhi.daogenerator;
import java.io.IOException;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema;
public class MyDaoGenerator {
public static void main(String[] args) {
Schema schema = new Schema(3, "com.example.db");
addNote(schema);
try {
new de.greenrobot.daogenerator.DaoGenerator().generateAll(schema,
"../GrenDaoTest/src-gen");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void addNote(Schema schema) {
Entity note = schema.addEntity("Person");
note.addIdProperty().autoincrement();
note.addStringProperty("name").notNull();
note.addStringProperty("age").notNull();
note.addStringProperty("color").notNull();
note.addDateProperty("date");
}
}
5:运行上面的工程
6:如果报src错误,请在指定工程下新建src-gen目录
7: 生成的结构如下图:
8:编写BaseApplication实例化,DaoMaster,DaoSession
package com.example.application;import com.example.db.DaoMaster;import com.example.db.DaoSession;import com.example.db.DaoMaster.DevOpenHelper;import android.app.Application;import android.content.Context;import android.database.sqlite.SQLiteDatabase;public class BaseApplication extends Application {private static BaseApplication mInstance;private static final String DB_NAME = "pp-dbs";private static DaoMaster mDaoMaster;private static DaoSession mDaoSession;@Overridepublic void onCreate() {// TODO Auto-generated method stubsuper.onCreate();if (mInstance == null)mInstance = this;}public static DaoMaster getDaoMaster(Context context) {if (mDaoMaster == null) {DevOpenHelper openHelper = new DevOpenHelper(context, DB_NAME, null);SQLiteDatabase db = openHelper.getWritableDatabase();mDaoMaster = new DaoMaster(db);}return mDaoMaster;};public static DaoSession getDaoSession(Context context) {if (mDaoSession == null) {if (mDaoMaster == null) {getDaoMaster(context);}mDaoSession = mDaoMaster.newSession();}return mDaoSession;}}
9:数据操作工具类;package com.example.db;import java.util.List;import com.example.application.BaseApplication;import android.content.Context;public class DbService { private final String TAG = DbService. class .getSimpleName(); private static DbService mInstance; private static Context mContext; private DaoSession mDaoSession ; public PersonDao mPersonDao ; private DbService() { } public static DbService getInstance(Context context) { if (mInstance == null) { mInstance = new DbService(); if (mContext == null) { mContext = context.getApplicationContext(); } mInstance .mDaoSession = BaseApplication.getDaoSession(context); mInstance .mPersonDao = mInstance .mDaoSession .getPersonDao(); } return mInstance ; } /** * 获取所有数据 * * @return */ public List<Person> getAllPerson() { return mPersonDao .loadAll(); } /** * 插入数据 * * @param pp * @return */ public long savePerson(Person pp) { return mPersonDao .insert(pp); } /** * 删除数据 * * @param pp */ public void deletePerson(Person pp) { mPersonDao .delete(pp); } public void deletePersonDetail( long id){ mPersonDao .deleteByKey(id); } public void deleteAllData(){ mPersonDao .deleteAll(); } /** * 更新数据 * * @param pp */ public void updatePerson(Person pp) { mPersonDao .update(pp); } /** * 根据id 获取数据 * * @param id * @return */ public Person loadPeron( long id) { return mPersonDao .load(id); } /** * 根据条件查询 */ public List<Person> queryPerson(String where, String... params) { return mPersonDao .queryRaw(where, params); }}10:测试 package com.example.grendaotest;import java.util.Date;import java.util.Iterator;import java.util.List;import java.util.Random;import com.example.db.DaoMaster;import com.example.db.DaoSession;import com.example.db.DaoMaster.DevOpenHelper;import com.example.db.DbService;import com.example.db.Person;import com.example.db.PersonDao;import com.example.db.PersonDao.Properties;import android.os.Bundle;import android.app.Activity;import android.database.sqlite.SQLiteDatabase;import android.util.Log;import android.view.Menu;public class MainActivity extends Activity { DbService mDbService; private final String TAG = MainActivity.class.getSimpleName(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mDbService = DbService.getInstance(this); // Log.e(TAG, "已经插入数据个数:" + createPersonData().size()); mDbService.deleteAllData(); createPersonData();// deletePer(); getDataWhere() ; } /** * 删除年龄为100的person */ public void deletePer() { for (Iterator<Person> oo = getData().iterator(); oo.hasNext();) { Person pp = oo.next(); if (pp.getAge().equals("100")) { mDbService.deletePerson(pp); } } getData(); } public List<Person> createPersonData() { for (int i = 0; i < 10; i++) { Person p = new Person(); p.setAge(99 + i + ""); p.setColor("红色"+i); p.setDate(new Date()); p.setName("张三" + i); mDbService.savePerson(p); } getData(); return mDbService.getAllPerson(); } private List<Person> getDataWhere() { System.out.println("**********************************************"); List<Person> dataperson; dataperson = (List<Person>) mDbService.mPersonDao.queryBuilder().where( Properties.Age.between("100", "105"),Properties.Color.eq("红色3")).list(); for (int i = 0; i < dataperson.size(); i++) { Log.e(TAG, dataperson.get(i).getAge()); } System.out.println("**********************************************"); return dataperson; } private List<Person> getData() { System.out.println("一共有" + mDbService.getAllPerson().size() + "条数据"); for (Iterator<Person> ii = mDbService.getAllPerson().iterator(); ii .hasNext();) { Log.e(TAG, "年龄=" + "\n" + ii.next().getAge()); } return mDbService.getAllPerson(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; }}
其它详情,具体操作
参考文章:http://greendao-orm.com/documentation/how-to-get-started/
http://my.oschina.net/cheneywangc/blog/196354
http://www.w2bc.com/Article/20726
0 0
- greenDAO 使用初体验
- GreenDao初体验
- android个人笔记之greendao初体验
- GreenDao初体验——GreenDao与Android最新版本兼容性问题
- GreenDao使用
- GreenDAO使用
- GreenDao使用
- GreenDAO使用
- GreenDao使用
- GreenDao使用
- greenDao 使用
- GreenDao使用
- GreenDAO使用
- GreenDao使用
- greenDao使用
- GreenDao使用
- Android 初使用GreenDAO框架操作数据库
- 我的Android入门之路:一、初步接触之GreenDAO学习使用体验
- Leetcode Sort Colors
- php为Apache指定工作目录(虚拟目录)
- 道路模型--linear-parabolic model
- 事件监听机制
- SpringMVC-05 处理模型数据
- greenDAO 使用初体验
- Binary Tree Preorder Traversal
- 宁早不晚,美国想要汽车之间彼此对话
- 什么是回文数
- 微软100题(3) 最大子数组和
- [Linux]内存共享
- Leetcode Count and Say
- 使用git
- java中的注释