android 建数据库 SQLite 存储sd 卡或者内存

原创 2015年07月08日 11:33:41

android 创建数据库调用SQLiteOpenHelper,一般不直接操作SQLiteDatabase 

是通过SQLiteOpenHelper来获取



public class DBOpenHelper extends SQLiteOpenHelper {

private static final int VERSION = 1;// 定义数据库版本号
private static final String PATH = Environment
.getExternalStorageDirectory().getPath();
// 有些没有sd卡所以没写进去
private static final String DBNAME ="flexemdata.db";// 定义数据库名   PATH+ "/"+
private final static String TAG = "DBOpen";


public DBOpenHelper(Context context) {// 定义构造函数

super(context, DBNAME, null,VERSION);// 重写基类的构造函数
}


// 当第一次创建数据库时回调该方法
@Override
public void onCreate(SQLiteDatabase db) {
Log.i(TAG, "创建数据表");
db.beginTransaction();
try {
// 创建实时数据表
db.execSQL("create table alarm(sensorname integer primary key autoincrement,uid ,code ,alarmMessage ,timeCreated,boxuid)");
Log.i(TAG, "初始化数据库");
// 初始化实时数据表
db.execSQL("insert into alarm(uid,code,alarmMessage,timeCreated,boxuid)values('0','0','0','0','0')");


db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}


// 当数据库版本更新时回调该方法
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)// 覆写基类的onUpgrade方法,以便数据库版本更新
{
// oldVersion=舊的資料庫版本;newVersion=新的資料庫版本
db.execSQL("DROP TABLE IF EXISTS " + DBNAME); // 刪除舊有的資料表
onCreate(db);
}

public boolean deleteDatabase(Context context) { 
return context.deleteDatabase(DBNAME); 

}


这个类下面有数据库创建,相对路径是直接存储在本程序的database下面,如果用绝对路径,就可以自选,是否sd卡。

在用到的类里面

private DBOpenHelper helper;// 创建DBOpenHelper对象
     private SQLiteDatabase db;// 创建SQLiteDatabase对象

{
helper = new DBOpenHelper(context);// 初始化DBOpenHelper对象

db = helper.getReadableDatabase();// 初始化SQLiteDatabase对象
}

直接用getReadableDatabase来获取数据库SQLiteDatabase对象。

这里讲一下怎么自动选择有sd卡就存在sd卡,没有就存储在内存中。

public DBOpenHelper(Context context) {// 定义构造函数

super(context, DBNAME, null,VERSION);// 重写基类的构造函数
}

这个构造函数改完 

public DBOpenHelper(Context context,String name) {// 定义构造函数

super(context, name, null,VERSION);// 重写基类的构造函数
}

然后在用到的activity里面判断

if (android.os.Environment.getExternalStorageState().equals(

 android.os.Environment.MEDIA_MOUNTED)) {  

name=Environment.getExternalStorageDirectory().getPath()+“/”+“alarm.db”;

}else{

name="alarm.db";

}

然后调用

helper = new DBOpenHelper(context,name);// 初始化DBOpenHelper对象

就可以自动判断了




版权声明:本文为博主原创文章,未经博主允许不得转载。

android 读写sd卡的权限设置

在Android中,要模拟SD卡,要首先使用adb的mksdcard命令来建立SD卡的镜像,如何建立,大家上网查一下吧,应该很容易找到,这里不说这个问题.     但是在应用程序执行起来以后,我...
  • chengyingzhilian
  • chengyingzhilian
  • 2012年02月21日 14:35
  • 189601

android之存储篇_SQLite数据库_让你彻底学会SQLite的使用

SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。 例如:可以在Integer类型的字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型...
  • qq373036876
  • qq373036876
  • 2016年07月30日 09:27
  • 1980

android之存储篇_SQLite数据库_让你彻底学会SQLite的使用

http://blog.csdn.net/jason0539/article/details/10248457 SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明...
  • qq_35114086
  • qq_35114086
  • 2016年10月15日 20:29
  • 9086

android之存储篇_SQLite数据库_让你彻底学会SQLite的使用

http://blog.csdn.net/jason0539/article/details/10248457 SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明...
  • qq_35114086
  • qq_35114086
  • 2016年10月15日 20:29
  • 9086

Android SQLite的数据库文件存储在SD卡中(一)

SQLite的特性:       •轻量级       使用 SQLite 只需要带一个动态库,就可以享受它的全部功能,而且那个动态库的尺寸想当小。       •独立性       SQ...
  • u011838340
  • u011838340
  • 2014年06月05日 11:13
  • 1302

Android开发中SQLite存储时间和按日期函数查询

1.存储时间字段; 2.查询结果按时间进行排序; 3.指定时间范围查询,按年或者按月 ; 4.DAO设计模式操作数据库 ; 5.RxJava异步执行数据库操作 ;...
  • hexingen
  • hexingen
  • 2017年05月10日 21:26
  • 2816

Android 四种存储 SharedPreferences 内存 SD卡 SQLite数据库

  • 2015年11月10日 17:09
  • 18.56MB
  • 下载

android中使用sqlite、复制assets下的数据库到SD卡、支持大于1M的文件

转载地址:http://www.cnblogs.com/som5/archive/2011/01/23/android_sqlite_assets_sdcard.html 如果使用SD卡,需要在And...
  • yixiaoweihaha1
  • yixiaoweihaha1
  • 2013年12月27日 14:13
  • 2064

Android 操作数据库Sqlite,数据写入到SD卡里面

Android 本身有自带的数据库,不需要安装,本身就已经添加到库里面,我们只需要引入库文件,就能够操作,对于数据量比较少的应用是个比较好的选择。对于Sqlite的操作,我们需要实例化SQLiteOp...
  • u013766436
  • u013766436
  • 2016年04月02日 17:02
  • 1763

android中使用sqlite、复制assets下的数据库到SD卡、支持大于1M的文件

初学android,达人忽略,欢迎扔石头. android中使用sqlite、复制assets下的数据库到SD卡、支持大于1M的文件 如果使用SD卡,需要在AndroidManifest.xml中...
  • madun
  • madun
  • 2011年10月19日 16:26
  • 2407
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 建数据库 SQLite 存储sd 卡或者内存
举报原因:
原因补充:

(最多只允许输入30个字)