作者: 熊波  来源: 博客园  发布时间:2011-05-24 23:22

http://archive.cnblogs.com/a/2050659/

一、SQLITE数据库字段类型

  NULL: 表示一个NULL值

  INTEGER: 用来存储一个整数,根据大小可以使用1,2,3,4,6,8位来存储.

  REAL: IEEE 浮点数

  TEXT: 按照字符串来存储

  BLOB: 按照二进制值存储,不做任何改变.

id自增长字段:id integer primary key autoincrement

二、SQLITE的CRUD操作

  1. insert操作

    ContentValues values=new ContentValues(); values.put("name", person.getName()); database.insert("person", null, values);
  2. update操作

    ContentValues values=new ContentValues(); values.put("name", person.getName()); database.update("person", values, "personid=?", new String[]{String.valueOf(person.getPersonId())});
  3. select操作

    Cursor cursor=database.query("person", null, null, null, null, null, null, offerset+","+maxResult); while(cursor.moveToNext()){ int personIda =cursor.getInt(cursor.getColumnIndex("personid")); String name=cursor.getString(cursor.getColumnIndex("name")); Person person=new Person(personIda,name); persons.add(person); }
  4. delete操作
    database.delete("person", "personid=?", new String[]{String.valueOf(personId)});

三、数据库版本问题

为防止应用的数据库版本变更,每次发布的应用都应指定相应的数据库版本;

如果数据库结构有变动,那么针对版本的变更进行相关升级操作

四、数据库事务操作

database.beginTransaction();//开启事务
database.setTransactionSuccessful();//当操作成功的时候把事务状态改为成功状态
database.endTransaction();//提交事务  会根据事务的状态来提交事务还是回滚事务

附wordpress的数据库类源码

