(转)Android 使用com.j256.ormlite

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

导入所需jar包后

摘自:http://blog.csdn.net/cuiran/article/details/24722885

[java] view plaincopy

  1. /**
  2. * SQLiteHelperOrm.java
  3. * 版权所有(C) 2014
  4. * 创建者:cuiran 2014-2-12 下午3:18:40
  5. */
  6. package com.ghyf.mplay.database;
  7. import java.sql.SQLException;
  8. import android.content.Context;
  9. import android.database.sqlite.SQLiteDatabase;
  10. import com.ghyf.mplay.application.BaseCookie;
  11. import com.ghyf.mplay.po.POPriorityText;
  12. import com.ghyf.mplay.po.POTest;
  13. import com.ghyf.mplay.util.LogUtil;
  14. import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
  15. import com.j256.ormlite.support.ConnectionSource;
  16. import com.j256.ormlite.table.TableUtils;
  17. /**
  18. * TODO
  19. * @author cuiran
  20. * @version 1.0.0
  21. */
  22. public class SQLiteHelperOrm extends OrmLiteSqliteOpenHelper {
  23. private static final String TAG="SQLiteHelperOrm";
  24. private static final String DATABASE_NAME = "mplay.db";
  25. private static final int DATABASE_VERSION = 3;
  26. public SQLiteHelperOrm(Context context) {
  27. super(context, DATABASE_NAME, null, DATABASE_VERSION);
  28. }
  29. public SQLiteHelperOrm() {
  30. super(BaseCookie.getContext(), DATABASE_NAME, null, DATABASE_VERSION);
  31. }
  32. @Override
  33. public void onCreate(SQLiteDatabase db, ConnectionSource connectionSource) {
  34. try {
  35. TableUtils.createTable(connectionSource, POTest.class);
  36. TableUtils.createTable(connectionSource, POPriorityText.class);
  37. } catch (SQLException e) {
  38. LogUtil.e(TAG,"onCreate",e);
  39. }
  40. }
  41. @Override
  42. public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int arg2, int arg3) {
  43. try {
  44. TableUtils.dropTable(connectionSource, POTest.class, true);
  45. TableUtils.dropTable(connectionSource, POPriorityText.class, true);
  46. onCreate(db, connectionSource);
  47. } catch (SQLException e) {
  48. LogUtil.e(TAG,"onUpgrade",e);
  49. }
  50. }
  51. }

