特别强调一下,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应用...