AndroidÃæÊÔÖ®SQLiteÊý¾Ý¿â ÏÂÔØ±¾ÎÄ

AndroidÃæÊÔÖ®SQLiteÊý¾Ý¿â

ðØµºÏÃÃÅÊǸöºÜÃÀÀöµÄº£±õ³ÇÊУ¬¸øÎҵĸоõºÜÊæÊʺÍÓÆÏУ¬¾Ý˵Õþ¸®¶Ôµ½Äǹ¤×÷µÄ¸ßм¼ÊõÈ˲ŵÚÒ»ÄêÓÐ10ÍòÔªµÄ½±Àø£¬ÒòΪÕâ¸öÔ­ÒòÎÒºÜÓÐÐËȤµÄ²Î¼ÓÁËÒ»¸öÏÃÃŹ«Ë¾µÄÃæÊÔ¡£ËûÃÇÖ÷ÒªÊÇÑз¢VOIP·½ÃæµÄ¼¼Êõ£¬¶ÔÊÖ»úÓ¦ÓõÄÐÔÄÜÓÅ»¯ºÍÒôƵËã·¨ÓнϸߵÄÒªÇó¡£

ËûÃÇÕÐÈ˵Äн×ʰëÄêÄÚÕÇÁË30ÍòÔª£¬¶¼Ò»Ö±¶¼Ã»ÓÐÕе½ºÏÊʵÄÈË¡£ÎªÊ²Ã´ÄØ?ÒòΪËûÃÇÒªÇó¼¼ÊõºÃµÄͬʱ£¬Ó¢ÓïÒ²ÒªºÃ¡£Ê²Ã´²Å½ÐºÃÄØ?¾ÍÊÇ¿ÉÒÔÓÃÁ÷ÀûµÄÓ¢ÓïºÍ¹úÍâµÄÍŶÓÎÞÕϰ­½»Á÷¡£

Õâ¾ÍΪÄѺܶà³ÌÐòÔ±ÁË¡£ÕâÀï¾Í²»ÔÙ½²Ó¢ÓïµÄÀøÖ¾¹ÊÊÂÁË£¬ÎÒÃǻص½¼¼ÊõÃæÊÔÉÏ¡£ÏÃÃÅÕâ¼Ò¹«Ë¾¶Ô¼¼ÊõµÄÒªÇó»¹ÊDZȽϸߣ¬ÎÊÁ˺ܶà¶ÔAndroid»úÖÆµÄÀí½âÎÊÌâ£¬ÎªÊ²Ã´ÃæÊÔ¹ÙºÜÔÚÒâ¶Ô»úÖÆµÄÀí½âÄØ?ÒòΪʵ¼ÊµÄÏîÄ¿ÖкܶàÐÔÄÜÎÊÌâ¶¼ÊÇÓÉÓÚȱ·¦¶ÔAndroidÔËÐлúÖÆµÄÕýÈ·Àí½âµÄ³ÌÐòÔ±Òý·¢µÄ¡£³ýÁË»úÖÆÎÊÌ⣬ÏÖÔÚÓ¡Ïó±È½ÏÉîµÄ¾ÍÊǹØÓÚSQLiteÊý¾Ý¿â²Ù×÷µÄÐÔÄÜÓÅ»¯ÎÊÌâ¡£ ÃæÊÔÌ⣺ÈçºÎ¶ÔSQLiteÊý¾Ý¿âÖнøÐдóÁ¿µÄÊý¾Ý²åÈë?

AndroidϵͳÄÚÖÃÁËSQLiteÊý¾Ý¿â£¬²¢ÇÒÌṩÁËÒ»ÕûÌ×µÄAPIÓÃÓÚ¶ÔÊý¾Ý¿â½øÐÐÔöɾ¸Ä²é²Ù×÷¡£SQLiteÊÇÒ»¸öÇáÁ¿µÄ¡¢¿çƽ̨µÄ¡¢¿ªÔ´µÄÊý¾Ý¿âÒýÇæ¡£SQLiteÿ¸öÊý¾Ý¿â¶¼ÊÇÒÔµ¥¸öÎļþ(.db)µÄÐÎʽ´æÔÚ£¬ÕâЩÊý¾Ý¶¼ÊÇÒÔB-TreeµÄÊý¾Ý½á¹¹ÐÎʽ´æ´¢ÔÚ´ÅÅÌÉÏ¡£

ʹÓÃSQLiteDatabaseµÄinsert£¬deleteµÈ·½·¨»òÕßexecSQL·½·¨Ä¬È϶¼¿ªÆôÁËÊÂÎñ£¬Èç¹û²Ù×÷µÄ˳ÀûÍê³É²Å»á¸üÐÂ.dbÊý¾Ý¿â¡£ÊÂÎñµÄʵÏÖÊÇÒÀÀµÓÚÃûΪrollback journalÎļþ£¬½èÖúÕâ¸öÁÙʱÎļþÀ´Íê³ÉÔ­×Ó²Ù×÷ºÍ»Ø¹ö¹¦ÄÜ¡£ ´ó¼Ò¿ÉÒÔÔÚ/data/data//databases/Ŀ¼Ï¿´µ½Ò»¸öºÍÊý¾Ý¿âͬÃûµÄ.db-journalÎļþ¡£

