1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > sqlite数据库android使用教程 Android开发教程之 SQLite数据库的使用

sqlite数据库android使用教程 Android开发教程之 SQLite数据库的使用

时间:2023-06-22 10:03:42

相关推荐

sqlite数据库android使用教程 Android开发教程之 SQLite数据库的使用

在开发Android应用程序时经常需要存储数据,Android系统提供了SQLite数据库,还提供了SQLiteOpenHelper类,使我们可以很方便的操作数据库。通过一个例子来说明在Android开发中使用SQLite数据库。

示例:新建一个Android应用程序项目,在main.xml文件中添加5个按钮。当我们点击这五个按钮时依次进行创建数据库,更新数据库的版本,向数据库的表中插入数据,更新表以及查询等操作。这个项目中有两个Java文件,一个是Activity的文件,另一个是继承自SQLiteOpenHelper类的DatebaseHelper类。在这个类中重写了SQLiteOpenHelper的构造方法,以及onCreate()和onUpgrade()方法。

main.xml

[xhtml:firstline[1]] view plaincopy

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello"

/>

android:id="@+id/createdb"

android:layout_width="300dp"

android:layout_height="wrap_content"

android:text="创建数据库"

/>

android:id="@+id/updatedb"

android:layout_width="300dp"

android:layout_height="wrap_content"

android:text="更新数据库"

/>

android:id="@+id/insert"

android:layout_width="300dp"

android:layout_height="wrap_content"

android:text="插入数据"

/>

android:id="@+id/update"

android:layout_width="300dp"

android:layout_height="wrap_content"

android:text="更新数据"

/>

android:id="@+id/query"

android:layout_width="300dp"

android:layout_height="wrap_content"

android:text="查询数据"

/>

DatebaseHelper.java

[java:firstline[1]] view plaincopy

package ;

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteDatabase.CursorFactory;

import android.database.sqlite.SQLiteOpenHelper;

public class DatebaseHelper extends SQLiteOpenHelper{

//DatabaseHelper作为一个访问SQLite的助手类,提供两个方面的功能,

//第一,getReadableDatabase(),getWritableDatabase()可以获得SQLiteDatabse对象,通过该对象可以对数据库进行操作

//第二,提供了onCreate()和onUpgrade()两个回调函数,允许我们在创建和升级数据库时,进行自己的操作

public static final int Version=1;

//在SQLiteOepnHelper的子类当中,必须有该构造函数

public DatebaseHelper(Context context, String name, CursorFactory factory,

int version) {

super(context, name, factory, version);

// TODO Auto-generated constructor stub

}

public DatebaseHelper(Context context,String name,int version)

{

this(context,name,null,version);

}

public DatebaseHelper(Context context,String name)

{

this(context, name, Version);

}

//该函数是在第一次得到SQLiteDatabse对象的时候,才会调用这个方法

@Override

public void onCreate(SQLiteDatabase db) {

// TODO Auto-generated method stub

System.out.println("create a datebase");

//execSQL函数用于执行SQL语句

db.execSQL("create table user(id int primary key,name varchar(20))");

}

//更新数据库的版本时执行这个方法

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

// TODO Auto-generated method stub

System.out.println("update a database");

}

}

Android_SQLite.java

[java:firstline[1]] view plaincopy

package ;

import android.app.Activity;

import android.content.ContentValues;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

public class Android_SQLite extends Activity {

private Button createdb,updatedb,buttonInsert,buttonUpdate,buttonQuery;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

createdb=(Button)findViewById(R.id.createdb);

updatedb=(Button)findViewById(R.id.updatedb);

buttonInsert=(Button)findViewById(R.id.insert);

buttonUpdate=(Button)findViewById(R.id.update);

buttonQuery=(Button)findViewById(R.id.query);

createdb.setOnClickListener(new CreatedbListener());

updatedb.setOnClickListener(new UpdateListener());

buttonInsert.setOnClickListener(new ButtonInsertListener());

buttonUpdate.setOnClickListener(new ButtonUpdateListener());

buttonQuery.setOnClickListener(new ButtonQueryListener());

}

class CreatedbListener implements OnClickListener

{

/* (non-Javadoc)

* @see android.view.View.OnClickListener#onClick(android.view.View)

*/

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

//只有调用了DatabaseHelper对象的getReadableDatabase()方法,或者是getWritableDatabase()方法之后,才会创建,或打开一个数据库

DatebaseHelper dbHelper=new DatebaseHelper(Android_SQLite.this, "test_db");

SQLiteDatabase db=dbHelper.getReadableDatabase();

}

}

class UpdateListener implements OnClickListener

{

/* (non-Javadoc)

* @see android.view.View.OnClickListener#onClick(android.view.View)

*/

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

//将数据库的版本升级为2

DatebaseHelper dbHelper=new DatebaseHelper(Android_SQLite.this,"test_db",2);

SQLiteDatabase db=dbHelper.getReadableDatabase();

}

}

class ButtonInsertListener implements OnClickListener

{

/* (non-Javadoc)

* @see android.view.View.OnClickListener#onClick(android.view.View)

*/

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

//获取最新版本的数据库,不然会出现异常

DatebaseHelper dbHelper=new DatebaseHelper(Android_SQLite.this,"test_db",2);

SQLiteDatabase db=dbHelper.getWritableDatabase();

//db.execSQL("insert into user (id,name) values (1,'张三')")

ContentValues values=new ContentValues();

values.put("id", 1);

values.put("name", "张三");

db.insert("user", null, values);

}

}

class ButtonUpdateListener implements OnClickListener

{

/* (non-Javadoc)

* @see android.view.View.OnClickListener#onClick(android.view.View)

*/

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

DatebaseHelper dbHelper=new DatebaseHelper(Android_SQLite.this,"test_db",2);

//得到一个可写的SQLiteDatabase对象

SQLiteDatabase db=dbHelper.getWritableDatabase();

ContentValues values=new ContentValues();

values.put("name", "张三丰");

db.update("user", values, "id=?", new String[]{"1"});

}

}

class ButtonQueryListener implements OnClickListener

{

/* (non-Javadoc)

* @see android.view.View.OnClickListener#onClick(android.view.View)

*/

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

DatebaseHelper dbHelper=new DatebaseHelper(Android_SQLite.this,"test_db",2);

SQLiteDatabase db=dbHelper.getReadableDatabase();

Cursor c=db.rawQuery("select * from user",null);

while(c.moveToNext())

{

int id=c.getInt(c.getColumnIndex("id"));

String name=c.getString(c.getColumnIndexOrThrow("name"));

System.out.println("Query--->id:"+id+" name:"+name);

}

}

}

}

需要注意的是当我们点击“更新数据库”的按钮之后,数据库的版本更新为2。当我们再使用数据库的使用应该获得最新版本的数据库,不然的话会出现Adroid.database.sqlite.SQLiteException: Can't downgrade database from version 2 to 1的异常。

运行效果:

界面

依次点击5个按钮控制台输出如下内容。

本文出处:/prone_3667_1.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。