Android使用SQLite数据库的简单实例nba买球

作者:计算机教程

先画个图,了解下Android下数据库操作的简单流程:

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

nba买球 1

public class MySQLiteHelper extends SQLiteOpenHelper {

1.首先,写一个自己的数据库操作帮助类,这个类继承自Android自带的SQLiteOpenHelper.

    /**
    * 函数的作用:构造方法用来创建工具类

2.在自己的DAO层借助自己的Helper写数据库操作的一些方法

    *param1: context 上下文环境

3.Activity调用DAO层的数据库操作方法进行操作

    *param2: name 数据库的名称

下面例子是:

    *param3:factory 游标对象Cursor 

1.Helper

    *parma4: varsion 数据库的版本 数据库的版本不能从0开始

复制代码 代码如下:

    *nba买球,/
    public MySQLiteHelper(Context context, String name, CursorFactory factory, int version) {
      super(context, "test.db", null, 1);
    }

package cn.learn.db.util;

    /**
    * 用来创建数据库
    */
    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "create table person (_id integer primary key,
              name varchar(20), age integer);";
        db.execSQL(sql);// 真正执行数据的创建
    }

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

   

public class DBHelper extends SQLiteOpenHelper {

    //数据库版本更新

 private final static String DB_NAME ="test.db";//数据库名
 private final static int VERSION = 1;//版本号

    //版本需要发生变化,否则不会执行
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      Log.d("============", oldVersion " : " newVersion);
      if(oldVersion == 1)
      {
        String sql = "alter table person add balance integer;";

 //自带的构造方法
 public DBHelper(Context context, String name, CursorFactory factory,
   int version) {
  super(context, name, factory, version);
 }

        db.execSQL(sql);
      }
    }

 //为了每次构造时不用传入dbName和版本号,自己得新定义一个构造方法
 public DBHelper(Context cxt){
  this(cxt, DB_NAME, null, VERSION);//调用上面的构造方法
 }

 

 //版本变更时
 public DBHelper(Context cxt,int version) {
  this(cxt,DB_NAME,null,version);
 }

    // 每次打开数据库的时候调用
    @Override
    public void onOpen(SQLiteDatabase db) {

 //当数据库创建的时候调用
 public void onCreate(SQLiteDatabase db) {
  String sql = "create table student("
      "id integer primary key autoincrement,"
      "name varchar(20),"
      "age int)";

        super.onOpen(db);
    }

  db.execSQL(sql);
 }

}

本文由nba买球发布,转载请注明来源

关键词: