Android基礎(chǔ)開(kāi)發(fā)-練習(xí)八@侯敬儒_第1頁(yè)
Android基礎(chǔ)開(kāi)發(fā)-練習(xí)八@侯敬儒_第2頁(yè)
Android基礎(chǔ)開(kāi)發(fā)-練習(xí)八@侯敬儒_第3頁(yè)
Android基礎(chǔ)開(kāi)發(fā)-練習(xí)八@侯敬儒_第4頁(yè)
Android基礎(chǔ)開(kāi)發(fā)-練習(xí)八@侯敬儒_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論