android面向对象数据库db40日趋成熟.这里简单写了一个demo供大家参考.

首先,定义了一个操作数据库的带泛型T的接口.这一步并不是必须的,但是有通用的好处.


package cn.welcone.mobileguarder.dao;import java.io.File;import java.util.List;import android.app.Application;import android.content.Context;import cn.welcone.mobileguarder.MyApplication;import com.db4o.Db4oEmbedded;import com.db4o.ObjectContainer;import com.db4o.ObjectSet;import com.db4o.query.Predicate;public  class BaseDb40Helper<T>  implements IDb40Helper<T>{    private   ObjectContainer objectContainer;    private   Context context;                                                                                                                                   public  String  getDB4Path(String databaseName){        return  new File(context.getExternalFilesDir(null),databaseName+".data").getPath();    }                                                                                                                                   public BaseDb40Helper( Context context,String databaseName) {        this.context = context;        objectContainer = Db4oEmbedded.openFile(Db4oEmbedded.newConfiguration(), getDB4Path(databaseName));    }    @Override    public void add(List<T> ts) {        for (T t : ts) {            objectContainer.store(t);        }    }    /**     * 采用回调的方式来查询结果     * 传入一个predicate对象,在其中书写条件即可     */    public List<T> get(Predicate<T> predicate) {        return objectContainer.query(predicate);    };     /*     * 根据查询条件进行得到一些结果集,然后对这些进行操作,最后再全部存储起来.     */    @Override    public void update(Predicate<T> predicate , UpdateOperation<T> updateOperation) {        List<T> resultSet = get(predicate);        for (T t : updateOperation.updateOPeration(resultSet)) {            objectContainer.store(t);        }    }    @Override    public void delete(Predicate<T> predicate) {        for (T t : objectContainer.query(predicate)) {            objectContainer.delete(t);        }    }                                                                                                                               }

然后,写了一个实现类

package cn.welcone.mobileguarder.dao;import java.io.File;import java.util.List;import android.app.Application;import android.content.Context;import cn.welcone.mobileguarder.MyApplication;import com.db4o.Db4oEmbedded;import com.db4o.ObjectContainer;import com.db4o.ObjectSet;import com.db4o.query.Predicate;public  class BaseDb40Helper<T>  implements IDb40Helper<T>{    private   ObjectContainer objectContainer;    private   Context context;                                                                                                                               public  String  getDB4Path(String databaseName){        return  new File(context.getExternalFilesDir(null),databaseName+".data").getPath();    }                                                                                                                               public BaseDb40Helper( Context context,String databaseName) {        this.context = context;        objectContainer = Db4oEmbedded.openFile(Db4oEmbedded.newConfiguration(), getDB4Path(databaseName));    }    @Override    public void add(List<T> ts) {        for (T t : ts) {            objectContainer.store(t);        }    }    /**     * 采用回调的方式来查询结果     * 传入一个predicate对象,在其中书写条件即可     */    public List<T> get(Predicate<T> predicate) {        return objectContainer.query(predicate);    };     /*     * 根据查询条件进行得到一些结果集,然后对这些进行操作,最后再全部存储起来.     */    @Override    public void update(Predicate<T> predicate , UpdateOperation<T> updateOperation) {        List<T> resultSet = get(predicate);        for (T t : updateOperation.updateOPeration(resultSet)) {            objectContainer.store(t);        }    }    @Override    public void delete(Predicate<T> predicate) {        for (T t : objectContainer.query(predicate)) {            objectContainer.delete(t);        }    }                                                                                                                           }


最后使用的时候,将BaseDb40Helper new出来即可.

需要注意的问题是:

1)需要下载db40支持的jar包.加到libs下面即可使用

2)domain必须是标准的javabean

参考文档在下载包doc目录下.

需要该demo的可以到我的下载中心下载.

更多相关文章

  1. android平台上的文件下载,文件和文件的操作
  2. Android 文件操作
  3. GreenDao —— 简单快速操作 Android SQLite 数据库
  4. Android学习笔记(九) Android文件读写操作
  5. 〖Android〗dropbear一些操作命令备忘
  6. Android软件开发之获取通讯录联系人信息 + android联系人信息的
  7. 33、Android 中子fragment控制父对象改变布局

随机推荐

  1. 网络请求工具类WebServiceUtils
  2. 阅读《Android(安卓)从入门到精通》(33)—
  3. Android(安卓)播放 Gif 图片控件
  4. Android实现图片 高斯模糊,以及图片镜像
  5. 彻底解决Android(安卓)studio中文乱码问
  6. 创建android SDK开发环境
  7. Android(安卓)Animations动画使用详解
  8. [置顶] android:autoLink
  9. android平台开发下 密钥管理
  10. android 网络状态