在Android应用程序中使用SQLite数据库以及怎么用(三)

2014-11-24 09:53:16 · 作者: · 浏览: 2
etReadableDatabase() 、 getWriteableDatabase() 可以获得SQLiteDatabase对象,通过该对象可以对数据库进行操作;

  *

  * 第二:提供onCreate() ; onUpgrade() 两个回调函数,允许我们再创建和删除数据库时,进行自己的操作;

  *

  * */

  public class MySQLiteOpenHelper extends SQLiteOpenHelper {

  /* 构造方法,调用父类SQLiteOpenHelper的构造函数 */

  /* 参1:上下文环境;参2:数据库名称(以.db结尾) ; 参3:游标工厂(默认为null) ; 参4:代表使用数据库模型版本的证书*/

  public MySQLiteOpenHelper(Context context, String name, CursorFactory factory, int version) {

  super(context, name, factory, version);

  }

  /* 根据需要对SQLiteDatabase 的对象填充表和数据初始化 */

  /* 该方法时在第一次创建的时候执行,实际上时第一次得到SQLiteDatabase对象的时侯才会调用这个方法 */

  public void onCreate(SQLiteDatabase db) {

  // TODO 创建数据库后,对数据库的操作

  }

  /* 将数据库从旧的模型转换为新的模型 *//* 参1:对象 ; 参2:旧版本号 ; 参3:新版本号 */

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

  // TODO 更改数据库版本的操作

  }

  /* 打开数据库执行的函数 */

  public void onOpen(SQLiteDatabase db) {

  // TODO 每次成功打开数据库后首先被执行

  super.onOpen(db);

  }

  }

  package com.example.sqlite;

  import android.content.Context;

  import android.database.sqlite.SQLiteDatabase;

  import android.database.sqlite.SQLiteDatabase.CursorFactory;

  import android.database.sqlite.SQLiteOpenHelper;

  /* SQLiteOpenHelper的子类, 用于操作数据库

  *

  * SQLiteOpenHelper 是一个辅助类,用来管理数据库的创建和版本,提供两方面的功能;

  *

  * 第一:getReadableDatabase() 、 getWriteableDatabase() 可以获得SQLiteDatabase对象,通过该对象可以对数据库进行操作;

  *

  * 第二:提供onCreate() ; onUpgrade() 两个回调函数,允许我们再创建和删除数据库时,进行自己的操作;

  *

  * */

  public class MySQLiteOpenHelper extends SQLiteOpenHelper {

  /* 构造方法,调用父类SQLiteOpenHelper的构造函数 */

  /* 参1:上下文环境;参2:数据库名称(以.db结尾) ; 参3:游标工厂(默认为null) ; 参4:代表使用数据库模型版本的证书*/

  public MySQLiteOpenHelper(Context context, String name, CursorFactory factory, int version) {

  super(context, name, factory, version);

  }

  /* 根据需要对SQLiteDatabase 的对象填充表和数据初始化 */

  /* 该方法时在第一次创建的时候执行,实际上时第一次得到SQLiteDatabase对象的时侯才会调用这个方法 */

  public void onCreate(SQLiteDatabase db) {

  // TODO 创建数据库后,对数据库的操作

  }

  /* 将数据库从旧的模型转换为新的模型 *//* 参1:对象 ; 参2:旧版本号 ; 参3:新版本号 */

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

  // TODO 更改数据库版本的操作

  }

  /* 打开数据库执行的函数 */

  public void onOpen(SQLiteDatabase db) {

  // TODO 每次成功打开数据库后首先被执行

  super.onOpen(db);

  }

  }

  案例代码如下:

  Java代码

  package com.example.sqlite;

  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;

  import android.widget.Toast;

  public class MainActivity extends Activity {

  /* 设置表相关信息的常量 */

  final String MYTAB = "t_score";

  final String MYNAME ="name";

  final String MYSCORE = "score";

  MySQLiteOpenHelper helper;

  private Button selectData,createDatabase,createTable,insertData,updateData,deleteData;

  /* 获取组建对象 */

  public void init(){

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

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

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

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

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

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

  }

  protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

  /* 初始化组件对象 */

  init();

  /* 创建数据库 */

  createDatabase.setOn