android开发之SQLite数据库 增、删、改、查 – 一天一天,一点一滴 – 博客频道 – CSDN.NET

学习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 <b style="color:black;background-color:#ffff66">android</b>.content.Context;</p><p>import <b style="color:black;background-color:#ffff66">android</b>.database.sqlite.SQLiteDatabase;</p><p>import <b style="color:black;background-color:#ffff66">android</b>.database.sqlite.SQLiteDatabase.CursorFactory;</p><p>import <b style="color:black;background-color:#ffff66">android</b>.database.sqlite.SQLiteOpenHelper;</p><p>/**</p><p> * 通过getReadableDatabase()和getWritableDatabase()可以获得数据库对象。</p><p> * 提供onCreate()-创建数据库时,onUpgrade()-升级数据库时,两个回调函数。</p><p> */</p><p>public class DatabaseHelper extends SQLiteOpenHelper {</p><p>	// 按要求必须要有构造函数</p><p>	public DatabaseHelper(Context context, String name, CursorFactory factory,</p><p>			int version) {</p><p>		super(context, name, factory, version);</p><p>	}</p><p>	// 当第一次得到SQLiteDatabase对象时,调用该方法</p><p>	@Override</p><p>	public void onCreate(SQLiteDatabase <b style="color:black;background-color:#A0FFFF">db</b>) {</p><p>		String sql = "create table MSG(<b style="color:black;background-color:#ff9999">id</b> int,body varchar(100))";</p><p>		<b style="color:black;background-color:#A0FFFF">db</b>.execSQL(sql);</p><p>		System.out.println("创建了一个数据库!");</p><p>	}</p><p>	// 当更新数据库时执行该方法</p><p>	@Override</p><p>	public void onUpgrade(SQLiteDatabase <b style="color:black;background-color:#A0FFFF">db</b>, int oldVersion, int newVersion) {</p><p>		System.out.println("更新了数据库!");</p><p>		// 还可以写其他的操作</p><p>	}</p><p>}</p><p>

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

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

删除数据:

DatabaseHelper dbhelper = new DatabaseHelper(SqliteActivity.this, "text_msg", null, 2);</p><p>				//得到可写的SQLiteDatabase对象</p><p>				SQLiteDatabase <b style="color:black;background-color:#A0FFFF">db</b> = dbhelper.getWritableDatabase();</p><p>				//调用<b style="color:black;background-color:#99ff99">delete</b>方法,删除数据</p><p>				<b style="color:black;background-color:#A0FFFF">db</b>.<b style="color:black;background-color:#99ff99">delete</b>("MSG", "<b style="color:black;background-color:#ff9999">id</b>=?", new String[]{"1"});</p><p>				System.out.println("删除了:<b style="color:black;background-color:#ff9999">id</b>=1");

修改数据:

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

查询数据:

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

怎样使用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语句查看刚才生成的数据库及数据了。

          对数据库的操作方法很多,这只是其中一种。

来源URL:http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380146d96864968d4e414c42246090f2de8b823281705d7c6787a52ef0f07bbae616f615466e4c096c957d9bc992325832d203541c6171d8045f98b1b7e9737902bbfff0ee7cba665cdf99484c854229105&p=9b759a45d5c417e00abe9b7c4d538a&newp=8a3edd15d9c342a811be9b7c5c0a9d231610db2151d4da1536&user=baidu&fm=sc&query=android+db+delete+id&qid=f7152d160000a6e4&p1=2