特别强调一下,Android是怎么删除数据库的,因为SQLite没有提供drop database XX的指令,所以我现在是按文件来删除数据库
刚刚学习Android关于数据库的操作,现在就将我学习的这点知识汇总一下,高手绕道哈。
关于数据库操作无非就是增删改查,下面就将这几个模块实现了。
JAVA code
package cn.qiuzhping.study;
import java.io.File;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class SQLiteStudy extends Activity {
private Button btn_create = null;
private Button btn_update = null;
private Button btn_insert = null;
private Button btn_query = null;
private Button btn_delete = null;
// private SQLiteUtil sqliteUtil = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sqlite_study);
btn_create = (Button) findViewById(R.id.btn_create);
btn_create.setOnClickListener(new Btn_Create());
btn_update = (Button) findViewById(R.id.btn_update);
btn_update.setOnClickListener(new Btn_Update());
btn_insert = (Button) findViewById(R.id.btn_insert);
btn_insert.setOnClickListener(new Btn_Insert());
btn_query = (Button) findViewById(R.id.btn_query);
btn_query.setOnClickListener(new Btn_Query());
btn_delete = (Button) findViewById(R.id.btn_delete);
btn_delete.setOnClickListener(new Btn_Delete());
}
private class SQLiteUtil extends SQLiteOpenHelper {
private static final int VERSION = 1;// 正数
private String sql = "create table user(id int,name vachar(20))";
public SQLiteUtil(Context context, String name, CursorFactory factory,
int version) {
// 从左到右依次是context是Activity、name数据库表名、factory可选的数据库游标工厂类,
// 当查询(query)被提交时,该对象会被调用来实例化一个游标。默认为null。version是数据版本号
super(context, name, factory, version);
}
public SQLiteUtil(Context context, String name, int version) {// 调用4个参数的构造方法
this(context, name, null, VERSION);
}
public SQLiteUtil(Context context, String name) {// 调用3个参数的构造方法
this(context, name, VERSION);
}
@Override
public void onCreate(SQLiteDatabase arg0) {
// 建立数据库
Log.i("SQLiteUtil onCreate", "建立数据库");
arg0.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
Log.i("SQLiteUtil onUpgrade", "更新数据库!!");
// arg0.execSQL(sql);
}
}
public void deleteFile(File file) {
if (file.exists()) { // 判断文件是否存在
if (file.isFile()) { // 判断是否是文件
// 设置属性:让文件可执行,可读,可写
file.setExecutable(true, false);
file.setReadable(true, false);
file.setWritable(true, false);
file.delete(); // delete()方法
} else if (file.isDirectory()) { // 否则如果它是一个目录
File files[] = file.listFiles(); // 声明目录下所有的文件 files[];
for (int i = 0; i < files.length; i++) { // 遍历目录下所有的文件
this.deleteFile(files[i]); // 把每个文件 用这个方法进行迭代
}
}
file.setExecutable(true, false);
file.setReadable(true, false);
file.setWritable(true, false);
file.delete();
Log.i("deleteFile", file.getName() + "成功删除!!");
} else {
Log.i("deleteFile", file.getName() + "不存在!!!");
}
}
class Btn_Delete implements OnClickListener {
@Override
public void onClick(View arg0) {
SQLiteUtil sqliteUtil = new SQLiteUtil(SQLiteStudy.this, "testDB1");
SQLiteDatabase db = sqliteUtil.getWritableDatabase();
Log.i("Btn_Delete", "delete = " + db.delete("user", null, null));
File file1 = new File("/data/data/cn.qiuzhping.study/databases/testDB1");
deleteFile(file1);
File file2 = new File("/data/data/cn.qiuzhping.study/databases/testDB1-journal");
deleteFile(file2);
}
}
class Btn_Create implements OnClickListener {
@Override
public void onClick(View arg0) {
SQLiteUtil sqliteUtil = new SQLiteUtil(SQLiteStudy.this, "testDB1");
SQLiteDatabase db = sqliteUtil.getReadableDatabase();
}
}
class Btn_Update implements OnClickListener {
@Override
public void onClick(View arg0) {
SQLiteUtil sqliteUtil = new SQLiteUtil(SQLiteStudy.this, "testDB1");
SQLiteDatabase db = sqliteUtil.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "zhansan");
Log.i("Btn_Update ",
"update="
+ db.update("user", values, "id=?",
new String[] { "1" }));
}
}
class Btn_Insert implements OnClickListener {
@Override
public void onClick(View arg0) {
ContentValues values = new ContentValues();
for (int i = 1; i <= 20;) {
values.put("id", i);
values.put("name", "qiuzhping" + i);
SQLiteUtil sqliteUtil = new SQLiteUtil(SQLiteStudy.this,
"testDB1");
SQLiteDatabase db = sqliteUtil.getWritableDatabase();
Log.i("Btn_Insert",
"insert = " + db.insert("user", null, values));
i++;
}
}
}
class Btn_Query implements OnClickListener {
@Override
public void onClick(View arg0) {
ContentValues values = new ContentValues();
values.put("name", "qiuzhping");
SQLiteUtil sqliteUtil = new SQLiteUtil(SQLiteStudy.this, "testDB1");
SQLiteDatabase db = sqliteUtil.getReadableDatabase();
Cursor cursor = db.query("user", new String[] { "id", "name" },
null, null, null, null, null);
while (cursor.moveToNext()) {
int id = cursor.getInt(0);// 获取ID
String name = cursor.getString(1);// 获取name
Log.i("Btn_Query", "id = " + id + " name = " + name);
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.sqlite_study, menu);
return true;
}
}
xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".SQLiteStudy" >
<Button
android:id="@+id/btn_create"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="创建数据库" />
<Button
android:id="@+id/btn_update"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/btn_create"
android:text="更新" />
<Button
android:id="@+id/btn_insert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/btn_update"
android:text="插入" />
<Button
android:id="@+id/btn_query"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/btn_insert"
android:text="查询" />
<Button
android:id="@+id/btn_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/btn_query"
android:text="删除数据库" />
</RelativeLayout>
分享到:
相关推荐
标签"SQLite数据库"进一步明确了这个压缩包的核心内容,主要关注的是SQLite数据库在安卓应用中的实现和操作。 在安卓系统中,SQLite数据库通常用于存储结构化的数据,如用户信息、设置、游戏进度等。使用SQLite...
它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。 就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。 为什么要用 ...
本项目“android连接SQLite数据库源码”是一个针对IT计算机专业学生的毕业设计示例,旨在帮助学生理解和掌握如何在Android平台上与SQLite数据库进行交互。 首先,我们需要了解Android中与SQLite数据库打交道的基本...
Android SQLite 数据库操作报告 一、实验目的 Android 实验报告的主要目的是熟悉 Android 平台的文件操作、掌握 Android SQLite 数据库的设计和应用、熟悉 XML 和 JSON 文件的读取。通过本实验,用户可以掌握 ...
本项目“安卓SQLite数据库相关-实现对没填的工时记录操作android数据库sqlite.zip”主要探讨了如何在Android应用中使用SQLite数据库来管理工时记录。 SQLite数据库在Android中被广泛用于数据持久化,它允许开发者...
在Android应用开发中,SQLite数据库是一个重要的组成部分,用于存储应用程序中的结构化数据。SQLite是一个轻量级的关系型数据库,它不需要单独的服务器进程,并且可以嵌入到应用程序中,非常适合移动设备上的数据...
SQLite数据库是一个轻量级的关系型数据库管理系统,它被嵌入到Android系统中,允许开发者在应用内部创建、查询、更新和删除数据。以下是一些关键知识点: 1. **SQLiteOpenHelper**: 这是Android提供的一个基类,...
本篇文章将深入探讨如何在Android中进行SQLite数据库的操作。 一、SQLite数据库简介 SQLite是一个开源的嵌入式数据库系统,它不需要单独的服务器进程,并且全部数据库都存储在一个文件中。在Android中,每个应用都...
这个"Android操作SQLite数据库Demo"将展示如何在Android环境中有效地利用SQLite进行数据管理。以下是一些关键知识点: 1. **SQLiteOpenHelper**: Android提供了`SQLiteOpenHelper`类来帮助我们管理SQLite数据库,...
通过这个源码实例,开发者可以学习到如何在Android应用中有效地操作SQLite数据库,理解基本的数据操作流程以及如何处理数据库版本变更。这不仅对于初学者来说是宝贵的实践资源,对于经验丰富的开发者也有助于复习和...
在Android开发中,SQLite是一个非常重要的组成部分,它是一个轻量级的、开源的、嵌入式的SQL数据库引擎,被广泛用于存储和管理应用程序中的数据。SQLite具有高效、可靠且易于集成的特点,使得它成为Android应用数据...
本篇文章将深入探讨如何在Android中实现SQLite数据库的加密。 一、SQLite加密的必要性 1. 数据隐私:在移动设备上,用户数据可能包含个人隐私,如登录凭据、通讯录等,加密可以防止数据泄露。 2. 应用安全:防止...
这篇实验报告主要涉及了在Android平台上使用SQLite数据库进行文件操作和数据管理的相关知识。以下是详细的解释: 1. **SQLite数据库**:SQLite是一个轻量级的、嵌入式的关系型数据库,广泛应用于移动设备如Android...
在Android应用开发中,SQLite数据库是一种常用的数据存储方式,它为应用程序提供了轻量级、可靠的本地数据存储。这个"安卓SQLite数据库相关-Android安全简单的键值对数据存储库源码.rar"压缩包文件包含了用于创建一...
SQLite被集成在Android操作系统中,允许开发者在应用程序中存储和管理数据。本主题主要探讨如何通过源代码来实现对SQLite数据库的增、删、查、改(CRUD)操作。 首先,SQLiteAdmin.rar可能包含一个用于管理SQLite...
在Android应用开发中,SQLite数据库是一个重要的组成部分,用于存储应用程序中的结构化数据。SQLite是一个轻量级的关系型数据库,它不需要单独的服务器进程,而是直接嵌入到应用程序中,为开发者提供了灵活的数据...
在Android中,每个应用程序都有自己的SQLite数据库,通过ContentResolver和ContentProvider接口进行操作。开发者可以通过SQLiteOpenHelper类创建和升级数据库,以及通过SQL语句执行查询、插入、更新和删除操作。 ...
Yahoo 开源的 SQLite 数据库框架,旨在简化 Android 应用中的 SQLite 数据库操作,提供更高级别的抽象层,帮助开发者更便捷地进行数据管理。这个框架可能包含了以下关键组件和特性: 1. **数据库帮助类(Database ...
本文将深入探讨如何在Android的浏览器环境中管理和操作SQLite数据库。 首先,理解SQLite数据库的基本概念至关重要。SQLite是一个嵌入式SQL数据库,它不需要单独的服务器进程,并且可以被应用程序直接访问。它支持...
在这个“【Android】Sqlite数据库增删改查(修改版)”项目中,我们将探讨如何在Android应用中使用SQLite进行基本的数据操作:增加、删除、修改和查询。 首先,我们要了解SQLite在Android中的集成。每个Android应用...