<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                SQLite數據庫的創建和操作 Email:chentravelling@163.com 前天學習了一下界面布局和activity,昨天抽了一會時間搗騰了一下SQLite,總體感覺Android的數據庫服務還算方便,這都是兩個類的功勞:SQLiteOpenHelper和SQLiteDatabase。關于這兩個類,后續再講。 ### 一、環境 IDE:Android Studio JDK:1.8 系統:win 7 64位 ### 二、設計 我拿了一個簡單的例子:people表字段如下 <table border="1" width="200" cellspacing="1" cellpadding="1" align="center"><tbody><tr><td><span style="font-family:'Microsoft YaHei'"><span style="font-size:14px">字段</span></span></td><td><span style="font-family:'Microsoft YaHei'"><span style="font-size:14px">類型</span></span></td><td><span style="font-family:'Microsoft YaHei'"><span style="font-size:14px">主鍵</span></span></td></tr><tr><td><span style="font-family:'Microsoft YaHei'"><span style="font-size:14px">id</span></span></td><td><span style="font-family:'Microsoft YaHei'"><span style="font-size:14px">TEXT</span></span></td><td><span style="font-family:'Microsoft YaHei'"><span style="font-size:14px">KEY</span></span></td></tr><tr><td><span style="font-family:'Microsoft YaHei'"><span style="font-size:14px">name</span></span></td><td><span style="font-family:'Microsoft YaHei'"><span style="font-size:14px">TEXT</span></span></td><td><span style="font-family:'Microsoft YaHei'"><span style="font-size:14px"><br/></span></span></td></tr><tr><td><span style="font-family:'Microsoft YaHei'"><span style="font-size:14px">workplace</span></span></td><td><span style="font-family:'Microsoft YaHei'"><span style="font-size:14px">TEXT</span></span></td><td><span style="font-family:'Microsoft YaHei'"><span style="font-size:14px"><br/></span></span></td></tr><tr><td><span style="font-family:'Microsoft YaHei'"><span style="font-size:14px">phone</span></span></td><td><span style="font-family:'Microsoft YaHei'"><span style="font-size:14px">TEXT</span></span></td><td><span style="font-family:'Microsoft YaHei'"><span style="font-size:14px"><br/></span></span></td></tr><tr><td><span style="font-family:'Microsoft YaHei'"><span style="font-size:14px">gender<span style="white-space:pre"/></span></span></td><td><span style="font-family:'Microsoft YaHei'"><span style="font-size:14px">INTEGER</span></span></td><td><span style="font-family:Microsoft YaHei; font-size:18px"><br/></span></td></tr></tbody></table> 2.1)首先我寫了一個people類:peopleBean。為什么要新建一個類呢?首先是對需要傳遞和保存的信息進行封裝,這樣個人覺得更加符合面向對象的思想,也使得代碼更規范,可讀性更高,安全性更高。 ~~~ /** * Created by chen on 2015/12/16. */ public class peopleBean { private String id;//主鍵 private String name; private String workplace; private String phone; private int gender; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getWorkplace() { return workplace; } public void setWorkplace(String workplace) { this.workplace = workplace; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public int getGender() { return gender; } public void setGender(int gender) { this.gender = gender; } } </span> ~~~ 2.2)新建一個對數據庫進行操作的類:AddressDAO,該類繼承自SQLiteOpenHelper類,關于SQLiteOpenHelper類的說明將在另一個章節中討論。 ~~~ <pre name="code" class="java"><span style="font-family:Microsoft YaHei;font-size:18px;"> import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; /** * Created by chen on 2015/12/16. */ public class AddressDAO extends SQLiteOpenHelper{ private SQLiteDatabase db; public AddressDAO(Context context) { super(context,"address_db",null,1); } //創建數據庫 @Override public void onCreate(SQLiteDatabase db) { Log.e("onCreate", "create"); String sql = "CREATE TABLE IF NOT EXISTS people(id integer primary key autoincrement,name text,phone text,workplace text,gender integer);"; db.execSQL(sql); } //當數據庫升級的時候,Android系統會自動調用onUpgrade方法 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { String sql = "DROP TABLE IF EXISTS address_db"; db.execSQL(sql); onCreate(db); } //關閉數據庫服務 public void closeDB(SQLiteDatabase db) { if(db!=null) { db.close(); } } //插入數據 public void add(peopleBean people) { /* String name = people.getName(); String phone = people.getPhone(); String workplace = people.getWorkplace(); String gender = people.getGender()==0?"男":"女";*/ String sql = "insert into people values(null,'"+people.getName()+"','"+people.getPhone()+"','"+people.getWorkplace()+"','"+people.getGender()+"')"; //String sql = "insert into people values(null,'張亞茹','13716762131','北京','0');"; //獲取SQLiteDatabase對象實例 db = this.getWritableDatabase(); db.execSQL(sql); } //查詢數據:返回的是一個Cursor對象 public Cursor query() { String sql = "select * from people"; //獲取SQLiteDatabase對象實例 db = this.getReadableDatabase(); Cursor cursor = db.rawQuery(sql, null); return cursor; } } </span> ~~~ 其中關鍵的幾個地方: (1)重寫**onCreate()**函數,功能:新建數據庫,庫名:address_db (2)重寫**onUpdate()**函數,數據庫升級時,Android系統會自動調用該方法 (3)查詢的時候,調用的是**rawQuery()**方法,返回的是**Cursor對象**,該對象是一個數據集合,關于Cursor的操作,后續再講。 其他的刪除和查詢暫時還沒寫。 當然還可以通過調用SQLiteDatabase類中的insert()、delete()、update()、rawQuery()進行數據的增刪改查,但是個人喜歡通過執行sql語句來做,比較方便。 ### 三、關于SQLite可視化 系統中的數據庫在哪里呢?見下圖: 打開android device monitor ![](https://box.kancloud.cn/2016-03-18_56eb6a3476878.jpg) ![](https://box.kancloud.cn/2016-03-18_56eb6a349c204.jpg) 將數據庫表導入和導出: ![](https://box.kancloud.cn/2016-03-18_56eb6a34ae300.jpg) 然后就可以利用SQLite可視化工具查看了:SQLite Expert
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看