【Database】一个Database的小例子
来源:互联网 发布:中行校园淘宝卡骗局 编辑:程序博客网 时间:2024/05/21 17:02
package com.paad.DatabaseSkeleton;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;public class MyHoardDatabase { /** * Listing 8-1: Skeleton code for contract class constants */ // The index (key) column name for use in where clauses. public static final String KEY_ID = "_id"; // The name and column index of each column in your database. // These should be descriptive. public static final String KEY_GOLD_HOARD_NAME_COLUMN = "GOLD_HOARD_NAME_COLUMN"; public static final String KEY_GOLD_HOARD_ACCESSIBLE_COLUMN = "OLD_HOARD_ACCESSIBLE_COLUMN"; public static final String KEY_GOLD_HOARDED_COLUMN = "GOLD_HOARDED_COLUMN"; // TODO: Create public field for each column in your table. /***/ // Database open/upgrade helper private HoardDBOpenHelper hoardDBOpenHelper; public MyHoardDatabase(Context context) { hoardDBOpenHelper = new HoardDBOpenHelper(context, HoardDBOpenHelper.DATABASE_NAME, null, HoardDBOpenHelper.DATABASE_VERSION); } // Called when you no longer need access to the database. public void closeDatabase() { hoardDBOpenHelper.close(); } private Cursor getAccessibleHoard() { /** * Listing 8-3: Querying a database */ // Specify the result column projection. Return the minimum set // of columns required to satisfy your requirements. String[] result_columns = new String[] { KEY_ID, KEY_GOLD_HOARD_ACCESSIBLE_COLUMN, KEY_GOLD_HOARDED_COLUMN }; // Specify the where clause that will limit our results. String where = KEY_GOLD_HOARD_ACCESSIBLE_COLUMN + "=" + 1; // Replace these with valid SQL statements as necessary. String whereArgs[] = null; String groupBy = null; String having = null; String order = null; SQLiteDatabase db = hoardDBOpenHelper.getWritableDatabase(); Cursor cursor = db.query(HoardDBOpenHelper.DATABASE_TABLE, result_columns, where, whereArgs, groupBy, having, order); // return cursor; } public float getAverageAccessibleHoardValue() { Cursor cursor = getAccessibleHoard(); /** * Listing 8-4: Extracting values from a Cursor */ float totalHoard = 0f; float averageHoard = 0f; // Find the index to the column(s) being used. int GOLD_HOARDED_COLUMN_INDEX = cursor .getColumnIndexOrThrow(KEY_GOLD_HOARDED_COLUMN); // Iterate over the cursors rows. // The Cursor is initialized at before first, so we can // check only if there is a "next" row available. If the // result Cursor is empty this will return false. while (cursor.moveToNext()) { float hoard = cursor.getFloat(GOLD_HOARDED_COLUMN_INDEX); totalHoard += hoard; } // Calculate an average -- checking for divide by zero errors. float cursorCount = cursor.getCount(); averageHoard = cursorCount > 0 ? (totalHoard / cursorCount) : Float.NaN; // Close the Cursor when you've finished with it. cursor.close(); return averageHoard; } public void addNewHoard(String hoardName, float hoardValue, boolean hoardAccessible) { /** * Listing 8-5: Inserting new rows into a database */ // Create a new row of values to insert. ContentValues newValues = new ContentValues(); // Assign values for each row. newValues.put(KEY_GOLD_HOARD_NAME_COLUMN, hoardName); newValues.put(KEY_GOLD_HOARDED_COLUMN, hoardValue); newValues.put(KEY_GOLD_HOARD_ACCESSIBLE_COLUMN, hoardAccessible); // [ ... Repeat for each column / value pair ... ] // Insert the row into your table SQLiteDatabase db = hoardDBOpenHelper.getWritableDatabase(); db.insert(HoardDBOpenHelper.DATABASE_TABLE, null, newValues); } public void updateHoardValue(int hoardId, float newHoardValue) { /** * Listing 8-6: Updating a database row */ // Create the updated row Content Values. ContentValues updatedValues = new ContentValues(); // Assign values for each row. updatedValues.put(KEY_GOLD_HOARDED_COLUMN, newHoardValue); // [ ... Repeat for each column to update ... ] // Specify a where clause the defines which rows should be // updated. Specify where arguments as necessary. String where = KEY_ID + "=" + hoardId; String whereArgs[] = null; // Update the row with the specified index with the new values. SQLiteDatabase db = hoardDBOpenHelper.getWritableDatabase(); db.update(HoardDBOpenHelper.DATABASE_TABLE, updatedValues, where, whereArgs); } public void deleteEmptyHoards() { /** * Listing 8-7: Deleting a database row */ // Specify a where clause that determines which row(s) to delete. // Specify where arguments as necessary. String where = KEY_GOLD_HOARDED_COLUMN + "=" + 0; String whereArgs[] = null; // Delete the rows that match the where clause. SQLiteDatabase db = hoardDBOpenHelper.getWritableDatabase(); db.delete(HoardDBOpenHelper.DATABASE_TABLE, where, whereArgs); } /** * Listing 8-2: Implementing an SQLite Open Helper */ private static class HoardDBOpenHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "myDatabase.db"; private static final String DATABASE_TABLE = "GoldHoards"; private static final int DATABASE_VERSION = 1; // SQL Statement to create a new database. private static final String DATABASE_CREATE = "create table " + DATABASE_TABLE + " (" + KEY_ID + " integer primary key autoincrement, " + KEY_GOLD_HOARD_NAME_COLUMN + " text not null, " + KEY_GOLD_HOARDED_COLUMN + " float, " + KEY_GOLD_HOARD_ACCESSIBLE_COLUMN + " integer);"; public HoardDBOpenHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } // Called when no database exists in disk and the helper class needs // to create a new one. @Override public void onCreate(SQLiteDatabase db) { db.execSQL(DATABASE_CREATE); } // Called when there is a database version mismatch meaning that // the version of the database on disk needs to be upgraded to // the current version. @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // Log the version upgrade. Log.w("TaskDBAdapter", "Upgrading from version " + oldVersion + " to " + newVersion + ", which will destroy all old data"); // Upgrade the existing database to conform to the new // version. Multiple previous versions can be handled by // comparing oldVersion and newVersion values. // The simplest case is to drop the old table and create a new one. db.execSQL("DROP TABLE IF IT EXISTS " + DATABASE_TABLE); // Create a new one. onCreate(db); } }}
0 0
- 【Database】一个Database的小例子
- web sql database 的例子
- Oracle Database的一个bug
- 创建Oracle sharding database的例子
- DataBase
- Database
- database
- Database
- database
- Database
- database
- database
- database
- Database
- Database
- DATABASE
- Database
- database
- ngnix:slab机制
- 平台构建需要加入的功能想法
- 解释计划
- ios--OpenCV--RGB与HSV颜色空间的转换
- ax+by=c 且X∈[x1,x2] Y∈[y1,y2] 可行解组数 exgcd
- 【Database】一个Database的小例子
- 定制iOS 7中的导航栏和状态栏
- 亲测ubuntu下android源码的下载
- SharePoint品牌化和自定义--第一章节--SharePoint品牌化介绍(1)--为什么要进行SharePoint品牌化
- 记住一个 中国科技界一个耻辱的事情,希望更多人看到,并引以为戒。
- 用sourceinsight查看ns2源码
- ACM 次方求摸
- ngnix:共享内存
- fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