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方法(也仅是在第一次被创建时被调用)。 * 在该方法中一般创建数据库中的表、视图等组件。 */@Overridepublic void onCreate(SQLiteDatabase db) {// TODO Auto-generated method stub}/* * 如果数据库存在,在上述构造函数中的version表示:数据库的版本号。 * 如果当前传递的版本号比上次创建或升级的数据库版本号高,就调用onUpgrade方法。 * 在该方法中,首先要删除原来数据库的组件,然后创建数据库中的表、视图等组件。 */@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stub}}

二、SimpleCursorAdapter类 与 数据绑定

该类专门用于数据绑定,数据源是Cursor对象。在数据库的操作中进程会使用到Cursor对象,该对象封装了查询表和查询视图返回的结果集。

SimpleCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to) 

特别注意(1):
在绑定数据时,Cursor对象返回的记录集中必须包含一个名为“_id”的字段,否则,将无法完成数据绑定。如果没有“_id”字段,可以将某个唯一索引字段或者主键的别名设为"_id"。

特别注意(2):
SQLiteOpenHelper.getReadableDatabase() 和SQLiteOpenHelper.getWritableDatabase() 这两个方法获得的SQLiteDatabase 对象,系统会在也只能在 手机内存 的/data/data/<package name>/database目录中创建或者查找数据库文件。

三、操作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中,当程序退出以后,数据库中的数据会自动释放。

更多相关文章

  1. Android中打电话的数据流程分析
  2. Android(安卓)Studio 快捷键中英文对译
  3. android简单的多人聊天程序--借助Bmob后台数据库
  4. java.lang.IllegalArgumentException: column '_id' does not ex
  5. New Android(安卓)App Project: R cannot be resolved to a vari
  6. 【Android】从无到有:手把手一步步教你自定义RecyclerView手势监
  7. BroadcastReceiver注册的两种方法
  8. Android优化
  9. android开发之获取系统时间的方法

随机推荐

  1. Android Weekly - 第 186 期
  2. Android样式基础--属性动画((Property An
  3. Android模拟器上网问题
  4. EditText属性大全(转)方便自己查阅
  5. 关于Android Studio第一次启动的Fetching
  6. 重磅消息!Android与IOS的合体!高仿IOS动态
  7. Android数据传递
  8. android仿时间轴
  9. 目前的Android恶意软件分类
  10. Fuschia 是什么样的一个操作系统