package org.wordpress.android;import java.text.StringCharacterIterator;
import java.util.HashMap;
import java.util.Vector;import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;public class WordPressDB {private static final int DATABASE_VERSION = 9;private static final String CREATE_TABLE_SETTINGS = "create table if not exists accounts (id integer primary key autoincrement, "+ "url text, blogName text, username text, password text, imagePlacement text, centerThumbnail boolean, fullSizeImage boolean, maxImageWidth text, maxImageWidthId integer, lastCommentId integer, runService boolean);";private static final String CREATE_TABLE_EULA = "create table if not exists eula (id integer primary key autoincrement, "+ "read integer not null, interval text, statsdate integer);";private static final String SETTINGS_TABLE = "accounts";private static final String DATABASE_NAME = "wordpress";//localDraftsprivate static final String CREATE_TABLE_LOCALDRAFTS = "create table if not exists localdrafts (id integer primary key autoincrement, blogID text, uploaded boolean, title text,content text, picturePaths text, tags text, categories text, publish boolean);";private static final String CREATE_TABLE_LOCALPAGEDRAFTS = "create table if not exists localpagedrafts (id integer primary key autoincrement, blogID text, uploaded boolean, title text,content text, picturePaths text, publish boolean);";private static final String LOCALDRAFTS_TABLE = "localdrafts";private static final String LOCALPAGEDRAFTS_TABLE = "localpagedrafts";private static final String ADD_LATITUDE = "alter table localdrafts add latitude real";private static final String ADD_LONGITUDE = "alter table localdrafts add longitude real";private static final String ADD_STATUS = "alter table localdrafts add status text";private static final String ADD_PAGE_STATUS = "alter table localpagedrafts add status text";//postStoreprivate static final String CREATE_TABLE_POSTSTORE = "create table if not exists poststore (blogID text, postID text, title text, postDate text, postDateFormatted text);";private static final String CREATE_TABLE_PAGES = "create table if not exists pages (blogID text, pageID text, parentID text, title text, pageDate text, pageDateFormatted text);";private static final String CREATE_TABLE_COMMENTS = "create table if not exists comments (blogID text, postID text, iCommentID integer, author text, comment text, commentDate text, commentDateFormatted text, status text, url text, email text, postTitle text);";private static final String POSTSTORE_TABLE = "poststore";private static final String PAGES_TABLE = "pages";private static final String COMMENTS_TABLE = "comments";//eulaprivate static final String EULA_TABLE = "eula";//categoriesprivate static final String CREATE_TABLE_CATEGORIES = "create table if not exists cats (id integer primary key autoincrement, "+ "blog_id text, wp_id integer, category_name text not null);";private static final String CATEGORIES_TABLE = "cats";//for capturing blogID, trac ticket #private static final String ADD_BLOGID = "alter table accounts add blogId integer;";private static final String UPDATE_BLOGID = "update accounts set blogId = 1;"; //set them all to 1 if updating//add notification optionsprivate static final String ADD_SOUND_OPTION = "alter table eula add sound boolean default false;";private static final String ADD_VIBRATE_OPTION = "alter table eula add vibrate boolean default false;";private static final String ADD_LIGHT_OPTION = "alter table eula add light boolean default false;";private static final String ADD_TAGLINE = "alter table eula add tagline text;";private static final String ADD_TAGLINE_FLAG = "alter table eula add tagline_flag boolean default false;";//for capturing blogID, trac ticket #private static final String ADD_LOCATION_FLAG = "alter table accounts add location boolean default false;";//fix commentID data typeprivate static final String ADD_NEW_COMMENT_ID = "ALTER TABLE comments ADD iCommentID INTEGER;";private static final String COPY_COMMENT_IDS = "UPDATE comments SET iCommentID = commentID;";//add wordpress.com stats login infoprivate static final String ADD_DOTCOM_USERNAME = "alter table accounts add dotcom_username text;";private static final String ADD_DOTCOM_PASSWORD = "alter table accounts add dotcom_password text;";private static final String ADD_API_KEY = "alter table accounts add api_key text;";private static final String ADD_API_BLOGID = "alter table accounts add api_blogid text;";//add wordpress.com flag and version columnprivate static final String ADD_DOTCOM_FLAG = "alter table accounts add dotcomFlag boolean default false;";private static final String ADD_WP_VERSION = "alter table accounts add wpVersion text;";//add new unique identifier to no longer use device imeiprivate static final String ADD_UNIQUE_ID = "alter table eula add uuid text;";//add new table for QuickPress homescreen shortcutsprivate static final String CREATE_TABLE_QUICKPRESS_SHORTCUTS = "create table if not exists quickpress_shortcuts (id integer primary key autoincrement, accountId text, name text);";private static final String QUICKPRESS_SHORTCUTS_TABLE = "quickpress_shortcuts";private SQLiteDatabase db;public WordPressDB(Context ctx) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);//db.execSQL("DROP TABLE IF EXISTS "+ SETTINGS_TABLE);db.execSQL(CREATE_TABLE_SETTINGS);//added eula to this class to fix trac #49db.execSQL(CREATE_TABLE_EULA);//int test = db.getVersion();db.execSQL(CREATE_TABLE_LOCALDRAFTS);db.execSQL(CREATE_TABLE_LOCALPAGEDRAFTS);db.execSQL(CREATE_TABLE_POSTSTORE);db.execSQL(CREATE_TABLE_PAGES);db.execSQL(CREATE_TABLE_COMMENTS);db.execSQL(CREATE_TABLE_CATEGORIES);db.execSQL(CREATE_TABLE_QUICKPRESS_SHORTCUTS);try {if (db.getVersion() < 1){ //user is new installdb.execSQL(ADD_BLOGID);db.execSQL(UPDATE_BLOGID);db.execSQL(ADD_SOUND_OPTION);db.execSQL(ADD_VIBRATE_OPTION);db.execSQL(ADD_LIGHT_OPTION);db.execSQL(ADD_LOCATION_FLAG);db.execSQL(ADD_LATITUDE);db.execSQL(ADD_LONGITUDE);db.execSQL(ADD_TAGLINE);db.execSQL(ADD_TAGLINE_FLAG);db.execSQL(ADD_DOTCOM_USERNAME);db.execSQL(ADD_DOTCOM_PASSWORD);db.execSQL(ADD_API_KEY);db.execSQL(ADD_API_BLOGID);db.execSQL(ADD_DOTCOM_FLAG);db.execSQL(ADD_WP_VERSION);db.execSQL(ADD_UNIQUE_ID);db.execSQL(ADD_STATUS);db.execSQL(ADD_PAGE_STATUS);db.setVersion(DATABASE_VERSION); //set to latest revision}else if (db.getVersion() == 1){ //v1.0 or v1.0.1db.execSQL(ADD_BLOGID);db.execSQL(UPDATE_BLOGID);db.execSQL(ADD_SOUND_OPTION);db.execSQL(ADD_VIBRATE_OPTION);db.execSQL(ADD_LIGHT_OPTION);db.execSQL(ADD_LOCATION_FLAG);db.execSQL(ADD_LATITUDE);db.execSQL(ADD_LONGITUDE);db.execSQL(ADD_TAGLINE);db.execSQL(ADD_TAGLINE_FLAG);db.execSQL(ADD_NEW_COMMENT_ID);db.execSQL(COPY_COMMENT_IDS);db.execSQL(ADD_DOTCOM_USERNAME);db.execSQL(ADD_DOTCOM_PASSWORD);db.execSQL(ADD_API_KEY);db.execSQL(ADD_API_BLOGID);db.execSQL(ADD_DOTCOM_FLAG);db.execSQL(ADD_WP_VERSION);db.execSQL(ADD_UNIQUE_ID);db.execSQL(ADD_STATUS);db.execSQL(ADD_PAGE_STATUS);db.setVersion(DATABASE_VERSION); //set to latest revision}else if (db.getVersion()  == 2){db.execSQL(ADD_SOUND_OPTION);db.execSQL(ADD_VIBRATE_OPTION);db.execSQL(ADD_LIGHT_OPTION);db.execSQL(ADD_LOCATION_FLAG);db.execSQL(ADD_LATITUDE);db.execSQL(ADD_LONGITUDE);db.execSQL(ADD_TAGLINE);db.execSQL(ADD_TAGLINE_FLAG);db.execSQL(ADD_NEW_COMMENT_ID);db.execSQL(COPY_COMMENT_IDS);db.execSQL(ADD_DOTCOM_USERNAME);db.execSQL(ADD_DOTCOM_PASSWORD);db.execSQL(ADD_API_KEY);db.execSQL(ADD_API_BLOGID);db.execSQL(ADD_DOTCOM_FLAG);db.execSQL(ADD_WP_VERSION);db.execSQL(ADD_UNIQUE_ID);db.execSQL(ADD_STATUS);db.execSQL(ADD_PAGE_STATUS);db.setVersion(DATABASE_VERSION); }else if (db.getVersion() == 3){db.execSQL(ADD_LOCATION_FLAG);db.execSQL(ADD_LATITUDE);db.execSQL(ADD_LONGITUDE);db.execSQL(ADD_TAGLINE);db.execSQL(ADD_TAGLINE_FLAG);db.execSQL(ADD_NEW_COMMENT_ID);db.execSQL(COPY_COMMENT_IDS);db.execSQL(ADD_DOTCOM_USERNAME);db.execSQL(ADD_DOTCOM_PASSWORD);db.execSQL(ADD_API_KEY);db.execSQL(ADD_API_BLOGID);db.execSQL(ADD_DOTCOM_FLAG);db.execSQL(ADD_WP_VERSION);db.execSQL(ADD_UNIQUE_ID);db.execSQL(ADD_STATUS);db.execSQL(ADD_PAGE_STATUS);db.setVersion(DATABASE_VERSION); }else if (db.getVersion() == 4){db.execSQL(ADD_LOCATION_FLAG);db.execSQL(ADD_LATITUDE);db.execSQL(ADD_LONGITUDE);db.execSQL(ADD_TAGLINE);db.execSQL(ADD_TAGLINE_FLAG);db.execSQL(ADD_NEW_COMMENT_ID);db.execSQL(COPY_COMMENT_IDS);db.execSQL(ADD_DOTCOM_USERNAME);db.execSQL(ADD_DOTCOM_PASSWORD);db.execSQL(ADD_API_KEY);db.execSQL(ADD_API_BLOGID);db.execSQL(ADD_DOTCOM_FLAG);db.execSQL(ADD_WP_VERSION);db.execSQL(ADD_UNIQUE_ID);db.execSQL(ADD_STATUS);db.execSQL(ADD_PAGE_STATUS);db.setVersion(DATABASE_VERSION);}else if (db.getVersion() == 5){db.execSQL(ADD_TAGLINE);db.execSQL(ADD_TAGLINE_FLAG);db.execSQL(ADD_NEW_COMMENT_ID);db.execSQL(COPY_COMMENT_IDS);db.execSQL(ADD_DOTCOM_USERNAME);db.execSQL(ADD_DOTCOM_PASSWORD);db.execSQL(ADD_API_KEY);db.execSQL(ADD_API_BLOGID);db.execSQL(ADD_DOTCOM_FLAG);db.execSQL(ADD_WP_VERSION);db.execSQL(ADD_UNIQUE_ID);db.execSQL(ADD_STATUS);db.execSQL(ADD_PAGE_STATUS);db.setVersion(DATABASE_VERSION);}else if (db.getVersion() == 6){db.execSQL(ADD_NEW_COMMENT_ID);db.execSQL(COPY_COMMENT_IDS);db.execSQL(ADD_DOTCOM_USERNAME);db.execSQL(ADD_DOTCOM_PASSWORD);db.execSQL(ADD_API_KEY);db.execSQL(ADD_API_BLOGID);db.execSQL(ADD_DOTCOM_FLAG);db.execSQL(ADD_WP_VERSION);db.execSQL(ADD_UNIQUE_ID);db.execSQL(ADD_STATUS);db.execSQL(ADD_PAGE_STATUS);db.setVersion(DATABASE_VERSION);}else if (db.getVersion() == 7){db.execSQL(ADD_UNIQUE_ID);db.execSQL(ADD_STATUS);db.execSQL(ADD_PAGE_STATUS);db.setVersion(DATABASE_VERSION);}else if (db.getVersion() == 8){db.execSQL(ADD_STATUS);db.execSQL(ADD_PAGE_STATUS);db.setVersion(DATABASE_VERSION);}} catch (SQLException e) {e.printStackTrace();}db.close();}public boolean addAccount(Context ctx, String url, String blogName, String username, String password, String imagePlacement, boolean centerThumbnail, boolean fullSizeImage, String maxImageWidth, int maxImageWidthId, boolean runService, int blogId, boolean wpcom, String wpVersion) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);ContentValues values = new ContentValues();values.put("url", url);values.put("blogName", blogName);values.put("username", username);values.put("password", password);values.put("imagePlacement", imagePlacement);values.put("centerThumbnail", centerThumbnail);values.put("fullSizeImage", fullSizeImage);values.put("maxImageWidth", maxImageWidth);values.put("maxImageWidthId", maxImageWidthId);values.put("runService", runService);values.put("blogId", blogId);values.put("dotcomFlag", wpcom);values.put("wpVersion", wpVersion);boolean returnValue = db.insert(SETTINGS_TABLE, null, values) > 0;db.close();return (returnValue);}    public Vector<HashMap<String, Object>> getAccounts(Context ctx) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Cursor c = db.query(SETTINGS_TABLE, new String[] { "id", "blogName", "username", "runService", "blogId", "url"}, null, null, null, null, null);String id;String blogName, username, url;int blogId;int runService;int numRows = c.getCount();c.moveToFirst();Vector<HashMap<String, Object>> accounts = new Vector<HashMap<String, Object>>();for (int i = 0; i < numRows; i++) {id = c.getString(0);blogName = c.getString(1);username = c.getString(2);runService = c.getInt(3);blogId = c.getInt(4);url = c.getString(5);if (id != null){    HashMap<String, Object> thisHash = new HashMap<String, Object>();thisHash.put("id", id);thisHash.put("blogName", blogName);thisHash.put("username", username);thisHash.put("runService", runService);thisHash.put("blogId", blogId);thisHash.put("url", url);accounts.add(thisHash);}c.moveToNext();}c.close();db.close();return accounts;}public boolean checkMatch(Context ctx, String blogName, String blogURL, String username) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Cursor c = db.query(SETTINGS_TABLE, new String[] {"blogName", "url"}, "blogName='" + addSlashes(blogName) + "' AND url='" + addSlashes(blogURL) + "'" + " AND username='" + username + "'", null, null, null, null);int numRows = c.getCount();boolean result = false;if (numRows > 0){//this account is already saved, yo!result = true;}c.close();db.close();return result;}public static String addSlashes( String text ){     final StringBuffer sb                   = new StringBuffer( text.length() * 2 );final StringCharacterIterator iterator  = new StringCharacterIterator( text );char character = iterator.current();while( character != StringCharacterIterator.DONE ){if( character == '"' ) sb.append( "\\\"" );else if( character == '\'' ) sb.append( "\'\'" );else if( character == '\\' ) sb.append( "\\\\" );else if( character == '\n' ) sb.append( "\\n" );else if( character == '{'  ) sb.append( "\\{" );else if( character == '}'  ) sb.append( "\\}" );else sb.append( character );character = iterator.next();}return sb.toString();}public boolean saveSettings(Context ctx, String id, String url, String username, String password, String imagePlacement, boolean centerThumbnail, boolean fullSizeImage, String maxImageWidth, int maxImageWidthId, boolean location, boolean isWPCom, String originalUsername) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);ContentValues values = new ContentValues();values.put("url", url);values.put("username", username);values.put("password", password);values.put("imagePlacement", imagePlacement);values.put("centerThumbnail", centerThumbnail);values.put("fullSizeImage", fullSizeImage);values.put("maxImageWidth", maxImageWidth);values.put("maxImageWidthId", maxImageWidthId);values.put("location", location);boolean returnValue = db.update(SETTINGS_TABLE, values, "id=" + id, null) > 0;if (isWPCom){//update the login for other wordpress.com accountsContentValues userPass = new ContentValues();userPass.put("username", username);userPass.put("password", password);returnValue = db.update(SETTINGS_TABLE, userPass, "username=\"" + originalUsername + "\" AND dotcomFlag=1" , null) > 0;}db.close();return (returnValue);}public boolean deleteAccount(Context ctx, String id) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);int rowsAffected = db.delete(SETTINGS_TABLE, "id=" + id, null);boolean returnValue = false;if (rowsAffected > 0){returnValue = true;}// delete QuickPress homescreen shortcuts connected with this accountVector<HashMap<String, Object>> shortcuts = this.getQuickPressShortcuts(ctx, id);for(int i = 0; i < shortcuts.size(); i++) {HashMap<String, Object> shortcutHash = shortcuts.get(i);Intent shortcutIntent = new Intent();shortcutIntent.setClassName(editPost.class.getPackage().getName(), editPost.class.getName());shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);shortcutIntent.setAction(Intent.ACTION_VIEW); Intent broadcastShortcutIntent = new Intent();broadcastShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);broadcastShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, shortcutHash.get("name").toString());broadcastShortcutIntent.putExtra("duplicate", false);broadcastShortcutIntent.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT");ctx.sendBroadcast(broadcastShortcutIntent);deleteQuickPressShortcut(ctx, shortcutHash.get("id").toString());}db.close();return (returnValue);}public Vector<Object> loadSettings(Context ctx, String id) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Cursor c = db.query(SETTINGS_TABLE, new String[] { "url", "blogName", "username", "password", "imagePlacement", "centerThumbnail", "fullSizeImage", "maxImageWidth", "maxImageWidthId", "runService", "blogId", "location", "dotcomFlag"}, "id=" + id, null, null, null, null);int numRows = c.getCount();c.moveToFirst();Vector<Object> returnVector = new Vector<Object>();if (numRows > 0){if (c.getString(0) != null){returnVector.add(c.getString(0));returnVector.add(c.getString(1));returnVector.add(c.getString(2));returnVector.add(c.getString(3));returnVector.add(c.getString(4));returnVector.add(c.getInt(5));returnVector.add(c.getString(6));returnVector.add(c.getString(7));returnVector.add(c.getInt(8));returnVector.add(c.getInt(9));returnVector.add(c.getInt(10));returnVector.add(c.getInt(11));returnVector.add(c.getInt(12));}else{returnVector = null;}}c.close();db.close();return returnVector;}public Vector<String> loadStatsLogin(Context ctx, String id) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Cursor c = db.query(SETTINGS_TABLE, new String[] { "dotcom_username", "dotcom_password"}, "id=" + id, null, null, null, null);c.moveToFirst();Vector<String> returnVector = new Vector<String>();if (c.getString(0) != null){returnVector.add(c.getString(0));returnVector.add(c.getString(1));}else{returnVector = null;}c.close();db.close();return returnVector;}public boolean saveStatsLogin(Context ctx, String id, String statsUsername, String statsPassword) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);ContentValues values = new ContentValues();values.put("dotcom_username", statsUsername);values.put("dotcom_password", statsPassword);boolean returnValue = db.update(SETTINGS_TABLE, values, "id=" + id, null) > 0;db.close();return (returnValue);}public Vector<String> loadAPIData(Context ctx, String id) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Cursor c = db.query(SETTINGS_TABLE, new String[] { "api_key", "api_blogid"}, "id=" + id, null, null, null, null);c.moveToFirst();Vector<String> returnVector = new Vector<String>();if (c.getString(0) != null){returnVector.add(c.getString(0));returnVector.add(c.getString(1));}else{returnVector = null;}c.close();db.close();return returnVector;}public boolean saveAPIData(Context ctx, String id, String apiKey, String apiBlogID) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);ContentValues values = new ContentValues();values.put("api_key", apiKey);values.put("api_blogid", apiBlogID);boolean returnValue = db.update(SETTINGS_TABLE, values, "id=" + id, null) > 0;db.close();return (returnValue);}public int getLatestCommentID(Context ctx, String id) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);int returnInt = 0;Cursor c = db.query(SETTINGS_TABLE, new String[] { "lastCommentId"  }, "id=" + id, null, null, null, null);c.moveToFirst();if (c.getString(0) != null){returnInt = Integer.valueOf(c.getString(0));}c.close();db.close();return returnInt;}public boolean updateLatestCommentID(Context ctx, String id, Integer newCommentID) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);ContentValues values = new ContentValues();values.put("lastCommentId", newCommentID);boolean returnValue = db.update(SETTINGS_TABLE, values, "id=" + id, null) > 0;db.close();return (returnValue);}public Vector<Integer> getNotificationAccounts(Context ctx) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Cursor c = null;try {c = db.query(SETTINGS_TABLE, new String[] { "id" }, "runService=1", null, null, null, null);} catch (Exception e) {e.printStackTrace();}int numRows = c.getCount();c.moveToFirst();Vector<Integer> returnVector = new Vector<Integer>();for (int i = 0; i < numRows; ++i) {int tempID = c.getInt(0);    returnVector.add(tempID);c.moveToNext();}c.close();db.close();return returnVector;}public String getAccountName(Context ctx, String accountID) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);String accountName = "";Cursor c = db.query(SETTINGS_TABLE, new String[] { "blogName"  }, "id=" + accountID, null, null, null, null);c.moveToFirst();if (c.getString(0) != null){accountName = c.getString(0);}c.close();db.close();return accountName;}public void updateNotificationFlag(Context ctx, int id, boolean flag) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);ContentValues values = new ContentValues();int iFlag = 0;if (flag){iFlag = 1;}values.put("runService", iFlag);boolean returnValue = db.update(SETTINGS_TABLE, values, "id=" + String.valueOf(id), null) > 0;if(returnValue){}db.close();}public void updateNotificationSettings(Context ctx, String interval, boolean sound, boolean vibrate, boolean light, boolean tagline_flag, String tagline) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);ContentValues values = new ContentValues();values.put("interval", interval);values.put("sound", sound);values.put("vibrate", vibrate);values.put("light", light);values.put("tagline_flag", tagline_flag);values.put("tagline", tagline);boolean returnValue = db.update("eula", values, null, null) > 0;if (returnValue){};db.close();}public String getInterval(Context ctx) {
db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Cursor c = db.query("eula", new String[] { "interval" }, "id=0", null, null, null, null);int numRows = c.getCount();c.moveToFirst();String returnValue = "";if (numRows == 1){if (c.getString(0) != null){returnValue = c.getString(0);}}c.close();db.close();return returnValue;}public HashMap<String, Object> getNotificationOptions(Context ctx) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Cursor c = db.query("eula", new String[] { "id", "sound", "vibrate", "light", "tagline_flag", "tagline"}, "id=0", null, null, null, null);int sound, vibrate, light;String tagline;HashMap<String, Object> thisHash = new HashMap<String, Object>();int numRows = c.getCount();if (numRows >= 1){c.moveToFirst();sound = c.getInt(1);vibrate = c.getInt(2);light = c.getInt(3);tagline = c.getString(5);thisHash.put("sound", sound);thisHash.put("vibrate", vibrate);thisHash.put("light", light);thisHash.put("tagline_flag", c.getInt(4));if (tagline != null){thisHash.put("tagline", tagline);}else{thisHash.put("tagline", "");}}c.close();db.close();return thisHash;}//localDraftspublic boolean saveLocalDraft(Context ctx, String blogID, String title, String content, String picturePaths, String tags, String categories, String status, Double latitude, Double longitude) {boolean returnValue = false;db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);ContentValues values = new ContentValues();values.put("blogID", blogID);values.put("title", title);values.put("content", content);values.put("picturePaths", picturePaths);values.put("tags", tags);values.put("categories", categories);values.put("status", status);values.put("latitude", latitude);values.put("longitude", longitude);returnValue = db.insert(LOCALDRAFTS_TABLE, null, values) > 0;db.close();return (returnValue);}public boolean updateLocalDraft(Context ctx, String blogID, String postID, String title, String content, String picturePaths, String tags, String categories, String status, Double latitude, Double longitude) {boolean returnValue = false;db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);ContentValues values = new ContentValues();values.put("blogID", blogID);values.put("title", title);values.put("content", content);values.put("picturePaths", picturePaths);values.put("tags", tags);values.put("categories", categories);values.put("status", status);values.put("latitude", latitude);values.put("longitude", longitude);returnValue = db.update(LOCALDRAFTS_TABLE, values, "id=" + postID, null) > 0;db.close();return (returnValue);}public Vector<HashMap<String, Object>> loadPosts(Context ctx, String blogID) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Vector<HashMap<String, Object>> returnVector = new Vector<HashMap<String, Object>>();Cursor c = db.query(LOCALDRAFTS_TABLE, new String[] { "id", "title", "status", "uploaded"}, "blogID=" + blogID, null, null, null, "id desc");int numRows = c.getCount();c.moveToFirst();for (int i = 0; i < numRows; ++i) {if (c.getString(0) != null){HashMap<String, Object> returnHash = new HashMap<String, Object>();returnHash.put("id", c.getInt(0));returnHash.put("title", c.getString(1));returnHash.put("status", c.getString(2));returnHash.put("uploaded", c.getInt(3));returnVector.add(i, returnHash);}c.moveToNext();}c.close();db.close();if (numRows == 0){returnVector = null;}return returnVector;}public Vector<HashMap<String, Object>> loadPost(Context ctx, String postID) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Vector<HashMap<String, Object>> returnVector = new Vector<HashMap<String, Object>>();Cursor c = db.query(LOCALDRAFTS_TABLE, new String[] { "title", "content", "picturePaths", "tags", "categories", "status", "latitude", "longitude"}, "id=" + postID, null, null, null, null);int numRows = c.getCount();c.moveToFirst();for (int i = 0; i < numRows; ++i) {if (c.getString(0) != null){HashMap<String, Object> returnHash = new HashMap<String, Object>();returnHash.put("title", c.getString(0));returnHash.put("content", c.getString(1));returnHash.put("picturePaths", c.getString(2));returnHash.put("tags", c.getString(3));returnHash.put("categories", c.getString(4));returnHash.put("status", c.getString(5));returnHash.put("latitude", c.getDouble(6));returnHash.put("longitude", c.getDouble(7));returnVector.add(i, returnHash);}c.moveToNext();}c.close();db.close();if (numRows == 0){returnVector = null;}return returnVector;}public boolean deletePost(Context ctx, String postID) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);boolean returnValue = false;int result = 0;result = db.delete(LOCALDRAFTS_TABLE, "id=" + postID, null);db.close();if (result == 1){returnValue = true;}return returnValue;}public boolean saveLocalPageDraft(Context ctx, String blogID, String title, String content, String picturePaths, String status) {boolean returnValue = false;db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);ContentValues values = new ContentValues();values.put("blogID", blogID);values.put("title", title);values.put("content", content);values.put("picturePaths", picturePaths);values.put("status", status);returnValue = db.insert(LOCALPAGEDRAFTS_TABLE, null, values) > 0;db.close();return (returnValue);}public boolean updateLocalPageDraft(Context ctx, String blogID, String postID, String title, String content, String picturePaths, String status) {boolean returnValue = false;db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);ContentValues values = new ContentValues();values.put("blogID", blogID);values.put("title", title);values.put("content", content);values.put("picturePaths", picturePaths);values.put("status", status);returnValue = db.update(LOCALPAGEDRAFTS_TABLE, values, "id=" + postID, null) > 0;db.close();return (returnValue);}public Vector<HashMap<String, Object>> loadPageDrafts(Context ctx, String blogID) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Vector<HashMap<String, Object>> returnVector = new Vector<HashMap<String, Object>>();Cursor c = db.query(LOCALPAGEDRAFTS_TABLE, new String[] { "id", "title", "status", "uploaded"}, "blogID=" + blogID, null, null, null, "id desc");int numRows = c.getCount();c.moveToFirst();for (int i = 0; i < numRows; ++i) {if (c.getString(0) != null){HashMap<String, Object> returnHash = new HashMap<String, Object>();returnHash.put("id", c.getInt(0));returnHash.put("title", c.getString(1));returnHash.put("status", c.getString(2));returnHash.put("uploaded", c.getInt(3));returnVector.add(i, returnHash);}c.moveToNext();}c.close();db.close();if (numRows == 0){returnVector = null;}return returnVector;}public Vector<HashMap<String, Object>> loadPageDraft(Context ctx, String postID) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Vector<HashMap<String, Object>> returnVector = new Vector<HashMap<String, Object>>();Cursor c = db.query(LOCALPAGEDRAFTS_TABLE, new String[] { "title", "content", "picturePaths", "status"}, "id=" + postID, null, null, null, null);int numRows = c.getCount();c.moveToFirst();for (int i = 0; i < numRows; ++i) {if (c.getString(0) != null){HashMap<String, Object> returnHash = new HashMap<String, Object>();returnHash.put("title", c.getString(0));returnHash.put("content", c.getString(1));returnHash.put("picturePaths", c.getString(2));returnHash.put("status", c.getString(3));returnVector.add(i, returnHash);}c.moveToNext();}c.close();db.close();if (numRows == 0){returnVector = null;}return returnVector;}public boolean deletePageDraft(Context ctx, String postID) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);boolean returnValue = false;int result = 0;result = db.delete(LOCALPAGEDRAFTS_TABLE, "id=" + postID, null);db.close();if (result == 1){returnValue = true;}return returnValue;}public int getLatestDraftID(Context ctx, String id) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Cursor c = db.query(LOCALDRAFTS_TABLE, new String[] {"id"}, "blogID=" + id, null, null, null, "id desc", "1");int latestID = -1;int numRows = c.getCount();if (numRows != 0){c.moveToFirst();latestID = c.getInt(0);}c.close();db.close();return latestID;}public int getLatestPageDraftID(Context ctx, String id) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Cursor c = db.query(LOCALPAGEDRAFTS_TABLE, new String[] {"id"}, "blogID=" + id, null, null, null, "id desc", "1");int latestID = -1;int numRows = c.getCount();if (numRows != 0){c.moveToFirst();latestID = c.getInt(0);}c.close();db.close();return latestID;}//postStorepublic boolean savePosts(Context ctx, Vector<?> postValues) {boolean returnValue = false;if (postValues.size() != 0){db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);HashMap<?, ?> firstHash = (HashMap<?, ?>) postValues.get(0);String blogID = firstHash.get("blogID").toString();//delete existing valuesdb.delete(POSTSTORE_TABLE, "blogID=" + blogID, null);for (int i = 0; i < postValues.size(); i++){ContentValues values = new ContentValues();HashMap<?, ?> thisHash = (HashMap<?, ?>) postValues.get(i);values.put("blogID", thisHash.get("blogID").toString());values.put("postID", thisHash.get("postID").toString());values.put("title", thisHash.get("title").toString());values.put("postDate", thisHash.get("postDate").toString());values.put("postDateFormatted", thisHash.get("postDateFormatted").toString());returnValue = db.insert(POSTSTORE_TABLE, null, values) > 0;}db.close();}return (returnValue);}public Vector<HashMap<String, String>> loadSavedPosts(Context ctx, String blogID) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Vector<HashMap<String, String>> returnVector = new Vector<HashMap<String, String>>();Cursor c = db.query(POSTSTORE_TABLE, new String[] { "blogID", "postID", "title", "postDate", "postDateFormatted"}, "blogID=" + blogID, null, null, null, null);int numRows = c.getCount();c.moveToFirst();for (int i = 0; i < numRows; ++i) {if (c.getString(0) != null){HashMap<String, String> returnHash = new HashMap<String, String>();returnHash.put("blogID", c.getString(0));returnHash.put("postID", c.getString(1));returnHash.put("title", c.getString(2));returnHash.put("postDate", c.getString(3));returnHash.put("postDateFormatted", c.getString(4));returnVector.add(i, returnHash);}c.moveToNext();}c.close();db.close();if (numRows == 0){returnVector = null;}return returnVector;}public Vector<HashMap<String, String>> loadPages(Context ctx, String blogID) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Vector<HashMap<String, String>> returnVector = new Vector<HashMap<String, String>>();Cursor c = db.query(PAGES_TABLE, new String[] { "blogID", "pageID", "title", "pageDate", "pageDateFormatted"}, "blogID=" + blogID, null, null, null, null);int numRows = c.getCount();c.moveToFirst();for (int i = 0; i < numRows; ++i) {if (c.getString(0) != null){HashMap<String, String> returnHash = new HashMap<String, String>();returnHash.put("blogID", c.getString(0));returnHash.put("pageID", c.getString(1));returnHash.put("title", c.getString(2));returnHash.put("pageDate", c.getString(3));returnHash.put("pageDateFormatted", c.getString(4));returnVector.add(i, returnHash);}c.moveToNext();}c.close();db.close();if (numRows == 0){returnVector = null;}return returnVector;}public boolean savePages(Context ctx, Vector<?> pageValues) {boolean returnValue = false;db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);HashMap<?, ?> firstHash = (HashMap<?, ?>) pageValues.get(0);String blogID = firstHash.get("blogID").toString();//delete existing valuesdb.delete(PAGES_TABLE, "blogID=" + blogID, null);for (int i = 0; i < pageValues.size(); i++){ContentValues values = new ContentValues();HashMap<?, ?> thisHash = (HashMap<?, ?>) pageValues.get(i);values.put("blogID", thisHash.get("blogID").toString());values.put("pageID", thisHash.get("pageID").toString());values.put("parentID", thisHash.get("parentID").toString());values.put("title", thisHash.get("title").toString());values.put("pageDate", thisHash.get("pageDate").toString());values.put("pageDateFormatted", thisHash.get("pageDateFormatted").toString());returnValue = db.insert(PAGES_TABLE, null, values) > 0;}db.close();return (returnValue);}public Vector<HashMap<String, Object>> loadComments(Context ctx, String blogID) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Vector<HashMap<String, Object>> returnVector = new Vector<HashMap<String, Object>>();Cursor c = db.query(COMMENTS_TABLE, new String[] { "blogID", "postID", "iCommentID", "author", "comment", "commentDate", "commentDateFormatted", "status", "url", "email", "postTitle"}, "blogID=" + blogID, null, null, null, null);int numRows = c.getCount();c.moveToFirst();HashMap<String, Object> numRecords = new HashMap<String, Object>();//add the number of stored records so the offset can be computedif (numRows > 0){numRecords.put("numRecords", numRows);returnVector.add(0, numRecords);}for (int i = 1; i < (numRows + 1); ++i) {if (c.getString(0) != null){HashMap<String, Object> returnHash = new HashMap<String, Object>();returnHash.put("blogID", c.getString(0));returnHash.put("postID", c.getInt(1));returnHash.put("commentID", c.getInt(2));returnHash.put("author", c.getString(3));returnHash.put("comment", c.getString(4));returnHash.put("commentDate", c.getString(5));returnHash.put("commentDateFormatted", c.getString(6));returnHash.put("status", c.getString(7));returnHash.put("url", c.getString(8));returnHash.put("email", c.getString(9));returnHash.put("postTitle", c.getString(10));returnVector.add(i, returnHash);}c.moveToNext();}c.close();db.close();if (numRows == 0){returnVector = null;}return returnVector;}public Vector<HashMap<String, Object>> loadMoreComments(Context ctx, String blogID, int limit) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Vector<HashMap<String, Object>> returnVector = new Vector<HashMap<String, Object>>();Cursor c = db.query(COMMENTS_TABLE, new String[] { "blogID", "postID", "iCommentID", "author", "comment", "commentDate", "commentDateFormatted", "status", "url", "email", "postTitle"}, "blogID=" + blogID, null, null, null, "iCommentID ASC", String.valueOf(limit));int numRows = c.getCount();c.moveToFirst();//HashMap numRecords = new HashMap();//add the number of stored records so the offset can be computed/*if (numRows > 0){numRecords.put("numRecords", numRows);returnVector.add(0, numRecords);}*/for (int i = 0; i < numRows; i++) {if (c.getString(0) != null){HashMap<String, Object> returnHash = new HashMap<String, Object>();returnHash.put("blogID", c.getString(0));returnHash.put("postID", c.getInt(1));returnHash.put("commentID", c.getInt(2));returnHash.put("author", c.getString(3));returnHash.put("comment", c.getString(4));returnHash.put("commentDate", c.getString(5));returnHash.put("commentDateFormatted", c.getString(6));returnHash.put("status", c.getString(7));returnHash.put("url", c.getString(8));returnHash.put("email", c.getString(9));returnHash.put("postTitle", c.getString(10));returnVector.add(i, returnHash);}c.moveToNext();}c.close();db.close();if (numRows == 0){returnVector = null;}return returnVector;}public boolean saveComments(Context ctx, Vector<?> commentValues, boolean loadMore) {boolean returnValue = false;db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);HashMap<?, ?> firstHash = (HashMap<?, ?>) commentValues.get(0);String blogID = firstHash.get("blogID").toString();//delete existing values, if user hit refresh buttonif (!loadMore){db.delete(COMMENTS_TABLE, "blogID=" + blogID, null);}for (int i = 0; i < commentValues.size(); i++){ContentValues values = new ContentValues();HashMap<?, ?> thisHash = (HashMap<?, ?>) commentValues.get(i);values.put("blogID", thisHash.get("blogID").toString());values.put("postID", thisHash.get("postID").toString());values.put("iCommentID", thisHash.get("commentID").toString());values.put("author", thisHash.get("author").toString());values.put("comment", thisHash.get("comment").toString());values.put("commentDate", thisHash.get("commentDate").toString());values.put("commentDateFormatted", thisHash.get("commentDateFormatted").toString());values.put("status", thisHash.get("status").toString());values.put("url", thisHash.get("url").toString());values.put("email", thisHash.get("email").toString());values.put("postTitle", thisHash.get("postTitle").toString());returnValue = db.insert(COMMENTS_TABLE, null, values) > 0;}db.close();return (returnValue);}public void updateCommentStatus(Context ctx, String blogID, String id, String newStatus) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);ContentValues values = new ContentValues();values.put("status", newStatus);boolean returnValue = db.update(COMMENTS_TABLE, values, "blogID=" + blogID + " AND iCommentID=" + id, null) > 0;if (returnValue){};db.close();}public void clearPages(Context ctx, String blogID) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);//delete existing valuesdb.delete(PAGES_TABLE, "blogID=" + blogID, null);db.close();}public void clearPosts(Context ctx, String blogID) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);//delete existing valuesdb.delete(POSTSTORE_TABLE, "blogID=" + blogID, null);db.close();}//eula tablepublic boolean checkEULA(Context ctx){db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Cursor c = db.query(EULA_TABLE, new String[] { "read" }, "id=0", null, null, null, null);int numRows = c.getCount();c.moveToFirst();boolean returnValue = false;if (numRows == 1){returnValue = (c.getInt(0) != 0);}c.close();db.close();return returnValue;}public void setEULA(Context ctx) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);ContentValues values = new ContentValues();values.put("id", 0);values.put("read", 1); //set that they've read the EULAboolean returnValue = db.insert(EULA_TABLE, null, values) > 0;if (returnValue){};db.close();}public void setStatsDate(Context ctx) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);ContentValues values = new ContentValues();values.put("statsdate", System.currentTimeMillis()); //set to current timeboolean returnValue = db.update(EULA_TABLE, values, "id=0", null) > 0;if (returnValue){};db.close();}public long getStatsDate(Context ctx) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Cursor c = db.query(EULA_TABLE, new String[] { "statsdate" }, "id=0", null, null, null, null);int numRows = c.getCount();c.moveToFirst();long returnValue = 0;if (numRows == 1){returnValue = c.getLong(0);}c.close();db.close();return returnValue;}//categoriespublic boolean insertCategory(Context ctx, String id, int wp_id, String category_name) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);ContentValues values = new ContentValues();values.put("blog_id", id);values.put("wp_id", wp_id);values.put("category_name", category_name.toString());boolean returnValue = db.insert(CATEGORIES_TABLE, null, values) > 0;db.close();return (returnValue);}public Vector<String> loadCategories(Context ctx, String id) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Cursor c = db.query(CATEGORIES_TABLE, new String[] { "id", "wp_id", "category_name" }, "blog_id=" + id, null, null, null, null);int numRows = c.getCount();c.moveToFirst();Vector<String> returnVector = new Vector<String>();for (int i = 0; i < numRows; ++i) {String category_name = c.getString(2);if (category_name != null){ returnVector.add(category_name);}c.moveToNext();}c.close();db.close();return returnVector;}public int getCategoryId(Context ctx, String id, String category){db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Cursor c = db.query(CATEGORIES_TABLE, new String[] {"wp_id"}, "category_name=\"" + category + "\" AND blog_id=" + id, null, null, null, null);c.moveToFirst();int categoryID = 0;categoryID = c.getInt(0);db.close();return categoryID;}public void clearCategories(Context ctx, String id){db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);//clear out the table since we are refreshing the whole enchiladadb.delete(CATEGORIES_TABLE, "blog_id=" + id, null);db.close();}//unique identifier queriespublic void updateUUID(Context ctx, String uuid) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);ContentValues values = new ContentValues();values.put("uuid", uuid);boolean returnValue = db.update("eula", values, null, null) > 0;if (returnValue){};db.close();}public String getUUID(Context ctx) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);      Cursor c = db.query("eula", new String[] { "uuid" }, "id=0", null, null, null, null);int numRows = c.getCount();c.moveToFirst();String returnValue = "";if (numRows == 1){if (c.getString(0) != null){returnValue = c.getString(0);}}c.close();db.close();return returnValue;}public boolean addQuickPressShortcut(Context ctx, String accountId, String name) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);ContentValues values = new ContentValues();values.put("accountId", accountId);values.put("name", name);boolean returnValue = db.insert(QUICKPRESS_SHORTCUTS_TABLE, null, values) > 0;db.close();return (returnValue);}public Vector<HashMap<String, Object>> getQuickPressShortcuts(Context ctx, String accountId) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);Cursor c = db.query(QUICKPRESS_SHORTCUTS_TABLE, new String[] { "id", "accountId", "name"}, "accountId = "+accountId, null, null, null, null);String id, name;int numRows = c.getCount();c.moveToFirst();Vector<HashMap<String, Object>> accounts = new Vector<HashMap<String, Object>>();for (int i = 0; i < numRows; i++) {id = c.getString(0);name = c.getString(2);if (id != null){ HashMap<String, Object> thisHash = new HashMap<String, Object>();thisHash.put("id", id);thisHash.put("name", name);accounts.add(thisHash);}c.moveToNext();}c.close();db.close();return accounts;}public boolean deleteQuickPressShortcut(Context ctx, String id) {db = ctx.openOrCreateDatabase(DATABASE_NAME, 0, null);int rowsAffected = db.delete(QUICKPRESS_SHORTCUTS_TABLE, "id=" + id, null);boolean returnValue = false;if (rowsAffected > 0){returnValue = true;}db.close();return (returnValue);}}

