綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] 初學關於資料庫SQLite的問題

[複製連結] 查看: 1518|回覆: 5|好評: 0
跳轉到指定樓層
樓主
tt60815 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2012-4-8 17:04

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
public class WInfoModel {
        private static SQLiteDatabase db = null;

        public static void setDb(SQLiteDatabase db) {
                WInfoModel.db = db;
        }
        public static boolean save(WinFoData wid){
                // 新增一- SQL語法
                                // 建立INSERT SQL語法
                                try {
                                        String sql = String.format(
                                                        "INSERT INTO winfo values('%s',%f,%f,%f,%d)",
                                                        wid.getIN001(), wid.getIN002(), wid.getIN003(),
                                                        wid.getIN004(), wid.isIN005() ? 1 : 0);
                                        db.execSQL(sql);
                                        // 新增二- ContentValue物件
                                        ContentValues cvs = new ContentValues();
                                        cvs.put("IN001", wid.getIN001());
                                        cvs.put("IN002", wid.getIN002());
                                        cvs.put("IN003", wid.getIN003());
                                        cvs.put("IN004", wid.getIN004());
                                        cvs.put("IN005", wid.isIN005());
                                        db.insertOrThrow("winfo", null, cvs);
                                } catch (SQLException ex) {
                                        return false;
                                }
                                return true;
                        }
}






======================================================================

public class DBConnection extends SQLiteOpenHelper {
        private final static String  DB_NAME = "myDB";
        private final static int    DB_VERSION = 1;

        public DBConnection(Context context) {
                super(context, DB_NAME, null, DB_VERSION);
                // TODO Auto-generated constructor stub
        }

        @Override
        public void onCreate(SQLiteDatabase db) {
               
                // TODO Auto-generated method stub
                String sql = "create table winfo(" +
                                "IN001 DATE PRIMARY KEY,"+ //測量日期
               "IN002 DOUBLE,"+                                //身高
               "IN003 DOUBLE,"+                                //體重
               "IN004 DOUBLE,"+                                //腰圍
               "IN005 BOOLEAN)";                        //性別
        db.execSQL(sql);

        }

        @Override
        public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
                // TODO Auto-generated method stub

        }

}
======================================================================
我就是看不懂這兩個類別的敘述 想請教大家
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
ploglin | 收聽TA | 只看該作者
發表於 2012-4-9 09:32
第2個類別是繼承SDK中的SQLite去實作onCreate以及onUpgrade
onCreate 是當 sqlite 第1個次產生時所執行的動作
onUpgrate 是當傳入的 version 有變動時,所執行的動作

第1個類別則是自訂義的一個類別,在 init 的時候,需要將 db object 傳入當參數。
類似寫法為

  1. DBConnection db = new DBConnection(); // 這邊是初始代 SQLiteOpenHelper
  2. WInfoModel.setDb(db); // 定義WinfoModel所使用的DB
  3. WInfoModel.save(.....);
複製代碼
這樣說不知道看的懂嗎?

評分

參與人數 1碎鑽 +1 幫助 +1 收起 理由
tt60815 + 1 + 1 非常讚

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
 樓主| tt60815 | 收聽TA | 只看該作者
發表於 2012-4-9 11:06
public DBConnection(Context context) {
                super(context, DB_NAME, null, DB_VERSION);
                // TODO Auto-generated constructor stub
        }

這一段為什麼上面 DBConnection(Context context)  括號裡面為什麼可以化簡成這樣@@?
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

地板
ploglin | 收聽TA | 只看該作者
發表於 2012-4-12 09:32
DBConnection 是這個 Class 的建構式。
基本上可以什麼都不要像是

  1. publif DBConnection(){
  2.     super(context, DB_NAME, null, DB_VERSION);
  3. }
複製代碼
,或是可以根本就不要這個建構式。
但是如果你有 class 裡面有需要用到的參數,像是 context 或其它變數,就可以在傳入的變數中加入。

評分

參與人數 1碎鑽 +1 幫助 +1 收起 理由
tt60815 + 1 + 1 非常讚

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

5
 樓主| tt60815 | 收聽TA | 只看該作者
發表於 2012-4-12 12:55
好的 非常謝謝你:")
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

6
ztazta8888 | 收聽TA | 只看該作者
發表於 2012-5-21 23:55
Thank you for your share ~~~~~~~~~~~~~~~~
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則