版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、上一講我們講解了SQLite數(shù)據(jù)庫的創(chuàng)建數(shù)據(jù)存儲之 SQLite 數(shù)據(jù)庫操作(一,還有更新的操作,這一講我們來講解一下數(shù)據(jù)庫的增刪改查,這邊的程序是對上一個程序進行修改,建議結(jié)合上一講內(nèi)容進行學習。1. SQLiteDatabase介紹 1. 在 SQLiteOpenHelper 類中,調(diào)用getWritableDatabase(方法也會完成創(chuàng)建或者打開數(shù)據(jù)庫的操作主要是用來讀和寫,它返回的類型是 :SQLiteDatabase,下面我們就來看一下這個類的介紹查看其 API介紹 這個類主要是用來管理數(shù)據(jù)庫,它有一些方法來完成創(chuàng)建,刪除,執(zhí)行SQL語句
2、,還有執(zhí)行其他相同數(shù)據(jù)庫管理的任務。查看相關(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)建和更新,上一講對這個文件有詳細講解,如有不懂,建議查看
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. / 當數(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ù)我校實際情況,本學期不斷完善學校各項規(guī)章制度,形成學校科學有效的制度體系。使學校各項工作都有章可循,嚴格按制度辦事,規(guī)范學校的辦學行為,提高教師的育人素質(zhì),使學校的各項工作科學、規(guī)范、有效,圍繞 “促進發(fā)展”為工作重點,努力打造平安和諧校園、綠色書香校園,健康禮儀
39、智慧校園,進一步樹立為學生發(fā)展奠基,為教師成長搭臺和為社會進步服務的辦學思想。下面對本學期工作作如下總結(jié):根據(jù) Id 號來查詢,查詢的每一行數(shù)據(jù)返回用 Map 集合來存儲 、落實常規(guī)檢查。93. 3Override 94. Map viewPerson(String selectionArgs 95. OK比賽,小選手們大展歌喉,許多小歌星脫穎而出。宣傳欄是學生展現(xiàn)才能的舞臺,學校經(jīng)常更新,學生們不斷創(chuàng)新、勇躍投稿,作品質(zhì)量提高不少。在綠色學校檢查的鞭策下,學生環(huán)保
40、意識加強,爭當“環(huán)保小衛(wèi)士”的行為屢建不鮮。本學期在各級領(lǐng)導的關(guān)心及學校的重視下,我校順利通過“石獅市綠色學?!钡臋z查。 HashMap (; 96. SQLiteDatabase database = null; 97. try 98.
41、 String sql = "select * from person where id = ? " 99. 本學期我校肖醉蘭師參加泉州市心理健康教育錄像課比賽一等獎。蔡雙勉師獲得石獅市“小學數(shù)學統(tǒng)計與概率教學問題、歸因及對策研究”優(yōu)秀總結(jié)評選二等獎。參加中心校班主任工作技能競賽,肖醉蘭師獲得總分二等獎;肖醉蘭師撰寫案例分析單項比賽二等獎;肖醉蘭教育故
42、事演講單項比賽一等獎,李檔楊師撰寫學生操行評語單項比賽一等獎。參加中心校青年教師鋼筆字比賽一等獎人,二等獎查詢讀取數(shù)據(jù),查詢結(jié)果使用名。參加中心校青年教師數(shù)學賽課一等獎。來存儲、100. /聲明一個游標,這個是行查詢的操作,支持原生SQL 、開展讀書沙龍 本學期學校向全體老師推薦相關(guān)教育教學書籍,經(jīng)過一段時間的活動后,組織全體教師開展幾次讀書沙龍,教師們或談讀書體會,或談讀書小故事,或推薦教育閱讀書目。這次活動
43、激發(fā)了教師的讀書欲望,增強廣大教師的研究意識和研究能力,提高 解決教育教學實踐中各種現(xiàn)實問題的信心和能力,幫助教師不斷創(chuàng)新工作業(yè)績,確保教育質(zhì)量的全面提高。102. int colums = cursor.getColumnCount(;/ 103.
44、; /cursor.moveToNext( 之后,我校舉行了“與陽光姐姐零距離接觸”日記征文比賽。各班勇躍投稿,學校從優(yōu)秀作品中 while105. 活動,(int i = 0; i < colums; i+ 促進教師鉆研課題意識,提高科研能力,提高作文教學質(zhì)量。106.
45、60; String cols_name = cursor.getColumnName(i; /提取列的名稱 三、學校、家庭、社會三位一體,辦人民滿意教育 107.本學期期中考后召開16年級學生家長會。每班確定會議主題,預設要解決的問題,與家長們進行充分的交流和溝通,充分了解社會、家長對學校的要求和建議,也讓社會了解我校的辦學方向和理念,知道如何去教育子女;
46、如何配合、支持學校的工作。定期召開家長會,教師積極家訪,加強家校合作,共同謀求教育學生的最佳途徑。學校、家庭、社會通力合作辦人民滿意的教育。 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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 面包美食課程設計
- 美國供應鏈課程設計
- 雨污分流課程設計
- 飼草打包機課程設計
- 錐齒輪軸畢業(yè)課程設計
- 銷售執(zhí)行力課程設計
- 鋼屋架有檁體系課程設計
- 2024音像出版社與數(shù)字圖書館之間的版權(quán)許可與電子借閱合同
- 2024智能物業(yè)管理服務系統(tǒng)建設合同
- 2025年度鍋爐設備銷售與售后服務合同3篇
- 15.5-博物館管理法律制度(政策與法律法規(guī)-第五版)
- 水泥廠鋼結(jié)構(gòu)安裝工程施工方案
- 2023光明小升初(語文)試卷
- 三年級上冊科學說課課件-1.5 水能溶解多少物質(zhì)|教科版
- GB/T 7588.2-2020電梯制造與安裝安全規(guī)范第2部分:電梯部件的設計原則、計算和檢驗
- GB/T 14600-2009電子工業(yè)用氣體氧化亞氮
- 小學道德與法治學科高級(一級)教師職稱考試試題(有答案)
- 河北省承德市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細
- 實用性閱讀與交流任務群設計思路與教學建議
- 應急柜檢查表
- 通風設施標準
評論
0/150
提交評論