[java] view plaincopy

  1. /**
  2. * DbHelper.java
  3. * 版权所有(C) 2014
  4. * 创建者:cuiran 2014-2-12 下午3:37:07
  5. */
  6. package com.ghyf.mplay.database;
  7. import java.sql.SQLException;
  8. import java.util.ArrayList;
  9. import java.util.List;
  10. import java.util.Map;
  11. import android.annotation.TargetApi;
  12. import android.content.ContentValues;
  13. import android.os.Build;
  14. import com.ghyf.mplay.util.LogUtil;
  15. import com.j256.ormlite.dao.Dao;
  16. import com.j256.ormlite.stmt.UpdateBuilder;
  17. /**
  18. *  DbHelper 数据库操作类
  19. * @author cuiran
  20. * @version 1.0.0
  21. */
  22. public class DbHelper<T> {
  23. private static final String TAG="DbHelper";
  24. /** 新增一条记录 */
  25. public int create(T po) {
  26. SQLiteHelperOrm db = new SQLiteHelperOrm();
  27. try {
  28. Dao dao = db.getDao(po.getClass());
  29. return dao.create(po);
  30. } catch (SQLException e) {
  31. LogUtil.e(TAG,"create",e);
  32. } finally {
  33. if (db != null)
  34. db.close();
  35. }
  36. return -1;
  37. }
  38. public boolean exists(T po, Map<String, Object> where) {
  39. SQLiteHelperOrm db = new SQLiteHelperOrm();
  40. try {
  41. Dao dao = db.getDao(po.getClass());
  42. if (dao.queryForFieldValues(where).size() > 0) {
  43. return true;
  44. }
  45. } catch (SQLException e) {
  46. LogUtil.e(TAG,"exists",e);
  47. } finally {
  48. if (db != null)
  49. db.close();
  50. }
  51. return false;
  52. }
  53. public int createIfNotExists(T po, Map<String, Object> where) {
  54. SQLiteHelperOrm db = new SQLiteHelperOrm();
  55. try {
  56. Dao dao = db.getDao(po.getClass());
  57. if (dao.queryForFieldValues(where).size() < 1) {
  58. return dao.create(po);
  59. }
  60. } catch (SQLException e) {
  61. LogUtil.e(TAG,"createIfNotExists",e);
  62. } finally {
  63. if (db != null)
  64. db.close();
  65. }
  66. return -1;
  67. }
  68. /** 查询一条记录 */
  69. public List<T> queryForEq(Class<T> c, String fieldName, Object value) {
  70. SQLiteHelperOrm db = new SQLiteHelperOrm();
  71. try {
  72. Dao dao = db.getDao(c);
  73. return dao.queryForEq(fieldName, value);
  74. } catch (SQLException e) {
  75. LogUtil.e(TAG,"queryForEq",e);
  76. } finally {
  77. if (db != null)
  78. db.close();
  79. }
  80. return new ArrayList<T>();
  81. }
  82. /** 删除一条记录 */
  83. public int remove(T po) {
  84. SQLiteHelperOrm db = new SQLiteHelperOrm();
  85. try {
  86. Dao dao = db.getDao(po.getClass());
  87. return dao.delete(po);
  88. } catch (SQLException e) {
  89. LogUtil.e(TAG,"remove",e);
  90. } finally {
  91. if (db != null)
  92. db.close();
  93. }
  94. return -1;
  95. }
  96. /**
  97. * 根据特定条件更新特定字段
  98. *
  99. * @param c
  100. * @param values
  101. * @param columnName where字段
  102. * @param value where值
  103. * @return
  104. */
  105. @TargetApi(Build.VERSION_CODES.HONEYCOMB)
  106. public int update(Class<T> c, ContentValues values, String columnName, Object value) {
  107. SQLiteHelperOrm db = new SQLiteHelperOrm();
  108. try {
  109. Dao dao = db.getDao(c);
  110. UpdateBuilder<T, Long> updateBuilder = dao.updateBuilder();
  111. updateBuilder.where().eq(columnName, value);
  112. for (String key : values.keySet()) {
  113. updateBuilder.updateColumnValue(key, values.get(key));
  114. }
  115. return updateBuilder.update();
  116. } catch (SQLException e) {
  117. LogUtil.e(TAG,"update",e);
  118. } finally {
  119. if (db != null)
  120. db.close();
  121. }
  122. return -1;
  123. }
  124. /** 更新一条记录 */
  125. public int update(T po) {
  126. SQLiteHelperOrm db = new SQLiteHelperOrm();
  127. try {
  128. Dao dao = db.getDao(po.getClass());
  129. return dao.update(po);
  130. } catch (SQLException e) {
  131. LogUtil.e(TAG,"update",e);
  132. } finally {
  133. if (db != null)
  134. db.close();
  135. }
  136. return -1;
  137. }
  138. /** 查询所有记录 */
  139. public List<T> queryForAll(Class<T> c) {
  140. SQLiteHelperOrm db = new SQLiteHelperOrm();
  141. try {
  142. Dao dao = db.getDao(c);
  143. return dao.queryForAll();
  144. } catch (SQLException e) {
  145. LogUtil.e(TAG,"queryForAll",e);
  146. } finally {
  147. if (db != null)
  148. db.close();
  149. }
  150. return new ArrayList<T>();
  151. }
  152. }

新建一个PO

[java] view plaincopy

    1. /**
    2. * POTest.java
    3. * 版权所有(C) 2014
    4. * 创建者:cuiran 2014-2-12 下午3:25:08
    5. */
    6. package com.ghyf.mplay.po;
    7. import com.j256.ormlite.field.DatabaseField;
    8. import com.j256.ormlite.table.DatabaseTable;
    9. /**
    10. *  POTest DB的测试PO
    11. * @author cuiran
    12. * @version 1.0.0
    13. */
    14. @DatabaseTable(tableName = "test")
    15. public class POTest {
    16. @DatabaseField(generatedId = true)
    17. public long _id;
    18. /** 标题 */
    19. @DatabaseField
    20. public String title;
    21. /** 标题 */
    22. @DatabaseField
    23. public int position;
    24. public POTest(long _id, String title, int position) {
    25. super();
    26. this._id = _id;
    27. this.title = title;
    28. this.position = position;
    29. }
    30. public POTest() {
    31. super();
    32. }
    33. }
时间: 2024-07-30 09:25:40

(转)Android 使用com.j256.ormlite的相关文章

Android 快速开发系列 ORMLite 框架的使用

