sqlite作爲跨平臺的一種小型數據庫,進行數據儲存查找還是蠻方便的,但是不熟悉SQL語句還是挺煩人的,先記錄下來,看看以後用得上不。
數據的更新與保存:
/**
* 保存數據
* */
protected void saveDate(){
SimpleDateFormat sDateFormat = new SimpleDateFormat(
"yyyy年MM月dd日HH時mm分", Locale.getDefault());
String date = sDateFormat.format(new java.util.Date());
//創建文件夾
File file = new File("/sdcard/TreadWear");
boolean isDirectoryCreated=file.exists();
if (!isDirectoryCreated) {
isDirectoryCreated= file.mkdir();
}
if(isDirectoryCreated) {
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase("/sdcard/TreadWear/date.db",null);
//創建一個表
try {
db.execSQL("create table wheel_date(" +
"WheelId varchar(50) NOT NULL primary key," +
"TreadWear varchar(50) NULL," +
"WheelThick varchar(50) NULL," +
"RimWidth varchar(50) NULL," +
"RimThick varchar(50) NULL," +
"Time varchar(50) NOT NULL,"+
"AllDate varchar(50) NOT NULL)");
}catch (Exception e) {
//This happens on every launch that isn't the first one.
Log.w("一般第一次不發生的錯誤", "Error while creating db: " + e.toString());
}
/**
* 更新插入數據
* */
try {
db.execSQL("REPLACE INTO wheel_date VALUES('"+
getIntent().getStringExtra("wheel_date") +"','"+
temp[0] +"','"+
temp[1] +"','"+
temp[2] +"','"+
temp[3] +"','"+
date +"','1')");
}catch (Exception e) {
//This happens on every launch that isn't the first one.
Log.w("一般不會發生的錯誤", "Error while REPLACE INTO db: " + e.toString());
}
Toast.makeText(DateActivity.this, "數據已保存", Toast.LENGTH_SHORT).show();
db.close();
finish();
overridePendingTransition(0, R.anim.zoomout);
}else {
Toast.makeText(DateActivity.this, "保存數據失敗", Toast.LENGTH_SHORT).show();
}
}
需要權限:
<!--SD卡讀寫權限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<!--在sdcard中創建/刪除文件的權限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
通過string進行查找數據:
//讀取數據
Cursor c = db.rawQuery("SELECT* FROM wheel_date WHERE WheelId = ?", new String[]{string});
int i = 0;
while (c.moveToNext()) {
i++;
}
if(i == 0){
Toast.makeText(SearchDateActivity.this, "無數據", Toast.LENGTH_SHORT).show();
}else {
c.moveToFirst();
date_1.setText(c.getString(c.getColumnIndex("TreadWear")));
date_2.setText(c.getString(c.getColumnIndex("WheelThick")));
date_3.setText(c.getString(c.getColumnIndex("RimWidth")));
date_4.setText(c.getString(c.getColumnIndex("RimThick")));
date_5.setText(c.getString(c.getColumnIndex("Time")));
}
c.close();
刪除數據庫數據,一條代碼就夠了:
db.delete("wheel_date","WheelId = ?",new String[]{s_date});
然後需要注意的是記得關閉數據庫,要寫在返回鍵跟銷燬裏面。
主要就是對於SQL語句的不熟悉而記錄,作爲程序員,SQL語句應該是基礎的基礎,還是需要加強學習啊!