android sqlite的簡單應用(創建,插入,更新,查找,刪除等)

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語句應該是基礎的基礎,還是需要加強學習啊!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章