Android中的SQLite數據庫


//創建數據庫,數據庫名稱為mydata.db
DatabaseHelper dbHelper = new DatabaseHelper(MyActivity.this, "mydata.db");
SQLiteDatabase db = dbHelper.getReadableDatabase();

public class DatabaseHelper extends SQLiteOpenHelper {
  public DatabaseHelper(Context context, String name, CursorFactory cursorFactory, int version) {
    super(context, name, cursorFactory, version);
  }

  public DatabaseHelper(Context context, String name) {    //創建時只傳入兩個參數,可以不重寫
    this(context, name, null, 1);
  }

  @Override
  public void onCreate(SQLiteDatabase db) {
    // TODO 創建數據庫后,對數據庫的操作
    //創建一個表格,表格名為mytable,id自動增長,列數為三列,數據類型為varchar(字符串)
    db.execSQL("CREATE TABLE mytable (_id INTEGER PRIMARY KEY AUTOINCREMENT, latitude varchar, longitude varchar, time varchar)");
  }

  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO 更改數據庫版本的操作
  }

   @Override
   public void onOpen(SQLiteDatabase db) {
      super.onOpen(db);
      // TODO 每次成功打開數據庫后首先被執行
   }

}


//插入
ContentValues values = new ContentValues();
values.put("latitude", strLatitude);
values.put("longitude", strLongitude);
values.put("time", time);
DatabaseHelper dbHelper = new DatabaseHelper(MyService.this, "mydata.db");
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.insert("mytable", null, values);

//查詢
DatabaseHelper dbHelper = new DatabaseHelper(MyActivity.this, "mydata.db");
SQLiteDatabase db = dbHelper.getReadableDatabase();

//(表名, new String[] {要查詢的列}, "_id=?", new String[] {要查詢的id}, 后面的是一些分組排列方式,想要用的話可以查一下,本人沒用到就全設為空值);
Cursor cursor = db.query("mytable", new String[] {"latitude", "longitude", "time"}, "_id=?", new String[] {id}, null, null, null);
while (cursor.moveToNext()) {
//查到后的操作,這里將輸出顯示在文本中
String latitudeStr = cursor.getString(cursor.getColumnIndex("latitude"));
String longitudeStr = cursor.getString(cursor.getColumnIndex("longitude"));
String timeStr = cursor.getString(cursor.getColumnIndex("time"));

txtQueryLongitude.setText(latitudeStr);
txtQueryLatitude.setText(longitudeStr);
txtQueryTime.setText(timeStr);
}

//查詢全部數據

Cursor mCursor = mSQLiteDatabase.rawQuery("SELECT * FROM mytable", null);

cursor.moveToFirst();  //指向第一條數據

while (!(cursor.isLast())) {  //數據不為空

   String latitudeStr = cursor.getString(cursor.getColumnIndex("latitude"));

   String longitudeStr = cursor.getString(cursor.getColumnIndex("longitude"));

   String timeStr = cursor.getString(cursor.getColumnIndex("time"));

   Map<String, String> map = new HashMap<String, String>();

   map.put("latitude", latitudeStr);

   map.put("longitude", longitudeStr);

   map.put("time", timeStr);

   list.add(map);  //list這里未定義,List<Map<String, String>>

   cursor.moveToNext();   //指向下一條數據

}

//修改
DatabaseHelper dbHelper = new DatabaseHelper(MyActivity.this, "mydata.db");
SQLiteDatabase db = dbHelper.getReadableDatabase();
ContentValues values = new ContentValues();
values.put("name", strName);
db.update("mytable", values, "id=?", new String[]{修改的id});

//刪除

DatabaseHelper dbHelper = new DatabaseHelper(MyActivity.this, "mydata.db");
SQLiteDatabase db = dbHelper.getReadableDatabase();

db.delete("表名", "id=?", new String[]{1}); //刪除了id為1的數據

db.delete(“表名”,“id? and no=?”,new String[]{1, 1});//刪除了id為1且no為1的數據

  本人發布的內容均為學習中用過的代碼,上傳主要為了方便以后的復習和為他人提供一些方便,一些代碼沒有上下文,新學的朋友有不懂或存在問題的地方可以留言。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM