![Android基礎(chǔ)開(kāi)發(fā)-練習(xí)八@侯敬儒_第1頁(yè)](http://file4.renrendoc.com/view14/M01/34/38/wKhkGWbgEXWAXNqBAAGB9-d7Ojc417.jpg)
![Android基礎(chǔ)開(kāi)發(fā)-練習(xí)八@侯敬儒_第2頁(yè)](http://file4.renrendoc.com/view14/M01/34/38/wKhkGWbgEXWAXNqBAAGB9-d7Ojc4172.jpg)
![Android基礎(chǔ)開(kāi)發(fā)-練習(xí)八@侯敬儒_第3頁(yè)](http://file4.renrendoc.com/view14/M01/34/38/wKhkGWbgEXWAXNqBAAGB9-d7Ojc4173.jpg)
![Android基礎(chǔ)開(kāi)發(fā)-練習(xí)八@侯敬儒_第4頁(yè)](http://file4.renrendoc.com/view14/M01/34/38/wKhkGWbgEXWAXNqBAAGB9-d7Ojc4174.jpg)
![Android基礎(chǔ)開(kāi)發(fā)-練習(xí)八@侯敬儒_第5頁(yè)](http://file4.renrendoc.com/view14/M01/34/38/wKhkGWbgEXWAXNqBAAGB9-d7Ojc4175.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
事在人為11/26實(shí)驗(yàn)8SQLite數(shù)據(jù)庫(kù)與ContentProvider實(shí)驗(yàn)?zāi)康模赫莆誗QLite數(shù)據(jù)庫(kù)的建立和操作方法。理解ContentProvider的用途和原理。掌握ContentProvider的創(chuàng)建和使用方法。實(shí)驗(yàn)內(nèi)容:使用Android代碼的方式建立SQLite數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)名稱為test.db,并建立staff數(shù)據(jù)表,表內(nèi)的屬性值如下表所示:屬性數(shù)據(jù)類型說(shuō)明_idinteger主鍵nametext姓名sextext性別departmenttext所在部門(mén)salaryfloat工資在完成建立數(shù)據(jù)庫(kù)的工作后,編程實(shí)現(xiàn)基本的數(shù)據(jù)庫(kù)操作功能,包括數(shù)據(jù)的添加、刪除和更新,并嘗試將下表中的數(shù)據(jù)添加到staff表中。_idnamesexdepartmentsalary1Tommale計(jì)算機(jī)學(xué)院54002Einsteinmale計(jì)算機(jī)學(xué)院48003Lilyfemale數(shù)理學(xué)院50004Warnermale5Napoleonmale實(shí)驗(yàn)截圖:如圖1、2、3、4、5、6、7、8、9、10所示:程序主界面:圖1添加一條數(shù)據(jù):圖2查詢所有數(shù)據(jù):圖3查詢一條數(shù)據(jù):圖4修改一條數(shù)據(jù):圖5查詢一條數(shù)據(jù):圖6刪除一條數(shù)據(jù):圖7查詢所有數(shù)據(jù):圖8核心代碼塊:activity_main_activity207.xml:<RelativeLayoutxmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity207"><TableLayoutandroid:id="@+id/mainLayout"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignLeft="@+id/nameTextView"android:layout_alignTop="@+id/nameTextView"><TableRowandroid:id="@+id/tableRow1"android:layout_width="wrap_content"android:layout_height="wrap_content"><TextViewandroid:id="@+id/nameTextView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="姓名:"/><EditTextandroid:id="@+id/nameEditText"android:layout_width="wrap_content"android:layout_height="wrap_content"/></TableRow><TableRowandroid:id="@+id/tableRow2"android:layout_width="wrap_content"android:layout_height="wrap_content"><TextViewandroid:id="@+id/sexTextView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="性別:"/><EditTextandroid:id="@+id/sexEditText"android:layout_width="wrap_content"android:layout_height="wrap_content"/></TableRow><TableRowandroid:id="@+id/tableRow3"android:layout_width="wrap_content"android:layout_height="wrap_content"><TextViewandroid:id="@+id/departmentTextView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="所在部門(mén):"/><EditTextandroid:id="@+id/departmentEditText"android:layout_width="wrap_content"android:layout_height="wrap_content"/></TableRow><TableRowandroid:id="@+id/tableRow4"android:layout_width="wrap_content"android:layout_height="wrap_content"><TextViewandroid:id="@+id/salaryTextView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="工資:"/><EditTextandroid:id="@+id/salaryEditText"android:layout_width="wrap_content"android:layout_height="wrap_content"/></TableRow><TableRowandroid:id="@+id/tableRow5"android:layout_width="wrap_content"android:layout_height="wrap_content"><Buttonandroid:id="@+id/addButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="添加數(shù)據(jù)"/><Buttonandroid:id="@+id/updateButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="修改數(shù)據(jù)"/></TableRow><TableRowandroid:id="@+id/tableRow6"android:layout_width="wrap_content"android:layout_height="wrap_content"><Buttonandroid:id="@+id/selectallButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="查詢所有"/><Buttonandroid:id="@+id/deleteButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="刪除數(shù)據(jù)"/></TableRow><TableRowandroid:id="@+id/tableRow7"android:layout_width="wrap_content"android:layout_height="wrap_content"><TextViewandroid:id="@+id/idTextView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="請(qǐng)輸入ID號(hào):"/><EditTextandroid:id="@+id/idEditText"android:layout_width="wrap_content"android:layout_height="wrap_content"/><Buttonandroid:id="@+id/selectButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="查詢"/></TableRow><TextViewandroid:id="@+id/displayTextView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="bottom"android:text="顯示相關(guān)信息。。。。"/></TableLayout></RelativeLayout>People207.java:packagecqut.hjr;publicclassPeople207{ publicintID=-1; publicStringName; publicStringSex; publicStringDepartment; publicfloatSalary; @Override publicStringtoString(){ Stringresult=""; result+="ID:"+this.ID+","; result+="姓名:"+this.Name+","; result+="性別:"+this.Sex+","; result+="所在部門(mén):"+this.Department+","; result+="工資:"+this.Salary+","; returnresult; }}DBAdapter207.java:packagecqut.hjr;importandroid.content.ContentValues;importandroid.content.Context;importandroid.database.Cursor;importandroid.database.sqlite.SQLiteDatabase;importandroid.database.sqlite.SQLiteException;importandroid.database.sqlite.SQLiteOpenHelper;importandroid.database.sqlite.SQLiteDatabase.CursorFactory;publicclassDBAdapter207{ privatestaticfinalStringDB_NAME="test.db"; privatestaticfinalStringDB_TABLE="staff"; privatestaticfinalintDB_VERSION=1; publicstaticfinalStringKEY_ID="_id"; publicstaticfinalStringKEY_NAME="name"; publicstaticfinalStringKEY_SEX="sex"; publicstaticfinalStringKEY_DEPARTMENT="department"; publicstaticfinalStringKEY_SALARY="salary"; privatestaticfinalCursorFactoryMODE_PRIVATE=null; privateSQLiteDatabasedb; privatefinalContextcontext; privateDBOpenHelperdbOpenHelper; //構(gòu)造函數(shù)(將上下文對(duì)象傳入) publicDBAdapter207(Context_context){ context=_context; } /**關(guān)閉數(shù)據(jù)庫(kù)**/ publicvoidclose(){ if(db!=null){ db.close(); db=null; } } /**打開(kāi)數(shù)據(jù)庫(kù)**/ publicvoidopen()throwsSQLiteException{ dbOpenHelper=newDBOpenHelper(context,DB_NAME,null,DB_VERSION); try{ db=dbOpenHelper.getWritableDatabase(); } catch(SQLiteExceptionex){ db=dbOpenHelper.getReadableDatabase(); } } /**插入一條數(shù)據(jù)**/ publiclonginsert(People207people){ ContentValuesnewValues=newContentValues(); newValues.put(KEY_NAME,people.Name); newValues.put(KEY_SEX,people.Sex); newValues.put(KEY_DEPARTMENT,people.Department); newValues.put(KEY_SALARY,people.Salary); returndb.insert(DB_TABLE,null,newValues); } /**查詢所有數(shù)據(jù)**/ publicPeople207[]queryAllData(){ Cursorresults=db.query(DB_TABLE,newString[]{KEY_ID,KEY_NAME,KEY_SEX,KEY_DEPARTMENT,KEY_SALARY}, null,null,null,null,null); returnConvertToPeople(results); } /**查詢一條數(shù)據(jù)**/ publicPeople207[]queryOneData(longid){ Cursorresults=db.query(DB_TABLE,newString[]{KEY_ID,KEY_NAME,KEY_SEX,KEY_DEPARTMENT,KEY_SALARY}, KEY_ID+"="+id,null,null,null,null); returnConvertToPeople(results); } /**將查詢到的數(shù)據(jù)(游標(biāo)指針)轉(zhuǎn)換成Pepole數(shù)組對(duì)象**/ privatePeople207[]ConvertToPeople(Cursorcursor){ intresultCounts=cursor.getCount(); if(resultCounts==0||!cursor.moveToFirst()){ returnnull; } People207[]peoples=newPeople207[resultCounts]; for(inti=0;i<resultCounts;i++){ peoples[i]=newPeople207(); peoples[i].ID=cursor.getInt(0); peoples[i].Name=cursor.getString(cursor.getColumnIndex(KEY_NAME)); peoples[i].Sex=cursor.getString(cursor.getColumnIndex(KEY_SEX)); peoples[i].Department=cursor.getString(cursor.getColumnIndex(KEY_DEPARTMENT)); peoples[i].Salary=cursor.getFloat(cursor.getColumnIndex(KEY_SALARY)); cursor.moveToNext(); } returnpeoples; } /**刪除所有數(shù)據(jù)**/ publiclongdeleteAllData(){ returndb.delete(DB_TABLE,null,null); } /**刪除一條數(shù)據(jù)**/ publiclongdeleteOneData(longid){ returndb.delete(DB_TABLE,KEY_ID+"="+id,null); } /**更新一條數(shù)據(jù)**/ publiclongupdateOneData(longid,People207people){ ContentValuesupdateValues=newContentValues(); updateValues.put(KEY_NAME,people.Name); updateValues.put(KEY_SEX,people.Sex); updateValues.put(KEY_DEPARTMENT,people.Department); updateValues.put(KEY_SALARY,people.Salary); returndb.update(DB_TABLE,updateValues,KEY_ID+"="+id,null); } /**靜態(tài)Helper類,用于建立、更新和打開(kāi)數(shù)據(jù)庫(kù)*/ privatestaticclassDBOpenHelperextendsSQLiteOpenHelper{ publicDBOpenHelper(Contextcontext,Stringname,CursorFactoryfactory,intversion){ super(context,name,factory,version); }// privatestaticfinalStringDB_CREATE="createtable"+// DB_TABLE+"("+KEY_ID+"integerprimarykeyautoincrement,"+// KEY_NAME+"textnotnull,"+KEY_AGE+"integer,"+KEY_HEIGHT+"float);"; privatestaticfinalStringDB_CREATE="createtable"+ DB_TABLE+"("+KEY_ID+"integerprimarykeyautoincrement,"+ KEY_NAME+"textnotnull,"+KEY_SEX+"textnotnull,"+KEY_DEPARTMENT+"textnotnull,"+KEY_SALARY+"float);"; @Override publicvoidonCreate(SQLiteDatabase_db){ _db.execSQL(DB_CREATE); } @Override publicvoidonUpgrade(SQLiteDatabase_db,int_oldVersion,int_newVersion){ _db.execSQL("DROPTABLEIFEXISTS"+DB_TABLE); onCreate(_db); } }}MainActivity207.java:packagecqut.hjr;importandroid.os.Bundle;importandroid.app.Activity;importandroid.view.Menu;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.TextView;importandroid.widget.Toast;publicclassMainActivity207extendsActivity{ privateDBAdapter207dbAdepter; //實(shí)例化控件對(duì)象 privateEditTextnameText; privateEditTextsexText; privateEditTextdepartmentText; privateEditTextsalaryText; privateEditTextidText; privateTextViewdisplayTextView; @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_activity207); /* *獲得各個(gè)控件對(duì)象 */ nameText=(EditText)findViewById(R.EditText); sexText=(EditText)findViewById(R.id.sexEditText); departmentText=(EditText)findViewById(R.id.departmentEditText); salaryText=(EditText)findViewById(R.id.salaryEditText); idText=(EditText)findViewById(R.id.idEditText); displayTextView=(TextView)findViewById(R.id.displayTextView); ButtonaddButton=(Button)findViewById(R.id.addButton);ButtonupdateButton=(Button)findViewById(R.id.updateButton);ButtonselectAllButton=(Button)findViewById(R.id.selectallButton);ButtondeleteAllButton=(Button)findViewById(R.id.deleteButton);ButtonselectButton=(Button)findViewById(R.id.selectButton);//設(shè)置按鈕對(duì)象鏈接對(duì)應(yīng)的監(jiān)聽(tīng)器對(duì)象addButton.setOnClickListener(addButtonListener);updateButton.setOnClickListener(updateButtonListener);selectAllButton.setOnClickListener(selectAllButtonListener);deleteAllButton.setOnClickListener(deleteButtonListener);//deleteAllButton.setOnClickListener(deleteAllButtonListener);selectButton.setOnClickListener(selectButtonListener);dbAdepter=newDBAdapter207(this);dbAdepter.open(); } /* *添加按鈕監(jiān)聽(tīng)器 */ OnClickListeneraddButtonListener=newOnClickListener(){ @Override publicvoidonClick(Viewv){ People207people=newPeople207(); people.Name=nameText.getText().toString(); people.Sex=sexText.getText().toString(); people.Department=departmentText.getText().toString(); people.Salary=Float.parseFloat(salaryText.getText().toString()); longcolunm=dbAdepter.insert(people); if(colunm==-1){ displayTextView.setText("添加過(guò)程錯(cuò)誤!"); Toast.makeText(MainActivity207.this,"添加過(guò)程錯(cuò)誤",1).show(); }else{ displayTextView.setText("成功添加數(shù)據(jù),ID:"+String.valueOf(colunm)); Toast.makeText(MainActivity207.this,"恭喜您,添加數(shù)據(jù)成功!",1).show(); } } };/**查詢(所有)按鈕監(jiān)聽(tīng)器*/OnClickListenerselectAllButtonListener=newOnClickListener(){ @Override publicvoidonClick(Viewv){ People207[]peoples=dbAdepter.queryAllData(); if(peoples==null){ displayTextView.setText("Sorry!數(shù)據(jù)庫(kù)中沒(méi)有數(shù)據(jù)"); return; } displayTextView.setText("數(shù)據(jù)庫(kù):"); Stringmsg=""; for(inti=0;i<peoples.length;i++){ msg+=peoples[i].toString()+"\n"; } displayTextView.setText(msg); }};/**刪除(所有)按鈕監(jiān)聽(tīng)器*/OnClickListenerdeleteAllButtonListener=newOnClickListener(){ @Override publicvoidonClick(Viewv){ dbAdepter.deleteAllData(); Stringmsg="數(shù)據(jù)全部刪除"; displayTextView.setText(msg); Toast.makeText(MainActivity207.this,"刪除成功!",1).show(); } };/**查詢(一條數(shù)據(jù))按鈕監(jiān)聽(tīng)器*/OnClickListenerselectButtonListener=newOnClickListener(){ @Override publicvoidonClick(Viewv){ intid=Integer.parseInt(idText.getText().toString()); People207[]peoples=dbAdepter.queryOneData(id); if(peoples==null){ displayTextView.setText("數(shù)據(jù)庫(kù)中沒(méi)有ID為"+String.valueOf(id)+"的數(shù)據(jù)"); retur
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 法醫(yī)鑒定申請(qǐng)書(shū)
- 大學(xué)生自主實(shí)習(xí)申請(qǐng)書(shū)
- 法律職業(yè)客觀題二-2025國(guó)家法律職業(yè)資格考試《客觀題卷二》模擬試卷4
- 初級(jí)銀行管理-銀行專業(yè)初級(jí)《銀行管理》模擬試卷3
- 收費(fèi)的生產(chǎn)服務(wù)項(xiàng)目風(fēng)險(xiǎn)識(shí)別與評(píng)估綜合報(bào)告
- 貧困申請(qǐng)書(shū)要蓋章嗎
- 社交媒體集成對(duì)企業(yè)營(yíng)銷的影響
- 2024-2025學(xué)年天津市八校聯(lián)考高三(上)期末地理試卷
- DB2201-T 40-2023 殘疾人居家安養(yǎng)服務(wù)信息化建設(shè)與管理規(guī)范
- 2024-2025學(xué)年山西省三晉名校高三上學(xué)期10月考試物理試卷(解析版)
- 藥品流通監(jiān)管培訓(xùn)
- JD37-009-2024 山東省存量更新片區(qū)城市設(shè)計(jì)編制技術(shù)導(dǎo)則
- 《廣西高標(biāo)準(zhǔn)農(nóng)田耕地質(zhì)量評(píng)價(jià)工作 指導(dǎo)手冊(cè)》
- 幼兒園藝術(shù)領(lǐng)域活動(dòng)設(shè)計(jì)
- 人教版四年級(jí)下冊(cè)數(shù)學(xué)全冊(cè)教案含反思
- 北京市海淀區(qū)重點(diǎn)中學(xué)2025屆高考數(shù)學(xué)押題試卷含解析
- 霧化吸入技術(shù)教學(xué)課件
- 2024EPC施工總包合同范本
- 上海市寶山區(qū)2024-2025學(xué)年高三一模英語(yǔ)試卷(含答案)
- 2024年神農(nóng)架林區(qū)林投集團(tuán)招聘工作人員6名管理單位遴選500模擬題附帶答案詳解
- 專利代理師資格考試題及答案(含真題、必會(huì)題)
評(píng)論
0/150
提交評(píng)論