Android 使用com.j256.ormlite
在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); } @Override public 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); } } @Override public 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; /** 标题 */ @DatabaseField public String title; /** 标题 */ @DatabaseField public int position; public POTest(long _id, String title, int position) { super(); this._id = _id; this.title = title; this.position = position; } public POTest() { super(); } }
Android 使用com.j256.ormlite的更多相关文章
- (转)Android 使用com.j256.ormlite
在web开发中经常采用的hibernate,在android也提供了一个ormlite 导入所需jar包后 摘自:http://blog.csdn.net/cuiran/article/details ...
- 【Android - 框架】之ORMLite的使用
Android中有很多操作SQLite数据库的框架,现在最常见.最常用的是ORMLite和GreenDAO.ORMLite相比与GreenDAO来说是一个轻量级的框架,而且学习成本相对较低.所以这个帖 ...
- Android 快速开发系列 ORMLite 框架最佳实践
比较靠谱的Helper的写法: 1.DatabaseHelper package com.zhy.zhy_ormlite.db; import java.sql.SQLException; impor ...
- Android 快速开发系列 ORMLite 框架最佳实践之实现历史记录搜索
首先在build.gald中添加compile 'com.j256.ormlite:ormlite-android:4.48'的引用 compile 'com.j256.ormlite:ormlite ...
- [ 转]Android快速开发–使用ORMLite操作数据库
OrmLite是一个数据库操作辅助的开源框架,主要面向Java语言.在Android面向数据库开发中,是一个比较流行的开源框架,方便操作而且功能强大,今天来学习一下,最近的项目中也有所涉及,写个博客来 ...
- android数据库持久化框架, ormlite框架,
前言 Android中内置了SQLite,但是对于数据库操作这块,非常的麻烦.其实可以试用第3方的数据库持久化框架对之进行结构上调整, 摆脱了访问数据库操作的细节,不用再去写复杂的SQL语句.虽然这样 ...
- [BUG集] android 安卓项目中ORMLITE框架 Must specify one of id, generatedId, and generatedIdSequence with Id
使用ORM框架ORMLITE有一段时间,今天在操作一个对象的时候,重新运行报错如下: Must specify one of id, generatedId, and generatedIdSeque ...
- Android Ormlite 学习笔记1 -- 基础
Ormlite 是一个开源Java数据实体映射框架.其中依赖2个核心类库: 1.ormlite-android-4.48.jar 2.ormlite-core-4.48.jar 新建项目,引用上面2个 ...
- Android 数据库框架OrmLite的使用(一)
在这里记录下最基本的用法,官网上可了解相关的介绍. 1.下载OrmLite jar 在下载android的:ormlite-android-4.48.jar和ormlite-core-4.48.jar ...
随机推荐
- 【C#复习总结】匿名类型由来
1 属性 这得先从属性开始说,为什么外部代码访问对象内部的数据用属性而不是直接访问呢,这样岂不是更方便一些,但是事实证明直接访问是不安全的.那么,Anders Hejlsberg(安德斯·海尔斯伯格) ...
- PHP 5 Directory 函数
PHP Directory 简介 Directory 函数允许您获得关于目录及其内容的信息. 安装 PHP Directory 函数是 PHP 核心的组成部分.无需安装即可使用这些函数. PHP 5 ...
- 阅读源码(III)
往期系列: <由阅读源码想到> <由阅读源码想到 | 下篇> Medium上有一篇文章Why You Don't Deserve That Dream Developer Jo ...
- (译)快速指南:用UIViewPropertyAnimator做动画
翻译自:QUICK GUIDE: ANIMATIONS WITH UIVIEWPROPERTYANIMATOR 译者:Haley_Wong iOS 10 带来了一大票有意思的新特性,像 UIViewP ...
- Scala:函数和闭包
http://blog.csdn.net/pipisorry/article/details/52902271 Scala函数 Scala 有函数和方法,二者在语义上的区别很小.Scala 方法是类的 ...
- ORACLE数据库管理常用查询语句
/*查看表空间的名称及大小*/ SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tabl ...
- Android新建工程步骤(AndroidStudio)
1.在 Android Studio 中,创建新项目: 如果您未打开项目,请在 Welcome to Android Studio 窗口中,点击 Start a new Android Studio ...
- Servlet规范总结
Servlet接口 Servlet规范的核心接口即是Servlet接口,它是所有Servlet类必须实现的接口,在Java Servelt API中已经提供了两个抽象类方便开发者实现Servlet类, ...
- studio中碰到的jni问题:java.lang.UnsatisfiedLinkError
转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52606328 studio中碰到 ...
- redhat7 上安装dummynet
更多请访问 http://www.webpersonaldeveloper.cn 摘要: 在redhat 上部署dummynet 需要将ipfw 编译为内核模块,而ipfw需要调用linux kern ...