SQLite官网:sqlite.org。
一、SQLiteOpenHelper类 与 数据库创建、自动升级
该类是一个抽象类。为了数据库的升级需要以及使用方便,往往使用该类的子类进行创建、打开、操作数据库。子类必须实现以下两个方法。
public class UesrDB extends SQLiteOpenHelper { public UesrDB(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); // TODO Auto-generated constructor stub } /* * 如果数据库不存在,SQLiteOpenHelper根据上述构造函数的name, * 在自动创建数据库之后自动执行OnCreate方法(也仅是在第一次被创建时被调用)。 * 在该方法中一般创建数据库中的表、视图等组件。 */ @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub } /* * 如果数据库存在,在上述构造函数中的version表示:数据库的版本号。 * 如果当前传递的版本号比上次创建或升级的数据库版本号高,就调用onUpgrade方法。 * 在该方法中,首先要删除原来数据库的组件,然后创建数据库中的表、视图等组件。 */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } }
该类专门用于数据绑定,数据源是Cursor对象。在数据库的操作中进程会使用到Cursor对象,该对象封装了查询表和查询视图返回的结果集。
SimpleCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to)
三、操作SD卡上的数据库
public SQLiteDatabase openOrCreateDatabase( String path, SQLiteDatabase.CursorFactory factory )
public void onClick_SDCard_Database(View view){ String filename=android.os.Environment.getExternalStorageDirectory()+"/sdcard_test.db"; //数据库文件的存储路径 String createTableSQL="create table testUser(" + "_id autoinc PRIMERY KEY," + "name varchar(20), " + "sex TEXT)"; File file=new File(filename); if(file.exists()){ file.delete(); } SQLiteDatabase database=SQLiteDatabase.openOrCreateDatabase(filename, null); //打开数据库 database.execSQL(createTableSQL); ContentValues values=new ContentValues(); values.put("name","LI"); values.put("sex", "male"); database.insert("testUser", null, values); //(1)SQLiteDatabase的相应方法来操作 String insertSQL="insert into testUser (name,sex) values(?,?)"; database.execSQL(insertSQL,new Object[]{"song","female"}); String selectSQL="select name,sex from testUser where name=?"; Cursor c=database.rawQuery(selectSQL, new String[]{"song"}); //(2)rawQuery直接执行SQL语句 c.moveToFirst(); Toast.makeText(this, c.getString(0)+" "+c.getString(1), Toast.LENGTH_LONG).show(); database.close(); }三、将数据库随应用程序一起发布
四、手机ARM中的数据库
这是内存数据库。该数据库只存在于手机ARM中,当程序退出以后,数据库中的数据会自动释放。