android 操作数据库框架 解决多线程 不用写SQL,千万别错过 [问题点数:20分,结帖人kechanghe0705]

一键查看最优答案

确认一键查看最优答案?
本功能为VIP专享,开通VIP获取答案速率将提升10倍哦!
Bbs6
本版专家分:7003
结帖率 82.76%
Bbs6
本版专家分:7003
Bbs4
本版专家分:1523
Bbs2
本版专家分:385
Android 一个应用多个数据库
最近在做一个 IM 的项目,需要存储大量数据到本地<em>数据库</em>。考虑到同一台手机可能会被多个账号登录使用,为了提升<em>数据库</em>查询的效率,以分库的方式来存储不同账号的数据(使用用户账号来作为<em>数据库</em>名称)。 以存储用户信息为例: 先贴出使用代码: mUserDAO = new UserDAO(this, account); // 此处的 account 就是要<em>操作</em>的<em>数据库</em>名称 mUserDAO.insert...
Android 使用Room 生成不了数据库文件
异常如下 java.lang.RuntimeException: cannot find implementation for com.snowman.myapplication.UserDatabase. UserDatabase_Impl does not exist com.snowman.myapplication.UserDatabase. UserDatabase_Impl does ...
Android应用框架数据库框架Room简介
Room是什么 Room是Android官方提供的一个<em>数据库</em><em>框架</em>,对Sqlite进行了一层抽象和封装,最开始Google出于对Android应用架构生态的考虑,作为应用架构的一部分开发了这个库,目前依然在维护和优化,不过已经从原来的仓库迁移到了<em>android</em>x系列组件下面。所以,后来者建议从<em>android</em>x开始。 Room的版本 老版本,即Pre-<em>android</em>x版本 包路径:<em>android</em>....
android不建议在主线程中读数据库
<em>数据库</em>的<em>操作</em>很重,一次读<em>写</em><em>操作</em>花费 10~20ms 是很常见的,这样的耗时很容易造成界面的卡顿。所以通常情况下,如果可以的话一定要避免在主线程中处理<em>数据库</em>。
【实战】android多线程下载(框架
github上有开源<em>框架</em>,xutils<em>框架</em>,这里给出地址点击打开链接,里面有很详细的介绍
Android数据库框架---------- 注解加反射,构建简单Sql数据库框架
有时公司不让使用三方<em>数据库</em><em>框架</em>,自己又不想一遍一遍的<em>写</em>增删改查。于是出于懒惰,就基于反射加注解,<em>写</em>了一个简单的<em>数据库</em><em>框架</em>。一 、先来看看使用。1) 首相要对要进行增删改查的数据对象进行注解配置,如下以Book类为例:@Table(name=&quot;booktwo&quot;) public class Book { @PrimaryKey @Column(name=&quot;b_id&quot;) public Stri...
1.Android多线程操作sqlite数据库
当你在<em>多线程</em>中只使用一个<em>SQL</em>iteDatabase的引用时,需要格外注意你<em>SQL</em>iteDataBase.close()调用的时机,因为你是使用的同一个引用,比如在一个线程中当一个Add<em>操作</em>结束后立刻关闭了<em>数据库</em>连接,而另一个现场中正准备执行查询<em>操作</em>,但此时db已经被关闭了,然后就会报异常错误。此时一般有三种<em>解决</em>方案, ①简单粗暴给所有的CRUD添加一个 synchronized关键字; ②永...
android多线程访问SQL数据库要怎么做?对SQL进行文件读
求大神指点,最好有一个小demo。。。谢谢了!!对<em>SQL</em>进行文件读<em>写</em>
Android数据库框架之GreenDao
GreenDao的好处我就不多说了,看了下面3篇文章,对GreenDao的使用相信大家一定会有所收获。 Android GreenDao使用教程 Android<em>框架</em>之GreenDao3.2.2的使用 GreenDAO的一些配置 ...
Android-一个简单的面向对象的Android的轻量级数据库框架
一个简单的面向对象的轻量级<em>数据库</em><em>框架</em>,简化了Android开发中<em>操作</em><em>数据库</em>的繁琐过程,将面向过程的业务逻辑封装,完全的零Sql语句。
Android最好用的数据库框架——DBFLOW全面解析
前言 为什么说DBFLOW是最好用的<em>数据库</em><em>框架</em>?因为它综合了各个<em>数据库</em>的<em>框架</em>的优点,它比GreenDao要使用简单,同时又比ActiveAndroid性能高很多,它是一款<em>操作</em>简单又高效的ORM<em>框架</em>。 初始DBFLOW 官方介绍 根据官方介绍可以知道,DBFLOW是一个为Android设计的简单高效...
Android本地数据库基础操作|多线程操作数据库|数据库的增删改查|批量插入数据库|线程池基础使用|玉念聿辉
目录文章素材<em>数据库</em>1、认识一下<em>SQL</em>iteOpenHelper2、创建单例模式<em>SQL</em>iteOpenHelper3、单例模式下的增删改查线程池1、示列2、调用总结 文章素材 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本文素材来源于作者(玉念聿辉)的愚蠢<em>操作</em>,最近在一个项目有使用到本地<em>数据库</em>,一段猛如虎的<em>操作</em>下来后发现没法进行<em>多线程</em><em>操作</em>,大致是报一个<em>数据库</em>被...
Android直连MySql异步获取数据
最近做项目参考
【翻译】Android多线程下安全访问数据库
为了记录如何线程安全地访问你的Android<em>数据库</em>实例,我<em>写</em>下了这篇小小札记。文章中引用的项目代码请点击这里       假设你已编<em>写</em>了自己的 <em>SQL</em>iteOpenHelper。 publicclassDatabaseHelperextends<em>SQL</em>iteOpenHelper{...}         现在你想在不同的线程中对<em>数据库</em>进行<em>写</em>数据<em>操作</em>: // Thread 1Context c...
Android并发访问数据库
当你自己实现<em>SQL</em>iteOpenHelper public class DatabaseHelper extends <em>SQL</em>iteOpenHelper { ... } 在单独的线程中将数据<em>写</em>入<em>数据库</em>时 // Thread 1 Context context = getApplicationContext(); DatabaseHelper helper = new DatabaseHelp...
Android文件操作数据库多线程
SharedPreferences使用: SharedPreferences sp = getSharedPreferences(" name ",0);//获取SharedPreferences对象 SharedPreferences.Editor edit= sp.edit();//使得其可以编辑 edit.putString(“key”,value);//以键值对key-vlue 的方式存储...
关于Android连接远程数据库(mysql、oracle)
前提:假设远程有一个oracle的<em>数据库</em>,并且有一个已经连接(JDBC<em>操作</em>)了该DB的server(AndroidServer),IP为:http://192.168.0.12:8080/AndroidServer/。 测试程序功能:实现登录功能。 1,当然是先建一个Android 的 project啦 2,建一个HTTP的工具类HttpUtil来获得HttpRequest对象和Http
android 实现多线程socket通信(客户端到服务器端)
<em>android</em>4.0以后的版本对于在主线程中实现Socket
Android开发中通过远程API获取数据,只能在子线程中执行,如何获取线程返回的数据?
如题:想通过子线程获取的远程API返回的JSON数据,如何获取子线程中的数据?
android多线程访问服务器数据
<em>android</em><em>多线程</em>访问服务器数据
安卓通过实现点击按钮实现线程停止与开启
public class MainActivity extends Activity implements <em>android</em>.view.View.OnClickListener { Button bt1, bt2; Thread thread; protected void onCreate(Bundle savedInstanceState) { super.onCreate(sav
Android多线程下安全访问数据库
为了记录如何线程安全地访问你的Android<em>数据库</em>实例,我<em>写</em>下了这篇小小札记。文章中引用的项目代码请点击这里假设你已编<em>写</em>了自己的 <em>SQL</em>iteOpenHelper。 public class DatabaseHelper extends <em>SQL</em>iteOpenHelper { ... } 现在你想在不同的线程中对<em>数据库</em>进行<em>写</em>数据<em>操作</em>: // Thr...
Android 数据库框架
1、LitePal2、GreenDao3、OrmLite4、Realm , Realm 入门使用指南
Android数据库框架——GreenDao轻量级的对象关系映射框架,永久告别sqlite
GreenDao 介绍: greenDAO是一个对象关系映射(ORM)的<em>框架</em>,能够提供一个接口通过<em>操作</em>对象的方式去<em>操作</em>关系型<em>数据库</em>,它能够让你<em>操作</em><em>数据库</em>时更简单、更方便。如下图所示: 官网地址:http://greenrobot.org/greendao/ Github地址:https://github.com/greenrobot/greenDAO GreenDa
Android 项目实战框架汇总(持续更新)
我们做项目久了,都会用到很多开源的<em>框架</em>,今天我就把我所知道的一些好用的<em>框架</em>都汇总整理了一下,因为实在是大多了记不住,所以记下来方便以后使用,过程中参考了很多网上大牛们<em>写</em>的文章,绝无抄袭冒犯之意,就是根据自己的习惯重新修改整理分类了一下,希望对大家以后的开发有所帮助! 网络请求<em>框架</em> 图片相关<em>框架</em> 权限设置<em>框架</em> json解析<em>框架</em> 下拉刷新<em>框架</em> 图表<em>框架</em> <em>数据库</em>相关<em>框架</em> 日志相关框...
Android实战——Room的使用,升级没烦恼
前言 Room相比GreenDao而言是官方推荐的一个关于<em>数据库</em>的依赖库,Room更需要开发人员有较专业的<em>SQL</em><em>数据库</em>知识,它涉及到<em>SQL</em>的语法编<em>写</em>和<em>SQL</em><em>数据库</em>的升级,如果对<em>SQL</em>语法不懂的开发者来说,使用起来是很有难度的,但对于熟悉<em>SQL</em>语法的开发者来说,用起来比GreenDao好用许多 Room的简介 Room是Google提供的一个ORM库。Room提供了三个主要的组件: @Databa...
android Google Room数据库问题总结
cannot find implementation for com.im.room.AppDatabase. AppDatabase_Impl does not exist @Database(entities = {UserBean.class, ContactBean.class, AttentionUser.class, LabelBean.class}, version = 1) pu...
GreenDao 3.2.0 的基本使用
前言 Android开发中我们或多或少都会接触到<em>数据库</em>。Android中提供了一个占用内存极小的关系型<em>数据库</em>-<em>SQL</em>ite。虽然Android系统中提供了许多<em>操作</em><em>SQL</em>ite的API,但是我们还是需要手动去编<em>写</em><em>SQL</em>语句,这经常会出现一些莫名其妙的问题(
Android 数据库对比
一、常见<em>数据库</em>介绍 GreenDao 是为Android设计的对象关系映射(ORM)工具。它提供了对象到关系型<em>数据库</em><em>SQL</em>ite的相应接口。为了在Android工程中使用greenDao,需要创建另一个“生成器”工程,它的任务是在你的工程域里生成具体的代码。因此相比与其它ORM<em>框架</em>具有出众性能。 LitePal 是对象关系映射(ORM)模型。它使开发者使用<em>SQL</em>ite<em>数据库</em>变得非常容易。 你可
Android Room从入门到放弃
Android 2017 IO大会推出了官方<em>数据库</em><em>框架</em>:Room。Room其实就只是对原生的<em>SQL</em>ite API进行了一层封装。
Android中连接MySql数据库获取数据的简单实现
背景 一般情况下,Android与<em>数据库</em>中的数据进行交互都是通过调用api接口来实现的。但是今天我们就来尝试实现直接连接到MySql<em>数据库</em>获取数据的功能。 代码实现 demo很简单,xml布局文件显示的是一个按钮和一个textView控件。 点击按钮实现连接MySql<em>数据库</em>并获取表中的数据;textView用来显示获取的数据。代码如下: ...
【原创译文】深入理解Android为什么不允许Room数据库对象间(外键)引用
【原创译文】深入理解Android为什么不允许Room<em>数据库</em>对象间(外键)引用译者zhangphil@csdn注:当我开始使用Android Room技术时候,Room明确禁止对象间外键引用,让我感觉不可思议,也觉得不正常,因为对象间引用几乎是所有ORM<em>数据库</em>技术非常普遍的设计和理念,并且这对开发者来说无疑很友好很有用,为什么Android官方的Room却禁止了呢?看了这篇谷歌Android官方技
Android 多线程选型最全指南
本文由 qing的世界 授权投稿作者博客:https://juejin.im/post/5d3374cee51d4556bb4cd469上一篇文章我介绍了一些使用安卓多线...
Android例子源码解决多线程sqlite数据库锁定问题
<em>SQL</em>ite实质上是将数据<em>写</em>入一个文件,通常情况下,在应用的包名下面都能找到xxx.db的文件,拥有root权限的手机,可以通过adb shell,看到data/data/packagename/da
Android主线程阻塞处理及优化
一、前期基础知识储备 当一个应用程序启动之后,<em>android</em>系统会为这个应用程序创建一个主线程(Main Thread),它负责渲染视图,分发事件到响应监听器并执行,对界面进行轮询的监听。因此,一般也叫做“UI线程”(UI Thread)。 <em>android</em>系统不会给应用程序的多个元素组件建立多个线程来执行。一个视图(Activity)中的多个view组件运行在同一个UI线程当中。因此,多个view...
【代码实践】用Android Studio连接MySQL时遇到的问题(1)
1.首先根据https://blog.csdn.net/jakera/article/details/73694674进行连接 2.根据https://blog.csdn.net/lijava2002/article/details/78938462进行补充 3. new Thread(new Runnable() { @Override ...
SugarOrm使用
Android Studio SugarORM简介要说SugarORM之前不得不说ORM。ORM(Object-Relational Mapping)即对象关系映射模式,是Java开发中常用的技术。它的作用是在关系型<em>数据库</em>和业务实体对象之间作一个映射,这样,我们在具体的<em>操作</em>业务对象的时候,就不需要再去和复杂的<em>SQL</em>语句打交道,只需简单的<em>操作</em>对象的属性和方法。因为Android开发也是用Java语言
Android开发——数据库框架Suger遇到的大坑(Gson和Suger的复用Bean请见“大坑三”)
Android开发——<em>数据库</em><em>框架</em>Suger遇到的大坑(Gson和Suger的复用Bean请见“大坑三”)大坑一自己<em>写</em>了一个Demo按照官网以及GitHub上Suger的使用步骤完整走下来,Demo闪退,以插入数据为例 User user = new User("liao","123"); user.setUserName("liao"); user.setPassWo
关于Android架构组件Room的简单使用
前言:Room于2017年谷歌IO大会上被推出,当时伴随着推出的还有LiveData以及ViewModel。相比于如今Ormlite、GreenDao等<em>框架</em>的优势,Room自带支持LiveData与ViewModel。这篇文章只是简单的介绍下Room的使用,并不涉及LiveData与ViewModel的组合使用。后续文章再加上吧。废话不多说,进入正题。首先,导入使用Roomimplementati...
Android架构组件—Room 编译遇到的坑
编译错误 解 : Entuty 加 getter &amp; setter Schema 错误提示 Warning: //此时build是成功的。 Error:(13, 17) 警告: Schema export directory is not provided to the annotation processor so we cannot export the schema. ...
Android 根据用户创建多个数据库
最近开发一个app,需要在手机上建立<em>数据库</em>,存储本地数据。现在项目快要结束了,客户要求手机可以支持多个用户可以在一部手机登陆。具体就是第一个用户登陆后,第二个用户再登录发现<em>数据库</em>里的数据还是第一个用户的,不符合需求。因此先把登陆后的用户名使用静态变量储存把到Constant类里,然后再把<em>数据库</em>名指替换用户名,用户名从Constant类里拿。运行项目没有报错,但是改变用户后还是使用同一个<em>数据库</em>。de...
通过Sql语句和android封装好的方法控制SQLite数据库增删改查
person类属性有Intenger id,String name,Intenger  age,相应的构造方法和set get方法。 package com.xh.tx.dao; import java.util.ArrayList; import java.util.List; import <em>android</em>.content.Context; import <em>android</em>.databas
Android中GreenDao数据库框架的使用
之前就用过这个<em>数据库</em><em>框架</em>,一直没有事件<em>写</em>出来,今天终于有时间记录下啦。现在用的是3.2的版本,故以GreenDao的3.2的版本为主,记录下自己对这个<em>框架</em>的使用。1、了解GreenDao3.21)orm是对象与数据的映射,简而言之就是让java实体与<em>数据库</em>建立绑定的联系;2)我们所熟知的<em>数据库</em>又可分之为层次式<em>数据库</em>、网络式<em>数据库</em>和关系式<em>数据库</em>三种,然而我们在使用时有经常分为关系型和非关系型两种;关...
Android中多进程方式导致的全局Application的OnCreate多次被调用
这几天遇到一个比较纠结的bug,原因是集成了一个第三方推送的sdk,结果导致了所有的网络请求瘫痪了,也就是页面一直处于loading状态。经过几天的排查,终于发现原来是第三方的service是独立进程,会导致全局Application的OnCreate被多次调用,当第三方的服务启动或重启时,调用OnCreate,而我们自己的应用的服务是在这里启动和绑定的。所以我们的service绑定在了第三方推送
Android的数据库操作怎么简化成一个个类?大神有什么好框架推荐吗?
是这样的,我用PHP+MY<em>SQL</em>+<em>android</em>来实现对<em>数据库</em>的<em>操作</em>。但是问题来了,我不想每个Activity里重复<em>写</em>那么多的函数。就比如 private void sendRequestWithOk
Android 开发中遇到的 bug(4)
记录开发中遇到的 bug,不再让自己重复地被同样的 bug 折磨。
android Room框架学习
一、使用 1、build.gradle引入 compile &quot;<em>android</em>.arch.persistence.room:runtime:1.0.0&quot; annotationProcessor '<em>android</em>.arch.persistence.room:compiler:1.0.0' 如果少了第二行引入,会报错: Caused by: java.lang.RuntimeExceptio...
android sqlite多线程和异步加载数据库数据示例
提供了Android<em>多线程</em>访问<em>数据库</em>的示例,包含了最基本的<em>数据库</em><em>操作</em>以及采用CursorAdapter异步加载<em>数据库</em>数据示例
求一个android 多线程同时对访问SQL数据库进行操作的代码
我看了网上的连接基本都是翻译国外的一个人的,说的感觉也不是很清楚,代码也不全,求大神指导一下<em>android</em> <em>多线程</em>同时对<em>SQL</em><em>数据库</em>进行读<em>写</em><em>操作</em>的问题,要怎么做?最好能有个小demo,万分感谢 !!!!!!!!!!
Android开源框架集合分享-数据库
      上一次<em>写</em>到的图像加载,这次中间间隔的时间稍微长了一些,先对大家报个歉。说实话,差点把这个事情给忘了。亏得朋友的提醒,只顾整理忘记发了,真是罪过罪过。今天给大家分享的是在开源<em>框架</em>中的有关<em>数据库</em>的<em>框架</em>。      <em>数据库</em>这个东西了解后端的小伙伴都知道,对程序的来说是相当重要。因为数据是无价的,虽然现在有云存储,但是<em>数据库</em>这一关是躲不过去了。大家经常听到的mysql,sqlserver,DB...
Android开发之开源数据库框架LitePal
LitePal是一款开源的Android<em>数据库</em><em>框架</em>,采用对象关系映射(ORM)模式,将常用的<em>数据库</em>功能进行封装,不使用<em>SQL</em>语句就可以完成创建表以及表单的CRUD<em>操作</em>,并且很轻量级,几乎零配置。(它将开发中常用的一些<em>数据库</em>功能进行了封装,因此可以在不使用<em>SQL</em>语句的情况下实现对<em>数据库</em>的CRUD<em>操作</em>。) 依然,以MPD数据解析为例,后面可以发现之前建立的Representation正好是LiteP...
带大家熟悉Android全新的Room数据库框架
最近Android推出全新的<em>数据库</em><em>框架</em>Room,它与GreenDAO相似,基于ORM对象关系映射,属于轻量级且快速的<em>数据库</em>。对<em>SQL</em>ite语句封装成了对象,也就意味着我们可以直接<em>操作</em>对象,是我们熟悉的对象。 Room基于<em>SQL</em>ite,提供一个抽象层,可以快速访问<em>SQL</em>ite的所有功能。应用程序处理特殊的结构化数据,可以极大程度受益于本地数据的持久化。大多数使用场景是缓存关联的数据块。那样,尽管设...
android 各种数据库框架使用的Demo
<em>android</em> 各种<em>数据库</em><em>框架</em>使用的Demo<em>android</em> 各种<em>数据库</em><em>框架</em>使用的Demo<em>android</em> 各种<em>数据库</em><em>框架</em>使用的Demo<em>android</em> 各种<em>数据库</em><em>框架</em>使用的Demo
Android数据库框架设计一
前言Android开发中我们或多或少都会接触到<em>数据库</em>。Android中提供了一个占用内存极小的关系型<em>数据库</em>-<em>SQL</em>ite。虽然Android系统中提供了许多<em>操作</em><em>SQL</em>ite的API,但是我们还是需要手动去编<em>写</em><em>SQL</em>语句,这经常会出现一些莫名其妙的问题。所以便出现了许多ORM(对象关系映射)<em>框架</em>。其中比较著名的有GreenDao、OrmLite、Litepal等。    常用的数据<em>框架</em>:<em>数据库</em><em>框架</em>访...
自己整理的一个Android数据库工具框架
JTools for <em>android</em> 一个<em>数据库</em>工具<em>框架</em>和一些常用的方法整理 DbUtils: 数据列类型 public enum ColumnType { COLUMN,//普通数据列 PRIMARY,//主键值 UNIQUE, //数据列唯一限制 FOREIGN,//外健限制 EQUALS //对象相等默认的比较数据 } 对于数据列定
android不在坑系列一:数据库框架的选择
<em>android</em>不在坑系列一:<em>数据库</em><em>框架</em>的选择前言: 之前用过的litepal<em>数据库</em><em>框架</em>,郭大婶的维护的,还记得以前拿着帮同学做过几个毕业设计呢,没办法团支书当的苦逼了,同学一餐饭,喝顿酒,我心一软就帮着做毕设。觉得挺好用的,好吧回到正题 第一坑:效率问题去年公司准备做IM,ok,我负责封装<em>数据库</em>,当时就叫人去学习学习litepal,后面遇到了无数的坑,那个时候开发周期短,没调研,直接开干了,后面被测
手撸一个简易Android数据库框架
一、简述众所周知,移动端(不管是Android还是iOS)使用的<em>数据库</em>是Sqlite,这种小型的<em>数据库</em>很适合移动端存储大量的数据,使用上也跟mysql基本无差,但官方提供的API在<em>操作</em>性方面真不咋的,你必须掌握一定程度的sql语句,否则将很难驾驭。所以,有很多第三方的<em>数据库</em><em>框架</em>就开始流行,如:GreenDao、Litepal等。这些ORM<em>数据库</em><em>框架</em>,可以帮助开发者节省大量编<em>写</em><em>数据库</em><em>操作</em>代码的时间,...
找不到数据库的表,我用sql语句的,在问问是否要开辟一个子线程
09-19 11:25:32.349: E/<em>SQL</em>iteLog(28075): (1) no such table: classlist 09-19 11:25:32.358: D/AndroidRuntime(28075): Shutting down VM 09-19 11:25:32.358: W/dalvikvm(28075): threadid=1: thread exiting with uncaught exception (group=0xb4ea3288) 09-19 11:25:32.379: E/AndroidRuntime(28075): FATAL EXCEPTION: main 09-19 11:25:32.379: E/AndroidRuntime(28075): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kakabuli.phonesafe/com.kakabuli.phonesafe.CommonNumberActivity}: <em>android</em>.database.sqlite.<em>SQL</em>iteException: no such table: classlist (code 1): , while compiling: select count(*) from classlist 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.app.ActivityThread.access$600(ActivityThread.java:130) 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.os.Handler.dispatchMessage(Handler.java:99) 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.os.Looper.loop(Looper.java:137) 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.app.ActivityThread.main(ActivityThread.java:4745) 09-19 11:25:32.379: E/AndroidRuntime(28075): at java.lang.reflect.Method.invokeNative(Native Method) 09-19 11:25:32.379: E/AndroidRuntime(28075): at java.lang.reflect.Method.invoke(Method.java:511) 09-19 11:25:32.379: E/AndroidRuntime(28075): at com.<em>android</em>.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 09-19 11:25:32.379: E/AndroidRuntime(28075): at com.<em>android</em>.internal.os.ZygoteInit.main(ZygoteInit.java:553) 09-19 11:25:32.379: E/AndroidRuntime(28075): at dalvik.system.NativeStart.main(Native Method) 09-19 11:25:32.379: E/AndroidRuntime(28075): Caused by: <em>android</em>.database.sqlite.<em>SQL</em>iteException: no such table: classlist (code 1): , while compiling: select count(*) from classlist 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.database.sqlite.<em>SQL</em>iteConnection.nativePrepareStatement(Native Method) 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.database.sqlite.<em>SQL</em>iteConnection.acquirePreparedStatement(<em>SQL</em>iteConnection.java:882) 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.database.sqlite.<em>SQL</em>iteConnection.prepare(<em>SQL</em>iteConnection.java:493) 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.database.sqlite.<em>SQL</em>iteSession.prepare(<em>SQL</em>iteSession.java:588) 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.database.sqlite.<em>SQL</em>iteProgram.(<em>SQL</em>iteProgram.java:58) 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.database.sqlite.<em>SQL</em>iteQuery.(<em>SQL</em>iteQuery.java:37) 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.database.sqlite.<em>SQL</em>iteDirectCursorDriver.query(<em>SQL</em>iteDirectCursorDriver.java:44) 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.database.sqlite.<em>SQL</em>iteDatabase.rawQueryWithFactory(<em>SQL</em>iteDatabase.java:1314) 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.database.sqlite.<em>SQL</em>iteDatabase.rawQuery(<em>SQL</em>iteDatabase.java:1253) 09-19 11:25:32.379: E/AndroidRuntime(28075): at com.kakabuli.phonesafe.db.dao.CommonNumberDao.getGroupCount(CommonNumberDao.java:23) 09-19 11:25:32.379: E/AndroidRuntime(28075): at com.kakabuli.phonesafe.CommonNumberActivity$CommonNumberAdapter.getGroupCount(CommonNumberActivity.java:63) 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.widget.ExpandableListConnector.getCount(ExpandableListConnector.java:397) 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.widget.ListView.setAdapter(ListView.java:460) 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.widget.ExpandableListView.setAdapter(ExpandableListView.java:470) 09-19 11:25:32.379: E/AndroidRuntime(28075): at com.kakabuli.phonesafe.CommonNumberActivity.onCreate(CommonNumberActivity.java:39) 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.app.Activity.performCreate(Activity.java:5008) 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 09-19 11:25:32.379: E/AndroidRuntime(28075): at <em>android</em>.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
android sqlite数据库并发问题的详细描述和解决方案
线程A打开数据,正在使用<em>数据库</em>,这时cpu片段分到线程B,线程A挂起。线程B进入执行获取打开db时没有问题,线程B进行<em>操作</em>,在片段时间内数据<em>操作</em>完成,最后关闭<em>数据库</em>database.close()。线程B执行结束,线程A执行,插入数据或者其他<em>操作</em>。。。我靠,怎么<em>数据库</em>关闭了呢,然后抛出java.lang.IllegalStateException: attempt to re-open an already-closed object异常。
Android数据库框架总结
一:OrmLite 简述: 优点: 1.轻量级;2.使用简单,易上手;3.封装完善;4.文档全面。缺点:1.基于反射,效率较低(本人还没有觉得效率低);2.缺少中文翻译文档 jar包 地址:http://ormlite.com/releases/ 集成方法:把jar包复制到as的libs文件夹下,并且引用jar包即可 用于学习的相关博客: 我的博客
Android - Android Architecture Components - Room 在 Kotlin 中使用 (1)
参考文章Android Room 官方文档Room Persistence Library(官网文档翻译)在kotlin中使用room(Room Persistence Library)和遇到的坑Android官方ORM<em>框架</em>ROOM(Google I/O 2017)啰嗦对 Room 不了解的可以看上面文章就可以了,我就不做过多赘述。每个例子都有一个环境或场景,好吧,场景如下:描述用户拥有哪些书Use
windows连接安卓的sqlite数据库
1、先用adb连接安卓设备: path d:\<em>android</em>\<em>android</em>-sdk\platform-tools; adb connect 192.168.6.139 2、登录adb shell d: cd\<em>android</em>\<em>android</em>-sdk\platform-tools chcp 65001 adb shell 3、cd\mnt\sdcard\zzsy  进入<em>数据库</em>目录 sqli...
六款值得推荐的android(安卓)开源框架简介
1、volley 项目地址 https://github.com/smanikandan14/Volley-demo  (1)  JSON,图像等的异步下载;  (2)  网络请求的排序(scheduling)  (3)  网络请求的优先级处理  (4)  缓存  (5)  多级别取消请求  (6)  和Activity和生命周期的联动(Activity结束时同时取消所有网络请求
android下大家都用什么数据库框架
求一款开源的,比较流行的orm在<em>android</em>中
Android数据库高手秘籍(二)——创建表和LitePal的基本用法
上一篇文章中我们学习了一些Android<em>数据库</em>相关的基础知识,和几个颇为有用的<em>SQL</em>ite命令,都是直接在命令行<em>操作</em>的。但是我们都知道,<em>数据库</em>是要和程序结合在一起使用的,单独对一个<em>数据库</em>去进行増删改查<em>操作</em>并没有什么意义,因此今天我们就来学习一下如何在Android程序当中去<em>操作</em><em>SQL</em>ite<em>数据库</em>。 <em>操作</em><em>数据库</em>的第一步当然是创建表了,传统创建表的方法相信大多数人都知道,那么今天我除了会展示传统的建表方法之外,还会讲解LitePal这个<em>框架</em>的基本用法,并使用它来完成同样的建表<em>操作</em>,让大家体会到使用<em>框架</em>来<em>操作</em>数据
Android 数据库框架ormlite 使用精要
Android <em>数据库</em><em>框架</em>ormlite 使用精要前言本篇博客记录一下笔者在实际开发中使用到的一个<em>数据库</em><em>框架</em>,这个可以让我们快速实现<em>数据库</em><em>操作</em>,避免频繁手<em>写</em>sql,提高我们的开发效率,减少出错的机率。ormlite是什么?首先可以去它的官网看看www.ormlite.com,它的英文全称是Object Relational Mapping,意思是对象关系映射;如果接触过Java EE开发的,一定知道
Android greenDao 数据库的使用(二)
greenDao是什么?哈哈,自己百度下吧。这里主要讲下在<em>android</em>开发中,如何使用greenDao这个第三方的<em>数据库</em>。greenDao使用主要步骤可分为3: 一、利用一个java项目生成<em>数据库</em>实体类,Dao类(代码)等; 二、Android项目中引用步骤一中生成的类,以及初始化(本文章主要讲解内容); 三、<em>android</em>中具体的使用方式(增删改查),以及greenDao如何做<em>数据库</em>升级。
自己动手Android数据库框架
前言相信不少开发者跟我一样,每次都很烦恼自己<em>写</em><em>数据库</em>,而且那些<em>数据库</em>语句也经常记不住。当然网上也有很多很好的<em>数据库</em><em>框架</em>,你可以直接拿来用,但是 很多时候我们的项目,特别是一个小型的Andrond应用原本用到的<em>数据库</em>结构比较简单,没必要去用那些有点臃肿的<em>框架</em>。当然,即使你用那些<em>框架</em>,当你遇到问题时,你是否也得去修改它?你要修改别人的<em>框架</em>必须的读懂他人的设计代码。所以不管从那个角度出发,你都得掌握简单的
封装一个Android数据库框架
在Android中为开发者提供了<em>SQL</em>iteDatabase这个类且这个类提供了insert、delete、update、query。在我们平时开发中由于不像Web开发需要丰富的<em>数据库</em>功能,所以这四个已经足够满足我们了。所以开源世界里就冒出了很多功能强大的<em>数据库</em>开源<em>框架</em>,可以像我的应用中功能其实只是一点点不是很有必要把这么一个大<em>框架</em>都塞进去,说不定得不偿失。所以我们开始自己封装一个通用的<em>数据库</em><em>框架</em>。
Android数据库ORM框架用法、源码和性能比较分析
基本用法 LitePal LitePal是一款开源的Android<em>数据库</em><em>框架</em>,它采用了对象关系映射(ORM)的模式,LitePal很“轻”,jar包只有100k不到,使用起来也比较简单,源码地址为Github地址。首先需要引入lib,可以通过gradle引入也可以将下载的litepal.jar包直接放入libs目录下。然后需要在assets目录下新建一个litepal.xml文件,文件名称不能随
Android数据库框架--litepal的使用
在<em>写</em>项目的时候遇到了<em>数据库</em>的相关<em>操作</em>,Android 提供的<em>数据库</em>的创建和使用感觉有点小复杂,想着有没有比较好的轮子--<em>框架</em>或者工具类可以使用,结果发现了litepal,一个类似于hibernate,面向对象的方式对<em>数据库</em>进行开发。在万物皆对象的世界,使用起来觉得太爽了。 LitePal是一款开源的Android<em>数据库</em><em>框架</em>(https://github.com/LitePalFramewor
Android23之轻量级数据库存储(Sqlite)
Sqlite<em>数据库</em>:关系型<em>数据库</em>     一、特点与描述:                 1、Sqlite<em>数据库</em>,是一个非常轻量的关系型<em>数据库</em>(意思就是非常小,只占用内存的200多K),Android<em>框架</em>已经嵌入了sqlite原生库,                2、 sqlite3支持的数据类型:null、integer、text、real(实数)、blob(二进制大数据)  也支持其
Android之数据库—— 一个可配置的简易框架
前言 Android自带的Sqlite<em>数据库</em>是日常开发中必用的。这里介绍一种用xml形式配置<em>数据库</em>的简易<em>框架</em>(库)。 为什么要用这个<em>框架</em>? (1)因为XML格式的配置方式,层次明显,一目了然; (2)在扩展,对增减<em>数据库</em>中的表或者列,更加容易且不容易出错; (3)将配置统一在XML中,对以后的维护,会显得十分方便; (4)最后,是这个<em>框架</em>很简单。 一、设计 1、你首先要有一个XML
Android数据库框架GreenDao&Realm实战分析
Android开发的童鞋应该都知道,使用官方的<em>SQL</em>ite<em>数据库</em>,可以满足我们大部分增删改查的需求,然而随着Android技术的逐步成长,你会慢慢发现<em>SQL</em>ite越来越不能满足我们的需求。总结为以下主要几点: 1、创表,增删改查需要些大量代码,开发效率极低。 2、需大量封装,测试繁琐。 3、效率极低(当你使用了GreenDao||Realm你会发现它完全不能接受)。 4、加密等<em>操作</em>需手动处理。 正因
15 个 Android 通用流行框架大全(归类)
1. 缓存 DiskLruCache    Java实现基于LRU的磁盘缓存 2.图片加载 Android Universal Image Loader  一个强大的加载,缓存,展示图片的库 Picasso 一个强大的图片下载与缓存的库 Fresco  一个用于管理图像和他们使用的内存的库 Glide   一个图片加载和缓存的库 3. 图片
Android 数据库框架LitePal使用详解
以前一直觉得Android对<em>SQL</em>ite<em>数据库</em>的<em>操作</em>非常简单,封装的很完善了。当我看到了郭神的LitePal<em>框架</em>之后我就在心理暗笑了,原来<em>数据库</em>还可以这样玩,真是大开眼界了。甚至你都<em>不用</em><em>写</em>一句<em>SQL</em>语句,也<em>不用</em>考虑表之间的关联,这些都由LitePal来替你完成,配置和学习起来也是相当简单 一、配置 1. 引入Jar包或源码 首先我们需要将下载好的LitePal的jar包引入到项目当中,或者
android数据库框架SugarORM的简单使用
原文地址:http://satyan.github.io/sugar/getting-started.html 步骤1:下载 Gradle:  compile 'com.github.satyan:sugar:1.5' 步骤2:配置 AndroidManifest.xml <em>android</em>:label="@string/app_name" <em>android</em>:icon="@drawab
android 手把手教你数据库框架(第一篇)
<em>android</em> 手把手教你<em>写</em><em>数据库</em><em>框架</em>(第一篇)
2017Android通用框架
http://mp.weixin.qq.com/s?__biz=MzA3Njg4NTI1NQ==&mid=2649860050&idx=1&sn=5356f17c124e51f5b3dece961e36f44b&chksm=875f7bbab028f2ac1b47ddbe1d2604d4bf2b3cbc985fb2e83fed28f70adb5f655a4a7d470bbc#rd
android——框架的实现系列(数据库操作)
原创文章,转载请注明出处            请先阅读《<em>android</em>——仿mybatis的半自动<em>数据库</em>映射的实现 》                            《 <em>android</em>——<em>框架</em>的实现系列(依赖注入的实现) 》           这里在实现了依赖注入的基础上,对之前的仿mybatis实现进行改进。           实现目标           1、通
Android 中数据库框架GreenDao与LitePal对比、集成、使用详解,greendao与原生SQLite性能对比
1.性能对比:参考这篇文章http://blog.csdn.net/aggies/article/details/45200627 2.LitePal<em>框架</em>详解。【<em>操作</em>非常简单,适合于<em>数据库</em><em>操作</em>较少的项目】 LitePal是使用反射的方式完成的<em>数据库</em>表的创建 集成步骤如下: 第一步:添加依赖 详见GitHub地址,Android Studio添加依赖:compile 'org.litep
Android开源数据库框架-LitePal的使用
简介LitePal是一款开源的Android<em>数据库</em><em>框架</em>,采用了关系映射的模式。LitePal在github上的项目地址:https://github.com/LitePalFramework/LitePal配置LitePaldependencies { .... compile 'org.litepal.<em>android</em>:core:1.5.1' } 在app/src/main 目录下新建目录ass
Android常用数据库大全
目录(?)[+]一OrmLite二LitePal三GreenDao32四Realm 一:OrmLite简述: 优点: 1.轻量级;2.使用简单,易上手;3.封装完善;4.文档全面。缺点:1.基于反射,效率较低(本人还没有觉得效率低);2.缺少中文翻译文档 jar包 地址:http://ormlite.com/releases/ 集成方法:把jar包复制到as的libs文件夹下,并且
android Room数据库框架 怎么自定义 sqlite db文件路径
由于项目需要,需要保证删除app时保留<em>数据库</em>信息。 需要设置本地<em>数据库</em>文件到data外部。(保存db文件到sd卡 或者 本机) 当前项目本地<em>数据库</em>使用room。代码实现默认没有设置<em>数据库</em>文件的存储位置。 ``` private fun buildDatabase(appContext: Context, executors: AppExecutors): AppDatabase { return Room.databaseBuilder(appContext, AppDatabase::class.java, DATABASE_NAME).addCallback(object : RoomDatabase.Callback() {}) .allowMainThreadQueries() //允许在主线程查询数据 .addMigrations() //迁移<em>数据库</em>使用,下面会单独拿出来讲 .build() } ``` 百度了很多资料, 一般搜索出来的是 /data/data/目录中 ``` public class DBHelper { //得到SD卡路径 private final String DATABASE_PATH = <em>android</em>.os.Environment .getExternalStorageDirectory().getAbsolutePath() + "/joke"; private final Activity activity; //<em>数据库</em>名 private final String DATABASE_FILENAME; public DBHelper(Context context) { // TODO Auto-generated constructor stub //这里直接给<em>数据库</em>名 DATABASE_FILENAME = "jokebook.db3"; activity = (Activity)context; } ``` 看这个搜索结果人都有些无奈了。 最多就是有人提到openHelperFactory这个方法 但是这个方法的具体实现感觉很复杂,不知道怎么实现。 项目中本地<em>数据库</em>记入的数据,需要数据回流服务器用来对账用的。所以要保证本地<em>数据库</em>数据不能被清除。 我知道greendao和纯sqlite是可以设置db文件到外部的(<em>android</em>本机 或者 sd卡中) 但是room这个<em>框架</em>怎么设置就抓瞎了。
android数据库框架 GreenDao
<em>android</em>中<em>数据库</em><em>框架</em> GreenDao楼主之前的项目用到了本地缓存,SharedPreferences缓存的数据有限,就研究了<em>SQL</em>ite,发现<em>SQL</em>ite的存储查询过程比较繁琐,搜索过之后选择了GreeDao<em>框架</em>楼主使用<em>android</em> studio编译器GreenDao配置一、添加依赖compile'org.greenrobot:greendao:3.0.1' compile'org.g
android 数据库框架GreenDao的使用
<em>android</em>的开发过程中,我们经常会用到数据存储的功能,目前<em>android</em>中常用的存储方式主要有: SharedPreferences存储数据:以key-value(键值对)的方式存储一些轻量级的数据 本地文件存储数据 本地<em>数据库</em>存储数据(基于sqlite) 服务器在线存储 本文主要介绍本地<em>数据库</em>存储的一种实现方式,通过GreenDao创建本地<em>数据库</em>。 目前市面上比较常用的<em>android</em>...
Android sqlite数据库操作通用框架AHibernate(一)-CRUD示例和使用步骤
AHibernate简介 一句话描述,使用AHibernate<em>框架</em>进行sqlite<em>数据库</em><em>操作</em>您将从重复性劳动中解脱出来. (一)支持功能: 1.自动建表,支持属性来自继承类:可根据注解自动完成建表,并且对于继承类中的注解字段也支持自动建表. 2.自动支持增删改,增改支持对象化<em>操作</em>:增删改是<em>数据库</em><em>操作</em>的最基本单元,<em>不用</em>重复<em>写</em>这些增删改的代码,并且添加和更新支持类似于hibernate中的对象...
Android进阶:步骤三:Android常用框架:OrmLite数据库框架
Orm(对象关系模型) OrmLite<em>框架</em>介绍 对比主流的Orm<em>框架</em> OrmLite基本用法 一、OrmLite <em>框架</em>介绍: Ormlite <em>框架</em>是第三方对<em>数据库</em><em>操作</em>的封装的一个<em>框架</em>,为了提高开发效率,尤其是对某些 <em>数据库</em><em>操作</em>特别频繁的 app,建议使用 OrmLite <em>框架</em>。它是一个非常轻量级的<em>数据库</em><em>操作</em><em>框架</em>, 它的底层是根据反射机制来实现的。 Why OrmLite? 大多...
安卓进阶系列-07数据库框架(GreenDAO)的使用
GreenDAO的使用 简介 安卓提供了一个占用内存极小的<em>数据库</em><em>SQL</em>ite,也提供了不少<em>操作</em><em>数据库</em>的API,然而不是所有程序员都擅长编<em>写</em><em>SQL</em>语句,这时一个ORM的<em>数据库</em><em>框架</em>就显得很好用了。 在之前的博客我已经提到了LitePal的使用,但是实际开发中使用的LitePal的项目并不多,相反很多时候GreenDAO是一个不错的选择。 当然,现在的开发很多至关重要的用户数据都是部署在服务器上的大...
动态规划入门到熟悉,看不懂来打我啊
持续更新。。。。。。 2.1斐波那契系列问题 2.2矩阵系列问题 2.3跳跃系列问题 3.1 01背包 3.2 完全背包 3.3多重背包 3.4 一些变形选讲 2.1斐波那契系列问题 在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n&gt;=2,n∈N*)根据定义,前十项为1, 1, 2, 3...
程序员,职场上请远离这种人!
对有些职场人来讲,甩锅就是一种生存手段。01.从大学打篮球说起上大学的时候喜欢打篮球,然后我又特别喜欢抢篮板,经常是跳起来的时候没事,落下来的时候偶尔会踩到别人的脚上,于...
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
对计算机专业来说学历真的重要吗?
我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。 这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的<em>解决</em>方案,记得帮我点赞哦。 先说结论,无论赞不赞同,它本质就是这样:对于技术类工作而言,学历五年以内非常重要,但有办法弥补。五年以后,不重要。 目录: 张雪峰讲述的事实 我看到的事实 为什么会这样 ...
windows程序运行原理03下载
C++、MFC学习资料,有个章节的,前面的课程是基础,后面有深入讲解的内容,很好的学习资料,适合各个水平的人。 相关下载链接:[url=//download.csdn.net/download/mearo/3169557?utm_source=bbsseo]//download.csdn.net/download/mearo/3169557?utm_source=bbsseo[/url]
Wince应用程序SerialPort(C#)下载
研究WINCE时用C#写的一个串口工具DEMO 使用环境.NET3.5+VS2008+WINCE6.0 相关下载链接:[url=//download.csdn.net/download/laststep/3885288?utm_source=bbsseo]//download.csdn.net/download/laststep/3885288?utm_source=bbsseo[/url]
强悍查壳工具下载
强悍查壳工具 2014强大查壳器 最新查壳工具 相关下载链接:[url=//download.csdn.net/download/libh1015/7627039?utm_source=bbsseo]//download.csdn.net/download/libh1015/7627039?utm_source=bbsseo[/url]
相关热词 c#时间格式化 不带- c#替换字符串中指定位置 c# rdlc 动态报表 c# 获取txt编码格式 c#事件主动调用 c#抽象工厂模式 c# 如何添加类注释 c# static块 c#处理浮点数 c# 生成字母数字随机数
我们是很有底线的