android 数据库是否该关闭

关于android多线程数据读写请看博客:

android 多线程数据库读写

常常纠结于获取了SQLiteDatabase每次操作完是否要关闭的问题,每次关闭又怕影响性能,这里记录下SQLiteOpenHelper操作逻辑:

SQLiteOpenHelper获取getWritableDatabase,getReadableDatabase如果之前获取的SQLiteDatabase对象没有close掉,就会直接使用之前已经生成的SQLiteDatabase对象,如果之前已经close了,则会生成一个新的对象!

每次操作都关闭数据库结果,有图有真相:

打印出来的信息是db的hashcode,如果两个一样,说明是同一个对象,操作代码:

@Override
	public SQLiteDatabase getWritableDatabase() {
		SQLiteDatabase db= super.getWritableDatabase();
		Log.e("ddddBBBB","getWritableDatabase状态:"+db.hashCode()+",path:"+db.getPath());
		return db;
	}

	@Override
	public SQLiteDatabase getReadableDatabase() {
		// TODO Auto-generated method stub
		SQLiteDatabase db=  super.getReadableDatabase();
		Log.e("ddddBBBB","getReadableDatabase状态:"+db.hashCode()+",path:"+db.getPath());
		return db;
	}

个人觉得没必要每次操作玩都关闭db,有点消耗性能,不如弄个全局的DB,等application 结束时再关闭。

时间: 2024-08-09 07:40:55

android 数据库是否该关闭的相关文章

基础篇:6.Android数据库编程---SQLite

简介: 在Android平台上,继承了一个嵌入式关系型数据库---SQLite.SQLite具有跨平台特性,可以在所有主要的操作系统上运行.SQLite通过独占性和共享锁实现独立事务处理,因此多个进程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据,在进行写操作之前,必须先获得独占锁.另一方面,SQLite采取动态数据类型,当某个值插入数据库时,SQLite会检查它的类型,如果该类型与所关联的列不匹配,SQLite则会进行强制转换.SQLite支持以下几种数据类型:NULL(空值).I

Android数据库SQLite

数据库 数据库增删改查 添加 insert into info (name,phone) values ('zhangsan','110') 删除 delete from info where name='zhangsan' 修改 update info set phone ='999' where name ='zhangsan' 查询 select * from info where name='zhangsan' Android下数据库增删改查 void - db.execSQL() 增删

Android数据库框架——ORMLite轻量级的对象关系映射(ORM)Java包

Android数据库框架--ORMLite轻量级的对象关系映射(ORM)Java包 事实上,我想写数据库的念头已经很久了,在之前写了一个答题系统的小项目那只是初步的带了一下数据库,数据库是比较强大的,不是我们三言两语就能解决的,我一直想抽个时间自己再过一遍Sqlite和JDBC的,但是,大家也知道,琐事比较多,我们来说一下数据库的框架吧,事实上市面上,我觉得还可以的数据库框架有两个,ORMLite和GreenDao,我以前做的运动类的应用上,就需要存储大量的运动数据,我们最开始是在本地写数据库的

Android数据库之基本概念(上)

1.Android数据库简介 Android通过结合使用SQLite数据库和Content Provider,提供了结构化数据的持久功能. SQLite数据库可以通过一种结构化的.易于管理的方法来存储应用程序数据.Android提供了一个完整的SQLite关系数据库的库文件.每个应用程序都可以创建自己的数据库,并对这个数据库拥有完全的控制权. Android数据库存储在设备上的/data/data/<package name>/database文件夹中,所有的数据库都是私有的,只能被创建他们的

Android数据库操作_表格显示

Android数据库操作_表格显示 显示表格布局 完成后效果如下: 首先需要一个主布局文件main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation=&quo

Android 数据库ORM框架GreenDao学习心得及使用总结&lt;一&gt;

Android 数据库ORM框架GreenDao学习心得及使用总结<一> 转: http://www.it165.net/pro/html/201401/9026.html 最近在对开发项目的性能进行优化.由于项目里涉及了大量的缓存处理和数据库运用,需要对数据库进行频繁的读写.查询等操作.因此首先想到了对整个项目的数据库框架进行优化. 原先使用android本身内置的sqllite,也就是用的最基本的SQLiteOpenHelper方法,这种方法对自己来说比较方便易懂.但是在使用过程中感觉很繁

Android 数据库读取数据显示 [5]

2016-12-1 课程内容 昨天学了Android数据库升级.降级.创建 今天把数据库表里面的数据读取出来显示到手机屏幕上 下面代码是MainActivity.java 的代码 package com.example.winxinmff; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;

Android数据库框架——GreenDao轻量级的对象关系映射框架,永久告别sqlite

Android数据库框架--GreenDao轻量级的对象关系映射框架,永久告别sqlite 前不久,我在写了ORMLite这个框架的博文 Android数据库框架--ORMLite轻量级的对象关系映射(ORM)Java包 但是对于我个人来说,我可能更加倾向于用GreenDao,所以今天也为大家带来了GreenDao的详细博客,希望大家喜欢,之前也详细介绍了ORM的思想,如果不明白可以先看一下前面的博文,这里就不多赘述了,我们新建一个工程 一.相关介绍 官方网站 : http://greendao

android 数据库 总结

android 数据库 总结 第一步:自己编写一个类 继承 SQLiteOpenHelper,如下 package com.example.wxj2048; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.databas