在Android中对SQLite数据库的操作,涉及以下几个方面:

1、确认数据库文件,即.db文件;

2、通过android.database.sqlite. SQLiteDatabase类的openOrCreateDatabase()方法打开数据库;

3、数据库操作:

A、开始事务: SQLiteDatabase.beginTransaction();

B、执行sql语句;

C、结束事务: SQLiteDatabase.endTransaction();

 

具体代码可参考如下:

Java代码 复制代码  收藏代码
  1. static boolean installDefaultSitesToDB(Context cxt) {   
  2.     // 确认目标数据库文件   
  3.     File path = cxt.getDir("databases", Context.MODE_WORLD_WRITEABLE);   
  4.     path = new File(path, "db_name.db");   
  5.   
  6.        
  7.     SQLiteDatabase db = null;   
  8.     try {   
  9.               // 打开数据库   
  10.                db = openDB(path.getAbsolutePath());   
  11.         if (db == null) {   
  12.             //Log.e("tag", "open db_name.db ERROR~");   
  13.             return false;   
  14.         }   
  15.   
  16.         db.beginTransaction();//开始事务   
  17.   
  18.                 boolean bool = doInstallData(db);//执行sql语句,插入数据   
  19.   
  20.                //设置事务标志   
  21.                 if (bool) {   
  22.             db.setTransactionSuccessful();// 设置事务标志   
  23.         } else {   
  24.             //Log.w("tag", "doInstall.DEFAULT_SITES Fail~!");   
  25.         }   
  26.         return bool;   
  27.     } finally {   
  28.         if (db != null) {   
  29.                         //结束事务   
  30.             if (db.inTransaction()) {db.endTransaction();}   
  31.             db.close();   
  32.         }   
  33.     }   
  34. }   
  35.   
  36. private static SQLiteDatabase openDB(String file) {   
  37.     try {   
  38.         //SQLiteDatabase.openOrCreateDatabase(file, null);   
  39.         int flag = SQLiteDatabase.OPEN_READWRITE;   
  40.         flag = flag | SQLiteDatabase.CREATE_IF_NECESSARY;   
  41.         flag = flag | SQLiteDatabase.NO_LOCALIZED_COLLATORS;   
  42.         SQLiteDatabase db = SQLiteDatabase.openDatabase(file, null, flag);   
  43.         return db;   
  44.     } catch (Throwable e) {   
  45.         //Log.e("tag","openDatabase error:" + e.getMessage());   
  46.         return null;   
  47.     }   
  48. }      
  49.   
  50. //   
  51. private static boolean doInstallData(SQLiteDatabase db) {   
  52.     try {   
  53.         //create table   
  54.         String sql = "CREATE TABLE IF NOT EXISTS Permissions (origin TEXT UNIQUE NOT NULL, allow INTEGER NOT NULL)";   
  55.         db.execSQL(sql);   
  56.            
  57.         ContentValues cv = new ContentValues();   
  58.         for (String site : DEFAULT_SITES) {   
  59.             cv.clear();   
  60.             cv.put("origin", site);   
  61.             cv.put("allow"1);   
  62.             long ret =  db.insertOrThrow("Permissions"null, cv);   
  63.             Log.d("tag""db.insert.RET:" + ret);   
  64.         }   
  65.         return true;   
  66.     } catch (SQLException se) {   
  67.         String msg = "doInstall.error:[%s].%s";   
  68.         Log.d("tag",String.format(msg, se.getClass(),se.getMessage()));   
  69.         return false;   
  70.     }   
  71. }