特别强调一下,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;@Overrideprotected 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);}@Overridepublic void onCreate(SQLiteDatabase arg0) {// 建立数据库Log.i("SQLiteUtil onCreate", "建立数据库");arg0.execSQL(sql);}@Overridepublic void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {// TODO Auto-generated method stubLog.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 {@Overridepublic 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 {@Overridepublic void onClick(View arg0) {SQLiteUtil sqliteUtil = new SQLiteUtil(SQLiteStudy.this, "testDB1");SQLiteDatabase db = sqliteUtil.getReadableDatabase();}}class Btn_Update implements OnClickListener {@Overridepublic 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 {@Overridepublic 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 {@Overridepublic 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);// 获取IDString name = cursor.getString(1);// 获取nameLog.i("Btn_Query", "id = " + id + "  name = " + name);}}}@Overridepublic 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>


更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. Android(安卓)DVM
  4. android读写文件
  5. 如何将Eclipse中的项目迁移到Android(安卓)Studio 中
  6. Android(安卓)Studio插件整理
  7. Android(安卓)获得图片并解码成缩略图以减少内存消耗
  8. android 多媒体数据库详解
  9. 在android虚拟机中安装删除应用程序

随机推荐

  1. 双击运行Android模拟器、创建SDcard、AVD
  2. Android: MediaScanner生成thumbnail的算
  3. Android 中的AsyncTask的使用心得
  4. Android总结与展望:2012成为王者,2013再创
  5. android视图层的设计 javacode版本 有图
  6. Android Studio添加第三方库遇到的一些坑
  7. 关于 android 子进程域名解析失败的问题
  8. Android中级进阶FAQ
  9. VideoView重绘
  10. Android通过加载其他应用的Dex文件破解关