成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何進行Android數據庫操作

移動開發 Android
當程序有一個消息希望發出去的時候,它需要將消息封裝成一個Android數據庫,并發送。這時候,應該是有一個統一的中心。

強烈建議,在自己Android數據庫接收或發出一個系統action的時候,要名副其實。比如你響應一個view動作,做的確實edit的勾當,你發送一個pick消息,其實你想讓別人做edit的事,這樣都會造成混亂。

一個好的習慣是創建一個輔助類來簡化你的Android數據庫交互。考慮創建一個數據庫適配器,來添加一個與數據庫交互的包裝層。它應該提供直觀的、強類型的方法,如添加、刪除和更新項目。數據庫適配器還應該處理查詢和對創建、打開和關閉數據庫的包裝。

它還常用靜態的Android數據庫常量來定義表的名字、列的名字和列的索引。下面的代碼片段顯示了一個標準數據庫適配器類的框架。它包括一個SQLiteOpenHelper類的擴展類,用于簡化打開、創建和更新數據庫。

  1. import android.content.Context;  
  2.  
  3. import android.database.*;  
  4.  
  5. import android.database.sqlite.*;  
  6.  
  7. import android.database.sqlite.SQLiteDatabase.CursorFactory;  
  8.  
  9. import android.util.Log;  
  10.  
  11. public class MyDBAdapter   
  12.  
  13. {  // The name and column index of each column in your database.  
  14.  
  15. public static final String KEY_NAME=”name”;  
  16.  
  17. public static final int NAME_COLUMN = 1;  
  18.  
  19.    
  20.  
  21. // TODO: Create public field for each column in your table.  
  22.  
  23. // SQL Statement to create a new database.  
  24.  
  25. private static final String DATABASE_CREATE = “create table “ +  
  26.  
  27. DATABASE_TABLE + “ (“ + KEY_ID + “ integer primary key autoincrement, “ +  
  28.  
  29. KEY_NAME + “ text not null);”;  
  30.  
  31.    
  32.  
  33. // Variable to hold the database instance  
  34.  
  35. private SQLiteDatabase db;  
  36.  
  37.    
  38.  
  39. // Context of the application using the database.  
  40.  
  41. private final Context context;  
  42.  
  43.    
  44.  
  45. // Database open/upgrade helper  
  46.  
  47. private myDbHelper dbHelper;  
  48.  
  49.    
  50.  
  51. public MyDBAdapter(Context _context) {  
  52.  
  53. context = _context;  
  54.  
  55. dbHelper = new myDbHelper(context, DATABASE_NAME, null, DATABASE_VERSION);  
  56.  
  57. }  
  58.  
  59.    
  60.  
  61. public MyDBAdapter open() throws SQLException {  
  62.  
  63. db = dbHelper.getWritableDatabase();  
  64.  
  65. return this;  
  66.  
  67. }  
  68.  
  69.    
  70.  
  71. public void close() {  
  72.  
  73. db.close();  
  74.  
  75. }  
  76.  
  77.    
  78.  
  79. public long insertEntry(MyObject _myObject) {  
  80.  
  81. ContentValues contentValues = new ContentValues();  
  82.  
  83. // TODO fill in ContentValues to represent the new row  
  84.  
  85. return db.insert(DATABASE_TABLE, null, contentValues);  
  86.  
  87. }  
  88.  
  89.    
  90.  
  91. public boolean removeEntry(long _rowIndex) {  
  92.  
  93. return db.delete(DATABASE_TABLE, KEY_ID + “=” + _rowIndex, null) > 0;  
  94.  
  95. }  
  96.  
  97. public Cursor getAllEntries () {  
  98.  
  99. return db.query(DATABASE_TABLE, new String[] {KEY_ID, KEY_NAME},  
  100.  
  101. null, null, null, null, null);  
  102.  
  103. }  
  104.  
  105. public MyObject getEntry(long _rowIndex) {  
  106.  
  107. MyObject objectInstance = new MyObject();  
  108.  
  109. // TODO Return a cursor to a row from the database and  
  110.  
  111. // use the values to populate an instance of MyObject  
  112.  
  113. return objectInstance;  
  114.  
  115. }  
  116.  
  117. public int updateEntry(long _rowIndex, MyObject _myObject) {  
  118.  
  119. String where = KEY_ID + “=” + _rowIndex;  
  120.  
  121. ContentValues contentValues = new ContentValues();  
  122.  
  123. // TODO fill in the ContentValue based on the new object  
  124.  
  125. return db.update(DATABASE_TABLE, contentValues, where, null);  
  126.  
  127. }  
  128.  
  129.    
  130.  
  131. private static class myDbHelper extends SQLiteOpenHelper   
  132.  
  133. {  
  134.  
  135. public myDbHelper(Context context, String name, CursorFactory factory, int version) {  
  136.  
  137. super(context, name, factory, version);  
  138.  
  139. }  
  140.  
  141.    
  142.  
  143. // Called when no database exists in  
  144.  
  145. // disk and the helper class needs  
  146.  
  147. // to create a new one.  
  148.  
  149. @Override  
  150.  
  151. public void onCreate(SQLiteDatabase _db) {  
  152.  
  153. _db.execSQL(DATABASE_CREATE);  
  154.  
  155. }  

【編輯推薦】

  1. Android應用程序組建原理深入剖析 
  2. Android SMS短信服務相關概念簡述 
  3. PythonAndroid數據庫相關代碼解讀 
  4. PythonAndroid安裝卸載程序具體操作方法解析 
  5. Android應用程序的四個關鍵點 
責任編輯:chenqingxiang 來源: 博客園
相關推薦

2010-02-05 16:35:35

Android操作系統

2010-05-24 14:57:03

MySQL數據庫表

2011-05-25 00:00:00

數據庫設計

2009-07-15 18:01:53

Jython數據庫

2010-08-17 09:48:40

DB2 分區數據庫

2009-02-02 13:43:19

故障檢測數據庫

2018-02-26 20:00:00

編程語言JavaMySQL

2024-02-23 11:36:57

數據庫Python

2021-07-28 15:44:52

Java開發數據庫

2010-05-18 11:04:11

MySQL數據庫

2010-07-02 14:46:20

SQL Server數

2009-12-29 13:31:55

ADO連接ACCESS

2010-01-15 17:31:18

C++Test

2010-02-01 16:22:36

Python字符串操作

2010-07-26 16:23:46

Telnet 110

2020-09-07 12:59:10

NoSQL數據庫數據

2010-08-17 16:04:29

DB2數據庫

2024-04-03 10:05:02

2018-09-17 16:12:03

數據庫數據恢復SQL Server

2010-01-26 16:55:35

Android數據庫操
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美网址在线观看 | 国产黄色精品 | 久久精品国产a三级三级三级 | 久久久久久久久久久国产 | 婷婷丁香在线视频 | 欧美不卡一区二区 | 国产一区精品 | a在线视频 | 久久久久精 | 夜夜爽夜夜操 | 亚洲不卡一 | 国产精品一区二区久久 | 99av成人精品国语自产拍 | 日韩在线观看一区 | 免费在线视频一区二区 | 性色综合 | 免费在线一区二区 | av免费成人 | 欧美一级免费看 | 99国内精品 | 色吧综合网 | 奇米av | 国产91丝袜在线熟 | 国产精品黄色 | 国产精品成人久久久久 | 激情五月激情综合网 | 国内av在线| 在线午夜电影 | 欧美精品影院 | 久久久久国产精品一区二区 | a级片在线观看 | 欧美日韩亚洲国产综合 | 嫩草视频免费 | 蜜桃在线播放 | 久久久久中文字幕 | 欧美精品久久久久久久久久 | 日本在线观看网址 | 美女久久久久 | 国产精品国产成人国产三级 | 色婷婷综合网 | 成人视屏在线观看 |