SQLiteÏëÒªÖ´ÐвÙ×÷£¬ÐèÒª½«³ÌÐòÖеÄSQLÓï¾ä±àÒë³É¶ÔÓ¦µÄ

SQLiteStatement£¬±ÈÈç\£¬Ã¿Ö´ÐÐÒ»´Î¶¼ÐèÒª½«Õâ¸öStringÀàÐ͵ÄSQLÓï¾äת»»³ÉSQLiteStatement¡£ÈçÏÂinsertµÄ²Ù×÷×îÖÕ¶¼Êǽ«ContentValuesת³ÉSQLiteStatementi£º

public long insertWithOnConflict(String table, String nullColumnHack,

ContentValues initialValues, int conflictAlgorithm) { // Ê¡ÂÔ²¿·Ý´úÂë

SQLiteStatement statement = new SQLiteStatement(this, sql.toString(), bindArgs); try {

return statement.executeInsert(); } finally { statement.close(); }

} finally {

releaseReference(); } }

¶ÔÓÚÅúÁ¿´¦Àí²åÈë»òÕ߸üеIJÙ×÷£¬ÎÒÃÇ¿ÉÒÔÖØÓÃSQLiteStatement£¬Ê¹ÓÃSQLiteDatabaseµÄbeginTransaction()·½·¨¿ªÆôÒ»¸öÊÂÎñ£¬ÑùÀýÈçÏ£º try {

sqLiteDatabase.beginTransaction();

SQLiteStatement stat = sqLiteDatabase.compileStatement(insertSQL); // ²åÈë10000´Î

for (int i = 0; i < 10000; i++) {

stat.bindLong(1, 123456); stat.bindString(2, \ stat.executeInsert(); }

sqLiteDatabase.setTransactionSuccessful(); }

catch (SQLException e) {

e.printStackTrace(); } finally { // ½áÊø

sqLiteDatabase.endTransaction(); sqLiteDatabase.close(); }

ÎÒÔÚ»ªÎªNexus 6PÉ϶Գ£¼ûµÄ¼¸ÖÖ×ö·¨×öÁËһϲâÊÔ¡£ Ö±½ÓʹÓÃSQLÓï¾ä½øÐвåÈë Ö±½ÓʹÓÃSQLÓï¾ä²åÈ룬Ìí¼ÓÊÂÎñ ʹÓÃContentValues·½Ê½£¬Ìí¼ÓÊÂÎñ ʹÓÃSQLiteStatement·½Ê½£¬Ìí¼ÓÊÂÎñ ½á¹ûÈçÏÂͼ£º

´ÓÊý¾ÝÉÏ¿´£¬µÚËÄÖÖ·½Ê½Ê¹ÓÃSQLiteStatement×î¿ì£¬²»¹ýÖ»ÒªÌí¼ÓÁËÊÂÎñ(»òÕß˵ֻÐèÒªÒ»¸öÊÂÎñ£¬²»ÊÇÿÌõ²åÈ붼ʹÓÃÊÂÎñ)£¬ºóÈýÖÖ·½Ê½µÄ²î±ð²¢²»´ó¡£ËùÒÔÕë¹ýÕâ¸öÌâÄ¿µÄ²åÈëµÄÓÅ»¯¿ÉÒÔͨ¹ý¡°SQLiteStatement+ÊÂÎñ¡±µÄ·½Ê½ÏÔÖøÌá¸ßЧÂÊ¡£

²éѯ·½ÃæµÄÓÅ»¯Ò»°ã¿ÉÒÔͨ¹ý½¨Á¢Ë÷Òý¡£½¨Á¢Ë÷Òý»á¶Ô²åÈëºÍ¸üеIJÙ×÷ÐÔÄܲúÉúÓ°Ï죬ʹÓÃË÷ÒýÐèÒª¿¼ÂÇʵ¼ÊÇé¿ö½øÐÐÀû±×Ȩºâ£¬¶ÔÓÚ²éѯ²Ù×÷Á¿¼¶½Ï´ó£¬ÒµÎñ¶ÔÒªÇó²éѯҪÇó½Ï¸ßµÄ£¬»¹ÊÇÍÆ¼öʹÓÃË÷Òý¡£ËùÒÔÕâ»áÓÐÒ»¸öÈ¡ÉáÎÊÌ⣬¿´ÄãµÄÏîÄ¿ÊDzéѯƵ·±»¹ÊDzåÈëºÍÐÞ¸ÄÆµ·±¡£µ±È»»¹ÓÐһЩСµÄÓÅ»¯Ï¸½Ú£¬Èç¹ûÃæÊÔ¹ÙÎʵ½Ò²¿ÉÒÔ˵¼¸µã(Èçlimit)¡£ Ïß³ÌÎÊÌâ

SQLiteµÄͬ²½Ëø¾«È·µ½Êý¾Ý¿â¼¶£¬Á£¶È±È½Ï´ó£¬²»Ïñ±ðµÄÊý¾Ý¿âÓбíËø£¬ÐÐËø¡£Í¬Ò»¸öʱ¼äÖ»ÔÊÐíÒ»¸öÁ¬½Ó½øÐÐдÈë²Ù×÷¡£

Èç¹ûÓдóÁ¿µÄÊý¾Ý´¦Àí£¬ÄÇô¿Ï¶¨²»ºÏÊÊÓÚÔÚUIÏß³ÌÈ¥²Ù×÷£¬Õâʱ¾ÍÒª¿¼ÂǶàÏ̵߳ÄÎÊÌâÁË¡£ÎÒÃÇÈç¹û¿ªÒ»¸ö¹¤×÷Ïß³ÌÈ¥²Ù×÷SQLiteÊý¾Ý¿â£¬ÈçÅúÁ¿µØ²åÈë¿ÉÄÜÐèÒª30ÃëÖÓ£¬¶øÕâ¸öʱ¼äUIÏß³ÌÒ²Òª´ÓÊý¾Ý¿â¶ÁȡһÏÂÊý¾Ýչʾ¸øÓû§£¬ÄÇôÕâ¸öʱºòUIÏß³ÌÄܶÁÈ¡µ½Õâ¸öÊý¾Ý¿âÂð?´ó¼Ò¿ÉÒÔ˼¿¼Ò»ÏÂÕâ¸öÎÊÌâ¡£ ÎÒÃdz£³£ÔÚ¶àÏß³ÌÖÐֻʹÓÃÒ»¸öSQLiteDatabaseÒýÓã¬ÔÚÓÃ

SQLiteDataBase.close()µÄʱÐèҪעÒâµ÷ÊÇ·ñ»¹ÓбðµÄÏß³ÌÔÚʹÓÃÕâ¸öʵÀý¡£Èç¹ûÒ»¸öÏ̲߳Ù×÷Íê³Éºó¾ÍÖ±½ÓcloseÁË£¬±ðÒ»¸öÕýÔÚʹÓÃÕâ¸öÊý¾Ý¿âµÄÏ߳̾ͻáÒì³£¡£ËùÒÔÓÐЩÈË»áÖ±½Ó°ÑSQLiteDatabaseµÄʵÀý·ÅÔÚApplicationÖУ¬ÈÃËü

ÃǵÄÉúÃüÖÜÆÚÒ»Ö¡£Ò²ÓеÄ×ö·¨ÊÇдһ¸ö¼ÆÊýÆ÷£¬µ±¼ÆÊýÆ÷Ϊ0ʱ²ÅÕæÕý¹Ø±ÕÊý¾Ý¿â¡£

ʹÓÃORMµÄÎÊÌâ

Ä¿Ç°ÍøÉÏÓкܶ࿪ԴµÄORM(¶ÔÏó¹ØÏµÊý¾ÝÓ³Éä)¿ò¼Ü£¬ÈçgreenDAO¡¢ormliteµÈµÈ¡£ÔÚʹÓÃÕâЩ¿ò¼ÜÓбØÒªºÜÁ˽âÒ»ÏÂËüÃǵÄÀû±×£¬ÌرðÊÇһЩʹÓ÷´ÉäµÄ¿ò¼Ü£¬¶ÔÐÔÄܵÄÓ°Ïì»á±È½Ï´ó¡£ÓÐЩ¿ò¼ÜÔÚ¶àÏß³Ìͬ²½·½ÃæÒ²»á²úÉúһЩÎÊÌ⣬ËùÒÔʹÓÃʱҪÓÐËù¹ËÂÇ¡£

Realm ÊÇ×î½üÐËÆðµÄÒ»¸öרעÓÚÒÆ¶¯É豸Êý¾Ý¿âµÄ¿â£¬ÆäºËÐÄÊÇʹÓÃC++±àд£¬ºÅ³ÆºÜ¶àʱºòÊý¾ÝµÄ´æÈ¡ËٶȱÈSQLiteÒª¿ìºÜ¶à¡£²»¹ýÔÚÎÒµÄһЩÏîÄ¿ÖУ¬·¢ÏÖËü¶ÁÈ¡²¢²»±ÈSQLite¿ì¡£ С½á

ÔÚʵ¼ùÖÐÎÒÃÇ×ܽá³öÒ»ÌõÊØÔò£º¡°²»ÒªÓÃHelloworldÀ´²âÊÔ×Ô¼ºµÄ¿ò¼Ü(»ò´úÂë)£¬Òª²â¾ÍÒªÓÃÕæÊµµÄÊý¾ÝºÍ»·¾³¡£¡±

ÌØ±ðÊÇÕë¶ÔÊý¾Ý¿â·½Ã棬Èç¹ûÖ»Óü¸Ìõ¼òµ¥µÄÊý¾Ý½øÐвâʽ£¬ÄÇôÄã»áºÜÈÝÒ×°Á½¿ºÍÂú×㣬¶øºöÊÓÁ˺ܶàÎÊÌ⡣ûÓо­¹ýÕæÊµÊý¾Ý(»ò´óÁ¿Êý¾Ý)²âÊÔ֮ǰ£¬²»Òª¶Ô×Ô¼ºµÄ´úÂëÌ«¹ý×ÔÐÅ¡£