1.实现SQLiteHelper来在android中使用SQLite.代码如下,来自android官网。

public class FeedReaderDbHelper extends SQLiteOpenHelper {    // If you change the database schema, you must increment the database version.    public static final int DATABASE_VERSION = 1;    public static final String DATABASE_NAME = "FeedReader.db";    public FeedReaderDbHelper(Context context) {        super(context, DATABASE_NAME, null, DATABASE_VERSION);    }        /*(必须重写的方法)该函数是在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDatabase对象的时候,才会调用这个方法    * 在SQLiteOpenHelper的getReaderDatabase()或者getWritableDatabase()    * 被第一次调用时都会调用该方法    */    public void onCreate(SQLiteDatabase db) {        db.execSQL(SQL_CREATE_ENTRIES);    }    //(必须重写的方法)数据库更新的时候会调用该方法     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {        // This database is only a cache for online data, so its upgrade policy is        // to simply to discard the data and start over        db.execSQL(SQL_DELETE_ENTRIES);        onCreate(db);    }    //可以不用重写    public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {        onUpgrade(db, oldVersion, newVersion);    }}
View Code

其中onUpgrade是:

当我们已经有数据库存在,想保存原有数据,只想增加一个字段等,只需修改版本号,

SQLiteOpenHelper会自动判断版本号是否一致,假如不一致会自动调用onUpgrade函数

通过重载这个函数,你可以做任何你想做的事,包括增、删字段等等~

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("ALTER TABLE user_table ADD age INTEGER DEFAULT 0");
}

2.插入数据

DatabaseHelper dbHelper = new DatabaseHelper(getApplicationContext());SQLiteDatabase db = dbHelper.getWritableDatabase();ContentValues cv = new ContentValues();//key是列名,value是要插入的值                cv.put("name", "value");//rowId是返回的新插入的行号,如果插入失败返回-1long rowId = db.insert("user_table", null, cv);
View Code

其中db.insert("user_table", "column_name", cv);第一个参数是要插入的表名。第二个参数是一个列名,当ContentValues对象为null或者size为0时,该列的值为null。

因为每次调用insert都必须执行insert into tableName(column_name)values(value),当ContentValues的对象为null等,则会执行insert into tableName(column_name)values(null).

若不为空,则执行正常的插入语句

3.查数据

SQLiteDatabase db = mDbHelper.getReadableDatabase();// Define a projection that specifies which columns from the database// you will actually use after this query.//需要查询返回的列名String[] projection = {    FeedEntry._ID,    FeedEntry.COLUMN_NAME_TITLE,    FeedEntry.COLUMN_NAME_UPDATED,    ...    };// How you want the results sorted in the resulting Cursor//查询语句排序String sortOrder =    FeedEntry.COLUMN_NAME_UPDATED + " DESC";Cursor c = db.query(    FeedEntry.TABLE_NAME,  // The table to query    projection,                               // The columns to return    selection,                                // The columns for the WHERE clause    selectionArgs,                            // The values for the WHERE clause    null,                                     // don't group the rows    null,                                     // don't filter by row groups    sortOrder                                 // The sort order    );cursor.moveToFirst();long itemId = cursor.getLong(    cursor.getColumnIndexOrThrow(FeedEntry._ID));
View Code

4.SQLiteDatabase.getWritableDatabase或者getReadableDatabase,如果没有创建数据库,会调用onCreate()

更多相关文章

  1. 【Android】Android的Activity生命周期
  2. Android(安卓)结束进程的方法
  3. Android(安卓)SDK下载和更新失败的解决方法
  4. Android录音下————AudioRecord源码分析
  5. Android全屏Activity的几种方式
  6. Android(安卓)入门第八讲02-WebView的高级用法(Android调用 JS 代
  7. Android(安卓)Instrumentation
  8. Android(安卓)下的Search
  9. Android与JavaScript方法相互调用

随机推荐

  1. HackPorts – Mac OS X 渗透测试框架与工
  2. android内存统计
  3. apk打包和反编译四、为你的应用程序签名
  4. 开始: 其实对Android我只是略知皮毛中的皮
  5. ROOT android 原理 基于(zergRush)
  6. Android:Service:服务的生命周期
  7. android studio升级失败提示 Connection
  8. Android(安卓)sensor架构(二)SystemSensorM
  9. chromium-cronet库的编译用于Android和io
  10. Unity3D项目引用第三方的Android(安卓)Sd