版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、上一講我們講解了SQLite數(shù)據(jù)庫的創(chuàng)建數(shù)據(jù)存儲之 SQLite 數(shù)據(jù)庫操作(一,還有更新的操作,這一講我們來講解一下數(shù)據(jù)庫的增刪改查,這邊的程序是對上一個程序進行修改,建議結(jié)合上一講內(nèi)容進行學(xué)習(xí)。1. SQLiteDatabase介紹 1. 在 SQLiteOpenHelper 類中,調(diào)用getWritableDatabase(方法也會完成創(chuàng)建或者打開數(shù)據(jù)庫的操作主要是用來讀和寫,它返回的類型是 :SQLiteDatabase,下面我們就來看一下這個類的介紹查看其 API介紹 這個類主要是用來管理數(shù)據(jù)庫,它有一些方法來完成創(chuàng)建,刪除,執(zhí)行SQL語句
2、,還有執(zhí)行其他相同數(shù)據(jù)庫管理的任務(wù)。查看相關(guān)方法 可以發(fā)現(xiàn)這個類里面的方法很多都是用來維護數(shù)據(jù)庫的,類似查詢等。 查看這個 public void execSQL (String sql, Object bindArgs 方法用來執(zhí)行一個SQL語句,在這個方法說明中,Android建議我們使用以下這種方式來進行對數(shù)據(jù)庫的增刪改查的。 insert(String, String, ContentValues insertOrThrow(String, String, ContentValues
3、0; insertWithOnConflict(String, String, ContentValues, int同理還有其他操作數(shù)據(jù)庫的操作,詳情請參考api文檔 【備注】:這種對數(shù)據(jù)庫的操作方式是 Android 官方給我們建議的,我們會在下一講中介紹這種方式,在這一講中,下面的例子操作數(shù)據(jù)庫的方式主要是使用數(shù)據(jù)庫的 SQL語句。2. 程序?qū)崿F(xiàn)1. 布局文件 activity_main.xml 這里就不貼出來,主要幾個按鈕的定義2. DBOpenHelper.java 用來對數(shù)據(jù)庫進行創(chuàng)建和更新,上一講對這個文件有詳細(xì)講解,如有不懂,建議查看
4、上一講內(nèi)容。java view plaincopy1. package2. 3. import4. import5. import6. 7. public class DBOpenHelper extends SQLiteOpenHelper 8. 9. private static String name = "mydb.db&qu
5、ot; / 表示數(shù)據(jù)庫的名稱 10. private static int version = 1; / 表示數(shù)據(jù)庫的版本號 11. 12. public DBOpenHelper(Context context 13.
6、; super(context, name, null, version; 14. / TODO Auto-generated constructor stub 15. 16. 17. / 當(dāng)數(shù)據(jù)庫創(chuàng)建的時候,是第
7、一次被執(zhí)行,完成對數(shù)據(jù)庫的表的創(chuàng)建 18. Override 19. public void onCreate(SQLiteDatabase db 20. / TODO Auto-generated method stub 21.
8、60; / SQLite 數(shù)據(jù)創(chuàng)建支持的數(shù)據(jù)類型: 整型數(shù)據(jù),字符串類型,日期類型,二進制的數(shù)據(jù)類型 22. / 數(shù)據(jù)庫這邊有一個特點,就是SQLite數(shù)據(jù)庫中文本類型沒有過多的約束,也就是可以把布爾類型的數(shù)據(jù)存儲到文本類型中,這樣也是可以的 23. &
9、#160;String sql = "create table person(id integer primary key autoincrement,name varchar(64,address varchar(64,sex varchar(8" 24. db.execSQL(sql; / 完成數(shù)據(jù)庫的創(chuàng)建
10、; 25. 26. 27. Override 28. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion 29.
11、60; / TODO Auto-generated method stub 30. 31. 32. 3. PersonService.java 定義增刪改查接口java view plaincopy1. package2. 3. import4. import5. 6. 7. /* 8. *
12、 定義好增刪改查接口 9. * author xukunhui 10. * 11. */ 12. public interface PersonService 13. 14. public boolean addPersion(Object params; 15. &
13、#160; 16. public boolean deletePerson(Object params; 17. 18. public boolean updatePerson(Object params; 19. 20.
14、 /使用 Map 做一個封裝,比如說查詢數(shù)據(jù)庫的時候返回的單條記錄 21. public Map viewPerson(String selectionArgs; 22. 23. /使用 List > 做一個封裝,比如說查詢數(shù)據(jù)庫的時候返回的多條記錄
15、160; 24. public List > listPersonMaps(String selectionArgs; 25. 4. PersonDao.java 實現(xiàn)增刪改查功能java view plaincopy1. package2. 3. import4. import5. import6. import7. 8. import9. import10. import11. &
16、#160;12. import13. import14. 15. 16. /* 17. * 數(shù)據(jù)庫的訪問工具類 18. * 實現(xiàn)定義好的增刪改查接口 19. * author xukunhui 20. * 21. */ 22. public class PersonDao implements PersonService
17、60; 23. 24. /獲得 helper對象用來操縱數(shù)據(jù)庫 25. private DBOpenHelper helper = null; 26. public PersonDao(Context context 27.
18、 helper = new DBOpenHelper(context; 28. 29. 30. /* 31. * 下面四個方法實現(xiàn)對數(shù)據(jù)庫的增刪改查功能 32. */ 33.
19、 34. Override 35. public boolean addPersion(Object params 36. boolean flag = false; 37.
20、; SQLiteDatabase database = null; 38. try 39. /這里面問好表示占位符,所以要需要傳入所有的占位符的值,傳入值有這個方法中的參數(shù)傳遞 40
21、. String sql = "insert into person(name,address,sex values(?,?,?" 41. database = helper.getWrit
22、ableDatabase(; /實現(xiàn)對數(shù)據(jù)庫寫的操作 42. database.execSQL(sql, params; 43. flag = true; 44.
23、60; catch (Exception e 45. e.printStackTrace(; 46. finally 47.
24、60; if(database != null 48. database.close(; 49.
25、0; 50. 51. return flag; 52. 53. 54. Override 55. public boo
26、lean deletePerson(Object params 56. boolean flag = false; 57. SQLiteDatabase database = null; 58.
27、60; try 59. String sql = "delete from person where id = ? " 60.
28、; database = helper.getWritableDatabase(; p 61. database.execSQL(sql, params; 62. flag = true;
29、60; 63. catch (Exception e 64. e.printStackTrace(; 65.
30、0; finally 66. if(database != null 67. da
31、tabase.close(; 68. 69. 70. return flag; 71. 7
32、2. 73. Override 74. public boolean updatePerson(Object params 75. boolean flag = false; 76. &
33、#160; SQLiteDatabase database = null; 77. try 78. String sql = "update person set name
34、;= ?, address = ?, sex = ? where id = ? " 79. database = helper.getWritableDatabase(; 80.
35、; database.execSQL(sql, params; 81. flag = true; 82. catch (Exception e 83.
36、; e.printStackTrace(; 84. finally 85. if(database != null
37、160;86. database.close(; 87. 88. 89.
38、 return flag; 90. 91. 依據(jù)國家的方針、政策和各級教育部門的要求,根據(jù)我校實際情況,本學(xué)期不斷完善學(xué)校各項規(guī)章制度,形成學(xué)校科學(xué)有效的制度體系。使學(xué)校各項工作都有章可循,嚴(yán)格按制度辦事,規(guī)范學(xué)校的辦學(xué)行為,提高教師的育人素質(zhì),使學(xué)校的各項工作科學(xué)、規(guī)范、有效,圍繞 “促進發(fā)展”為工作重點,努力打造平安和諧校園、綠色書香校園,健康禮儀
39、智慧校園,進一步樹立為學(xué)生發(fā)展奠基,為教師成長搭臺和為社會進步服務(wù)的辦學(xué)思想。下面對本學(xué)期工作作如下總結(jié):根據(jù) Id 號來查詢,查詢的每一行數(shù)據(jù)返回用 Map 集合來存儲 、落實常規(guī)檢查。93. 3Override 94. Map viewPerson(String selectionArgs 95. OK比賽,小選手們大展歌喉,許多小歌星脫穎而出。宣傳欄是學(xué)生展現(xiàn)才能的舞臺,學(xué)校經(jīng)常更新,學(xué)生們不斷創(chuàng)新、勇躍投稿,作品質(zhì)量提高不少。在綠色學(xué)校檢查的鞭策下,學(xué)生環(huán)保
40、意識加強,爭當(dāng)“環(huán)保小衛(wèi)士”的行為屢建不鮮。本學(xué)期在各級領(lǐng)導(dǎo)的關(guān)心及學(xué)校的重視下,我校順利通過“石獅市綠色學(xué)?!钡臋z查。 HashMap (; 96. SQLiteDatabase database = null; 97. try 98.
41、 String sql = "select * from person where id = ? " 99. 本學(xué)期我校肖醉蘭師參加泉州市心理健康教育錄像課比賽一等獎。蔡雙勉師獲得石獅市“小學(xué)數(shù)學(xué)統(tǒng)計與概率教學(xué)問題、歸因及對策研究”優(yōu)秀總結(jié)評選二等獎。參加中心校班主任工作技能競賽,肖醉蘭師獲得總分二等獎;肖醉蘭師撰寫案例分析單項比賽二等獎;肖醉蘭教育故
42、事演講單項比賽一等獎,李檔楊師撰寫學(xué)生操行評語單項比賽一等獎。參加中心校青年教師鋼筆字比賽一等獎人,二等獎查詢讀取數(shù)據(jù),查詢結(jié)果使用名。參加中心校青年教師數(shù)學(xué)賽課一等獎。來存儲、100. /聲明一個游標(biāo),這個是行查詢的操作,支持原生SQL 、開展讀書沙龍 本學(xué)期學(xué)校向全體老師推薦相關(guān)教育教學(xué)書籍,經(jīng)過一段時間的活動后,組織全體教師開展幾次讀書沙龍,教師們或談讀書體會,或談讀書小故事,或推薦教育閱讀書目。這次活動
43、激發(fā)了教師的讀書欲望,增強廣大教師的研究意識和研究能力,提高 解決教育教學(xué)實踐中各種現(xiàn)實問題的信心和能力,幫助教師不斷創(chuàng)新工作業(yè)績,確保教育質(zhì)量的全面提高。102. int colums = cursor.getColumnCount(;/ 103.
44、; /cursor.moveToNext( 之后,我校舉行了“與陽光姐姐零距離接觸”日記征文比賽。各班勇躍投稿,學(xué)校從優(yōu)秀作品中 while105. 活動,(int i = 0; i < colums; i+ 促進教師鉆研課題意識,提高科研能力,提高作文教學(xué)質(zhì)量。106.
45、60; String cols_name = cursor.getColumnName(i; /提取列的名稱 三、學(xué)校、家庭、社會三位一體,辦人民滿意教育 107.本學(xué)期期中考后召開16年級學(xué)生家長會。每班確定會議主題,預(yù)設(shè)要解決的問題,與家長們進行充分的交流和溝通,充分了解社會、家長對學(xué)校的要求和建議,也讓社會了解我校的辦學(xué)方向和理念,知道如何去教育子女;
46、如何配合、支持學(xué)校的工作。定期召開家長會,教師積極家訪,加強家校合作,共同謀求教育學(xué)生的最佳途徑。學(xué)校、家庭、社會通力合作辦人民滿意的教育。 108. /數(shù)據(jù)庫中有寫記錄是允許有空值的,所以這邊需要做一個處理 109. &
47、#160; if(cols_value = null 110. cols_value = &qu
48、ot;" 111. 112. map.put(cols_name
49、, cols_value; 113. 114. 115. catch
50、0;(Exception e 116. e.printStackTrace(; 117. finally 118.
51、 if(database != null 119. database.close(; 120. 121.
52、 122. return map; 123. 124. 125. /多條記錄 用 List > 來封裝,每一行產(chǎn)生一個 Map集合來裝載這一行的數(shù)據(jù) 126.
53、160;/這樣就有多個Map值,然后放入List中. 127. Override 128. public List > listPersonMaps(String selectionArgs 129. List > list = new Arr
54、ayList >(; 130. SQLiteDatabase database = null; 131. try 132. String
55、sql = "select * from person " /這個是查詢表中所有的內(nèi)容,所以就不需要傳入的這個參數(shù)值了 133. database = helper.getReadableDatabase(; 134.
56、; Cursor cursor = database.rawQuery(sql, selectionArgs; 135. int colums = cursor.getColumnCount(; 136.
57、60; while(cursor.moveToNext( 137. Map map = new HashMap (; 138.
58、 for(int i = 0; i < colums; i+ 139. String cols_name = cursor.getColumnName
59、(i; 140. String cols_value = cursor.getString(cursor.getColumnIndex(cols_name; 141.
60、; if(cols_name = null 142. cols_value = ""
61、160; 143. 144. map.put(cols_name,
62、0;cols_value; 145. 146. list.add(map; 147. &
63、#160; 148. catch (Exception e 149. / TODO: handle exception 150.
64、60; finally 151. if(database != null 152. database.cl
65、ose(; 153. 154. 155. return list; 156.
66、 157. 5. 主程序文件 MainActivity.java 文件java view plaincopy1. package2. 3. import4. import5. 6. import7. import8. import9. 10. import11. import12. import13. import14. import15. import16. import17. 18. public class MainActivit
67、y extends Activity 19. 20. private Button button1; 21. private Button button2; 22. private Button button3; 23.
68、60; private Button button4; 24. private Button button5; 25. private Button button6; 26. 27. private static final
69、160;String TAG = "MainActivity" 28. Override 29. protected void onCreate(Bundle savedInstanceState 30. super.onCreate(savedIn
70、stanceState; 31. 32. initComponent(; 33. button1.setOnClickListener(new OnClickListener( 34. &
71、#160; 35. Override 36. public void onClick(View v 37.
72、 / TODO Auto-generated method stub 38. DBOpenHelper helper = new DBOpenHelper(MainActivity.this;
73、0;39. /調(diào)用 getWritableDatabase(或者 getReadableDatabase(其中一個方法將數(shù)據(jù)庫建立 40. helper.getWritabl
74、eDatabase(; 41. 42. 43. button2.setOnClickListener(new OnClickListener( 44.
75、 45. Override 46. public void onClick(View v
76、160; 47. / TODO Auto-generated method stub 48. PersonService
77、service = new PersonDao(MainActivity.this; 49. /Object params = "張三","北京","男" 50.
78、0; Object params = "李四","上海","男" /新增加一條記錄 51. boolean flag = service.addPer
79、sion(params; 52. Log.i(TAG, "->" + flag; 53. 54.
80、60; 55. button3.setOnClickListener(new OnClickListener( 56.
81、60;Override 57. public void onClick(View v 58. PersonService service = new
82、 PersonDao(MainActivity.this; 59. Object params = 1; 60. /將ID為1的記錄
83、刪除 61. boolean flag = service.deletePerson(params; 62. Log.i(TAG,
84、"->" + flag; 63. 64. 65. button4.setOnClickListener(new OnClickListen
85、er( 66. 67. Override 68. public void
86、60;onClick(View v 69. / TODO Auto-generated method stub 70. &
87、#160;/將ID為3的這一條記錄修改 71. PersonService service = new PersonDao(MainActivity.this; 72.
88、; Object params = "AHuier", "廈門", "男", "3" 73. boolean flag = service.updatePerson(params;&
89、#160; 74. Log.i(TAG, "->" + flag; 75. 76.
90、0; 77. button5.setOnClickListener(new OnClickListener( 78. 79.
91、 Override 80. public void onClick(View v 81. /查詢ID為3的單條記錄 82.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 項目托管合同范例
- 飯店引流合同范例簡短
- app推廣服務(wù)合同范例
- 購銅合同范例
- 合同范例神器
- 化妝培訓(xùn)員工合同范例
- 裝修材料合同合同范例
- 學(xué)校托管采購合同范例
- 銷售合同范例建陶
- 員工入職檔案合同范例
- 國家開放大學(xué)Python程序設(shè)計形考任務(wù)實驗六-互聯(lián)網(wǎng)評論數(shù)據(jù)分析及其展示綜合案例
- GB/T 44899-2024商品條碼散裝和大宗商品編碼與條碼表示
- 施工企業(yè)五年規(guī)劃
- 2024年保密知識測試試題附答案(綜合卷)
- 侵入性器械(操作)相關(guān)感染防控制度的落實
- 江蘇省南京市、鹽城市2024屆高三第一次模擬考試數(shù)學(xué)試題
- 北京東城北京二中2025屆物理高一第一學(xué)期期末學(xué)業(yè)水平測試試題含解析
- 英語漫談今日中國學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 福建師范大學(xué)《教育學(xué)(含教師職業(yè)道德)》2023-2024學(xué)年第一學(xué)期期末試卷
- 下肢康復(fù)機器人課件
- 必背知識點梳理-2024-2025學(xué)年人教版生物七年級上冊
評論
0/150
提交評論