Android数据库设计相关推荐

  1. android短彩信数据库设计源码解析(二)

    转载请注明出处:http://blog.csdn.net/droyon/article/details/8734167 这几天连续加班,昨天很早就睡了.一个人的时候要学会自我祝福,祝自己注意身体,天天 ...

  2. Android数据库专家秘籍(七)经验LitePal查询艺术

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/40153833 经过了多篇文章的学习,我们已经把LitePal中的绝大部分内容都掌握 ...

  3. Android数据库高手秘籍

    原文出处:作者:郭霖,http://blog.csdn.net/column/details/android-database-pro.html 升级表 然而大家都知道,创建表只是数据库操作中最基本的 ...

  4. Android数据库高手秘籍(二):创建表和LitePal的基本用法

    原文:http://blog.jobbole.com/77157/ 上一篇文章中我们学习了一些Android数据库相关的基础知识,和几个颇为有用的SQLite命令,都是直接在命令行操作的.但是我们都知 ...

  5. Android 数据库升级解决方案

    请考虑如下情况: 在数据库升级时,不同版本的数据库,他们定义的表结构完全可能是不一样的,比如V1.0的表A有10个column,而在V1.1的表A有12个colum,在升级时,表A增加了两列,此时我们 ...

  6. Android Bander设计与实现 - 设计篇

    摘要 Binder是Android系统进程间通信(IPC)方式之一.Linux已经拥有管道,system V IPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder ...

  7. android录音播放列表,android数据库里的视频,图片,音频表

    数据库模式分析 图片数据库 图片数据库由两个表组成,分别是 images 和 thumbnails,物理数据模型如下所示(Power Designer 逆向工程生成) Note: 如何数据库物理模型图 ...

  8. android客户端设计,Android客户端设计.ppt

    Android客户端设计 图16 .android.score包下各文件说明 .android.score包存放所有的功能界面,处理各种业务逻辑,是"豹考通"客户端的核心,该包下所 ...

  9. 数据库设计精选视频_11种精选工具和服务,可改善您的设计工作

    数据库设计精选视频 We all find a generous amount of design tools on the Internet, but truth is, just some of ...

  10. Android数据库与ContentProvider

    数据库基本概念: 数据库是"按照数据结构来组织.存储和管理数据的仓库".是一个长期存储在计算机内的.有组织的.可共享的.统一管理的大量数据的集合. 数据库的种类 最常用的数据库模型 ...

