在web开发中经常采用的hibernate,在android也提供了一个ormlite

导入所需jar包后

/** * SQLiteHelperOrm.java * 版权所有(C) 2014 * 创建者:cuiran 2014-2-12 下午3:18:40 */package com.ghyf.mplay.database;import java.sql.SQLException;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import com.ghyf.mplay.application.BaseCookie;import com.ghyf.mplay.po.POPriorityText;import com.ghyf.mplay.po.POTest;import com.ghyf.mplay.util.LogUtil;import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;import com.j256.ormlite.support.ConnectionSource;import com.j256.ormlite.table.TableUtils;/** * TODO  * @author cuiran * @version 1.0.0 */public class SQLiteHelperOrm extends OrmLiteSqliteOpenHelper {private static final String TAG="SQLiteHelperOrm";private static final String DATABASE_NAME = "mplay.db";private static final int DATABASE_VERSION = 3;public SQLiteHelperOrm(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION);}public SQLiteHelperOrm() {super(BaseCookie.getContext(), DATABASE_NAME, null, DATABASE_VERSION);}@Overridepublic void onCreate(SQLiteDatabase db, ConnectionSource connectionSource) {try {TableUtils.createTable(connectionSource, POTest.class);TableUtils.createTable(connectionSource, POPriorityText.class);} catch (SQLException e) {LogUtil.e(TAG,"onCreate",e);}}@Overridepublic void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int arg2, int arg3) {try {TableUtils.dropTable(connectionSource, POTest.class, true);TableUtils.dropTable(connectionSource, POPriorityText.class, true);onCreate(db, connectionSource);} catch (SQLException e) {LogUtil.e(TAG,"onUpgrade",e);}}}

/** * DbHelper.java * 版权所有(C) 2014 * 创建者:cuiran 2014-2-12 下午3:37:07 */package com.ghyf.mplay.database;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import java.util.Map;import android.annotation.TargetApi;import android.content.ContentValues;import android.os.Build;import com.ghyf.mplay.util.LogUtil;import com.j256.ormlite.dao.Dao;import com.j256.ormlite.stmt.UpdateBuilder;/** *  DbHelper 数据库操作类 * @author cuiran * @version 1.0.0 */public class DbHelper<T> {private static final String TAG="DbHelper";/** 新增一条记录 */public int create(T po) {SQLiteHelperOrm db = new SQLiteHelperOrm();try {Dao dao = db.getDao(po.getClass());return dao.create(po);} catch (SQLException e) {LogUtil.e(TAG,"create",e);} finally {if (db != null)db.close();}return -1;}public boolean exists(T po, Map<String, Object> where) {SQLiteHelperOrm db = new SQLiteHelperOrm();try {Dao dao = db.getDao(po.getClass());if (dao.queryForFieldValues(where).size() > 0) {return true;}} catch (SQLException e) {LogUtil.e(TAG,"exists",e);} finally {if (db != null)db.close();}return false;}public int createIfNotExists(T po, Map<String, Object> where) {SQLiteHelperOrm db = new SQLiteHelperOrm();try {Dao dao = db.getDao(po.getClass());if (dao.queryForFieldValues(where).size() < 1) {return dao.create(po);}} catch (SQLException e) {LogUtil.e(TAG,"createIfNotExists",e);} finally {if (db != null)db.close();}return -1;}/** 查询一条记录 */public List<T> queryForEq(Class<T> c, String fieldName, Object value) {SQLiteHelperOrm db = new SQLiteHelperOrm();try {Dao dao = db.getDao(c);return dao.queryForEq(fieldName, value);} catch (SQLException e) {LogUtil.e(TAG,"queryForEq",e);} finally {if (db != null)db.close();}return new ArrayList<T>();}/** 删除一条记录 */public int remove(T po) {SQLiteHelperOrm db = new SQLiteHelperOrm();try {Dao dao = db.getDao(po.getClass());return dao.delete(po);} catch (SQLException e) {LogUtil.e(TAG,"remove",e);} finally {if (db != null)db.close();}return -1;}/** * 根据特定条件更新特定字段 *  * @param c * @param values * @param columnName where字段 * @param value where值 * @return */@TargetApi(Build.VERSION_CODES.HONEYCOMB)public int update(Class<T> c, ContentValues values, String columnName, Object value) {SQLiteHelperOrm db = new SQLiteHelperOrm();try {Dao dao = db.getDao(c);UpdateBuilder<T, Long> updateBuilder = dao.updateBuilder();updateBuilder.where().eq(columnName, value);for (String key : values.keySet()) {updateBuilder.updateColumnValue(key, values.get(key));}return updateBuilder.update();} catch (SQLException e) {LogUtil.e(TAG,"update",e);} finally {if (db != null)db.close();}return -1;}/** 更新一条记录 */public int update(T po) {SQLiteHelperOrm db = new SQLiteHelperOrm();try {Dao dao = db.getDao(po.getClass());return dao.update(po);} catch (SQLException e) {LogUtil.e(TAG,"update",e);} finally {if (db != null)db.close();}return -1;}/** 查询所有记录 */public List<T> queryForAll(Class<T> c) {SQLiteHelperOrm db = new SQLiteHelperOrm();try {Dao dao = db.getDao(c);return dao.queryForAll();} catch (SQLException e) {LogUtil.e(TAG,"queryForAll",e);} finally {if (db != null)db.close();}return new ArrayList<T>();}}

新建一个PO

/** * POTest.java * 版权所有(C) 2014 * 创建者:cuiran 2014-2-12 下午3:25:08 */package com.ghyf.mplay.po;import com.j256.ormlite.field.DatabaseField;import com.j256.ormlite.table.DatabaseTable;/** *  POTest DB的测试PO * @author cuiran * @version 1.0.0 */@DatabaseTable(tableName = "test")public class POTest {@DatabaseField(generatedId = true)public long _id;/** 标题 */@DatabaseFieldpublic String title;/** 标题 */@DatabaseFieldpublic int position;public POTest(long _id, String title, int position) {super();this._id = _id;this.title = title;this.position = position;}public POTest() {super();}}


更多相关文章

  1. 记录一下maven android 的启动命令
  2. Android(安卓)NDK Cmake学习记录
  3. Android手机用户隐私获取,包括读取通讯录、读取通话记录、读取浏
  4. Android(安卓)Studio Arctic Fox | 2020.3.1、Gradle 7.0升级记
  5. [置顶] 我的Android进阶之旅------>Android电话窃听实例
  6. 记录一下maven android 的启动命令
  7. android 通话记录次数
  8. ANDROID 编译源码6.0 问题记录
  9. Android(安卓)Contacts的使用(一)

随机推荐

  1. Python 浮点数的冷知识
  2. Python 为什么要保留显式的 self ?
  3. Android入门进阶教程(5)-android 常用组
  4. 当Google忙着忽悠Android的时候,各位别忘
  5. 通过Linux Shell实现Android横竖屏切换
  6. ANDROID 中handler类的使用
  7. CountDownTimer浅析
  8. android 7.0平台客制化虚拟导航按键(隐藏
  9. 修改Android(安卓)Studio的Android(安卓)
  10. Unity开发备忘录000011:Unity发布Android