SQLite是一个轻量级的、嵌入式、关系型数据库,是遵守ACID的关联式数据库管理系统,其主要的是针对于嵌入式设备专门设计的数据库,由于其本身占用的存储控件较小,所以目前已经在Android操作系统之中广泛的使用着,而在SQLite数据库之中可以方便的使用SQL语句实现数据的增删改查等操作,最近版本为SQLite3.
在学习JDBC的时候,如果想取得数据库的操作对象,那么肯定需要有一个数据库的连接对象,这个在JDBC之中使用Connection接口表示。
在Android上进行开发时,一般不用SQLiteDatabase类对象,往往会由一个辅助的工具类SQLiteOpenHelper进行操作的管理。
※ SQLiteDatabase类本身只有一个数据库的操作类,但是如果要想进行数据库的操作,还需要一个android.database.sqlite.SQLiteOpenHelper类帮助下才可以取得进行,但是,SQLiteOpenHelper类是一个抽象类,所以要使用的时候需要定义其子类,并且在子类中要覆写相应的抽象方法。
SQLiteOpenHelper类定义的方法

import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class MyDatabaseHelper extends SQLiteOpenHelper { private static final String DATABASENAME = "mldn.db" ; // 设置数据库的版本 private static final int DATABASERVERSION = 2 ; private static final String TABLENAME = "mytab" ; // 用户最关心的也肯定只是Context public MyDatabaseHelper(Context context) { super(context, DATABASENAME, null, DATABASERVERSION); } /** * 创建数据表 * 在SQLite中设置为Integer、PRIMARY KEY则ID自动增长 */ @Override public void onCreate(SQLiteDatabase db) { String sql = "CREATE TABLE " + TABLENAME + "(" + "id INTEGER PRIMARY KEY ," + "name VARCHAR(50) NOT NULL ," + "birthday DATE NOT NULL" + ")"; db.execSQL(sql) ; // 执行SQL System.out.println("创建:onCreate()。"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { String sql = "DROP TABLE IF EXISTS " + TABLENAME ; db.execSQL(sql) ; System.out.println(" 更新:onUpgrade()。"); this.onCreate(db) ; } }

import android.app.Activity; import android.database.sqlite.SQLiteOpenHelper; import android.os.Bundle; public class MySQLiteDemo extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.main); SQLiteOpenHelper helper = new MyDatabaseHelper(this) ; // 以写的方式打开数据库 helper.getWritableDatabase() ; } }
在MyDatabaseHelper类中回调方法onCreate()只有在使用了SQLiteOpenHelper类中的getReadableDatabase()方法之后才会执行。