最新文章

  1. MongoDB 学习使用
  2. FPGA block RAM和distributed RAM区别(以及xilinx 7系列CLB资源)
  3. struts1 几种Action父类的比较
  4. R语言应用统计1 主成分分析
  5. matlab knnsearchidx,matlab查找最临近搜索knnsearch
  6. JavaBean规范、EL、JSTL、
  7. jetson刷机遇到cuda装不了
  8. ASP.NET之通过JS向服务端(后台)发出请求(__doPostBack is undefined)
  9. Spring-Session基于Redis管理Session
  10. Java JDK动态代理Proxy类的原理是什么? - 知乎(重排版)
  11. BZOJ2431:[HAOI2009]逆序对数列(DP,差分)
  12. jxta p2p 网络实现
  13. Android Textview控件基础属性
  14. 3D游戏引擎入门课程——场景渲染
  15. cc9.3 indesign_Adobe InDesign CC2019
  16. 什么人最适合读研呢?你适不适合读研究生?
  17. 服务器内存UDIMM与RDIMM区别
  18. IC Nansha|AMD高级副总裁、大中华区总裁潘晓明:制程、架构、平台优化突破计算边界
  19. Android 进阶笔记,包含常用的技术框架、博客社区、书籍等。
  20. 网桥15式:无线网桥用得好,成本的降低少不了

热门文章

  1. c语言 公交卡一卡通系统,公共交通一卡通系统
  2. Detours Hook初探
  3. C4D怎么设置默认工程默认场景?
  4. 大神浅谈无人机飞控软件设计 系统性总结
  5. python选择题题库
  6. 使用Proteus 8.9仿真STM32F103流水灯实验
  7. HBuilder启动vue项目
  8. visio-软件程序流程图规范
  9. 服务器状态监控,LOL服务器状态监控
  10. 数据分析报告4:睡眠情况分析