上一篇已经对ORMLite框架做了简单的介绍:Android ORMLite 框架的入门用法~~本篇将介绍项目可能会使用到的一些用法,也为我们的使用ORMLite框架总结出一个较合理的用法. 通过上一篇的了解,我们使用ORMLite,需要自己写一个DatabaseHelper去继承OrmLiteSqliteOpenHelper,下面我们首先给出一个我认为比较靠谱的Helper的写法: 1.DatabaseHelper package com.zhy.zhy_ormlite.db; import

Android 快速开发系列 ORMLite 框架最佳实践

上一篇已经对ORMLite框架做了简单的介绍:Android ORMLite 框架的入门用法~~本篇将介绍项目可能会使用到的一些用法,也为我们的使用ORMLite框架总结出一个较合理的用法. 通过上一篇的了解,我们使用ORMLite,需要自己写一个DatabaseHelper去继承OrmLiteSqliteOpenHelper,下面我们首先给出一个我认为比较靠谱的Helper的写法: 1.DatabaseHelper [java] view plaincopy package com.zhy.z

[BUG集] android 安卓项目中ORMLITE框架 Must specify one of id, generatedId, and generatedIdSequence with Id

使用ORM框架ORMLITE有一段时间,今天在操作一个对象的时候,重新运行报错如下: Must specify one of id, generatedId, and generatedIdSequence with Id 翻译:意思大概也就是必须要有其中一个  id  / generatedId / generatedIdSequence 再上下我的对象的源码: @DatabaseField(columnName = PaymentTempUploadTable.COLUMN_ID, id =

[ 转]Android快速开发–使用ORMLite操作数据库

OrmLite是一个数据库操作辅助的开源框架,主要面向Java语言.在Android面向数据库开发中,是一个比较流行的开源框架,方便操作而且功能强大,今天来学习一下,最近的项目中也有所涉及,写个博客来记一下吧,感谢大神团队贡献如此实用的开源框架,这里是OrmLite的官方网址:http://ormlite.com/ 准备工作–创建数据库及数据表 ORMlite通过Java注解的方式来建立起与数据库的映射关系,在这里我们以一个实例来进行说明,如我们现在想要建立一个简单的数据库test.db并创建一

android开源ORM框架OrmLite使用教程

OrmLite是一个轻量级的对象关系映射包,由Java语言开发.Github上有ormlite-core,ormlite-android,ormlite-examples,分别是主要库,android依赖和一些教程. 一.准备 为了在android上使用OrmLite,我们需要下载ormlite-core.jar和ormlite-android.jar放到项目目录下,然后: 1.创建一个类继承OrmLiteSqliteOpenHelper,实现两个抽象方法onCreate(SQLiteDatab

Android快速开发--使用ORMLite操作数据库

OrmLite是一个数据库操作辅助的开源框架,主要面向Java语言.在Android面向数据库开发中,是一个比较流行的开源框架,方便操作而且功能强大,今天来学习一下,最近的项目中也有所涉及,写个博客来记一下吧,感谢大神团队贡献如此实用的开源框架,这里是OrmLite的官方网址:http://ormlite.com/ 准备工作–创建数据库及数据表 ORMlite通过Java注解的方式来建立起与数据库的映射关系,在这里我们以一个实例来进行说明,如我们现在想要建立一个简单的数据库test.db并创建一

android 数据库使用之OrmLite

今天说的是数据库,我看了下别人大神的解决,结合我自己实际中用到的给大家讲解下ormlite数据库的使用 这个是需要导入的第三方jar包, 用过goolge的SqliteOpenHelper的都知道开始要继承OrmLiteSqliteOpenHelper这个类(这个谷歌官方的数据库有点类似). 重写它的onCreate(SQLiteDatabase sqliteDatabase, ConnectionSource connectionSource)创建数据库方法和onUpgrade(SQLiteD

Android ORMLite 框架的入门用法

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/39121377 大家在Android项目中或多或少的都会使用数据库,为了提高我们的开发效率,当然少不了数据库ORM框架了,尤其是某些数据库操作特别频繁的app:本篇博客将详细介绍ORMLite的简易用法. 下面开始介绍ORMLite的入门用法~ 1.下载 ORMLite Jar 首先去ORMLite官网下载jar包,对于Android为:ormlite-android-4.48.

android ORMlite的应用

ORMLite -轻量级的对象关系映射(ORM) 如果你需要在android中使用ORMLite 你需要进入官方网站http://ormlite.com/ 中下载 下载了这两个包以后,你还需要在对应的项目中配置这两个包 然后你就可以开始写你的数据库语句了!!! 我们一步一步来建立一个简单的ORMLite的小例子 我们要实现的也就是利用ORMLite来呈现一个列表集合 先来看布局文件 <LinearLayout xmlns:android="http://schemas.android.co