Android SQLite数据库的增、删、改、查

学习Android必然要知道数据库的使用,Android使用的是SQLite数据库。对于SQLite数据库的基本信息这里就不介绍了,我们主要是看下怎么使用它。

与其他数据库不一样的地方

以前我们做javaWeb开发时用jdbc连接,现在变了,个人觉得变得简单了。在应用程序中直接就可以去创建数据库,然后对其进行操作,不用像以前写连接代码。

操作数据库

一:SQLiteOpenHelper 类

getReadableDatabase()得到可读的数据库,返回SQLiteDatabase对象,然后通过对象进行数据库操作。

getWritableDatabase()得到可写的数据库,返回SQLiteDatabase对象,然后通过对象进行数据库操作。

onCreate(SQLiteDatabase db)在第一次创建数据库时调用。

onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)在更改数据库时都会调用。

onOpen(SQLiteDatabase db)当数据库打开时调用。

close()关闭数据库。

二:SQLiteDatabase类

这个类提供了对数据库的一些基本操作:

insert()

delete()

update()

query()

代码:

SQLiteOpenHelper的子类:

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * 通过getReadableDatabase()和getWritableDatabase()可以获得数据库对象。
 * 提供onCreate()-创建数据库时,onUpgrade()-升级数据库时,两个回调函数。
 */
public class DatabaseHelper extends SQLiteOpenHelper {

	// 按要求必须要有构造函数
	public DatabaseHelper(Context context, String name, CursorFactory factory,
			int version) {
		super(context, name, factory, version);
	}

	// 当第一次得到SQLiteDatabase对象时,调用该方法
	@Override
	public void onCreate(SQLiteDatabase db) {
		String sql = "create table MSG(id int,body varchar(100))";
		db.execSQL(sql);
		System.out.println("创建了一个数据库!");
	}

	// 当更新数据库时执行该方法
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		System.out.println("更新了数据库!");
		// 还可以写其他的操作
	}
}

有了这个类后,我们就可以对数据库进行增、删、改、查操作了。

插入数据:

//生成ContentValues对象,key:列名,value:想插入的值
ContentValues values = new ContentValues();
values.put("id", 1);
values.put("body", "hello");
DatabaseHelper dbhelper = new DatabaseHelper(SqliteActivity.this, "text_msg", null, 2);
//得到可写的SQLiteDatabase对象
SQLiteDatabase db = dbhelper.getWritableDatabase();
//调用insert方法,将数据插入数据库
//参数1:表名
//参数2:如果你想插入空值,那么你必须指定它的所在的列
db.insert("MSG", null, values);
System.out.println("插入了:1, hello");

删除数据:

DatabaseHelper dbhelper = new DatabaseHelper(SqliteActivity.this, "text_msg", null, 2);
//得到可写的SQLiteDatabase对象
SQLiteDatabase db = dbhelper.getWritableDatabase();
//调用delete方法,删除数据
db.delete("MSG", "id=?", new String[]{"1"});
System.out.println("删除了:id=1");

修改数据:

ContentValues values = new ContentValues();
values.put("body", "my dear!");
DatabaseHelper dbhelper = new DatabaseHelper(SqliteActivity.this, "text_msg", null, 2);
//得到可写的SQLiteDatabase对象
SQLiteDatabase db = dbhelper.getWritableDatabase();
//调用insert方法,将数据插入数据库
//参数3:where 子句 "?"是占位符号,对应后面的"1",这和web开发时的语法是一样的
db.update("MSG", values, "id=?", new String[]{"1"});
System.out.println("更新了:hello-->my dear!");

查询数据:

     
DatabaseHelper dbhelper = new DatabaseHelper(SqliteActivity.this, "text_msg", null, 2);
//得到可读的SQLiteDatabase对象
SQLiteDatabase db = dbhelper.getReadableDatabase();
//参数1:表名
//参数2:要想显示的列
//参数3:where子句
//参数4:where子句对应的条件值
//参数5:分组方式
//参数6:having条件
//参数7:排序方式
Cursor cursor = db.query("MSG", new String[]{"id","body"}, "id=?", new String[]{"1"}, null, null, null);
System.out.println("查到的数据为:");
while(cursor.moveToNext()){
    int id = cursor.getInt(cursor.getColumnIndex("id"));
    String name = cursor.getString(cursor.getColumnIndex("body"));
    System.out.println("-->"+id+"::::::::::"+name);
}

怎样使用adb查看数据库?

SQLite没有客户端,不能直接查看数据库,所以我们用它提供的adb吧,当然,对数据库的操作方法很多,这只是其中一种。

1、进入命令行后输入adb回车,会显示很多的信息。

2、输入adb shell回车,就进入了Linux命令行,现在就可以使用Linux的命令了。

3、ls回车,显示所有的东西,其中有个data。(ls:显示所有,cd:进入)

4、cd data回车,再ls回车,cd data回车,ls回车后就会看到很多的com.。。。的东西,那就是机器上的应用程序,找到你应用程序的包名,然后进入。

5、进去后在查看所有,会发现个databases,进入databases,显示所有就会发现你的数据库名字,我这里使用的是"text_msg"。

6、sqlite3 text_msg回车就进入了你的数据库了,然后“.schema”就会看到该应用程序的所有表及建表语句。

7、现在你就可以使用标准的SQL语句查看刚才生成的数据库及数据了。

暂无评论
  • 1:请一针见血的评论。
  • 2:评论需要审核通过后才能显示。
  • 3:评论字数限制在1000字以内。
  • 当前字数:0
热门文章
推荐文章
随机文章
关于本站 - 广告服务 - 版权声明 - 联系我们 - 友情链接 - 网站地图 - 帮助中心