Android基础开发-练习八@侯敬儒_第1页
Android基础开发-练习八@侯敬儒_第2页
Android基础开发-练习八@侯敬儒_第3页
Android基础开发-练习八@侯敬儒_第4页
Android基础开发-练习八@侯敬儒_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

事在人为11/26实验8SQLite数据库与ContentProvider实验目的:掌握SQLite数据库的建立和操作方法。理解ContentProvider的用途和原理。掌握ContentProvider的创建和使用方法。实验内容:使用Android代码的方式建立SQLite数据库,数据库名称为test.db,并建立staff数据表,表内的属性值如下表所示:属性数据类型说明_idinteger主键nametext姓名sextext性别departmenttext所在部门salaryfloat工资在完成建立数据库的工作后,编程实现基本的数据库操作功能,包括数据的添加、删除和更新,并尝试将下表中的数据添加到staff表中。_idnamesexdepartmentsalary1Tommale计算机学院54002Einsteinmale计算机学院48003Lilyfemale数理学院50004Warnermale5Napoleonmale实验截图:如图1、2、3、4、5、6、7、8、9、10所示:程序主界面:图1添加一条数据:图2查询所有数据:图3查询一条数据:图4修改一条数据:图5查询一条数据:图6删除一条数据:图7查询所有数据:图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="所在部门:"/><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="添加数据"/><Buttonandroid:id="@+id/updateButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="修改数据"/></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="删除数据"/></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="请输入ID号:"/><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="显示相关信息。。。。"/></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+="所在部门:"+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; //构造函数(将上下文对象传入) publicDBAdapter207(Context_context){ context=_context; } /**关闭数据库**/ publicvoidclose(){ if(db!=null){ db.close(); db=null; } } /**打开数据库**/ publicvoidopen()throwsSQLiteException{ dbOpenHelper=newDBOpenHelper(context,DB_NAME,null,DB_VERSION); try{ db=dbOpenHelper.getWritableDatabase(); } catch(SQLiteExceptionex){ db=dbOpenHelper.getReadableDatabase(); } } /**插入一条数据**/ 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); } /**查询所有数据**/ 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); } /**查询一条数据**/ 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); } /**将查询到的数据(游标指针)转换成Pepole数组对象**/ 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; } /**删除所有数据**/ publiclongdeleteAllData(){ returndb.delete(DB_TABLE,null,null); } /**删除一条数据**/ publiclongdeleteOneData(longid){ returndb.delete(DB_TABLE,KEY_ID+"="+id,null); } /**更新一条数据**/ 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); } /**静态Helper类,用于建立、更新和打开数据库*/ 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; //实例化控件对象 privateEditTextnameText; privateEditTextsexText; privateEditTextdepartmentText; privateEditTextsalaryText; privateEditTextidText; privateTextViewdisplayTextView; @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_activity207); /* *获得各个控件对象 */ 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);//设置按钮对象链接对应的监听器对象addButton.setOnClickListener(addButtonListener);updateButton.setOnClickListener(updateButtonListener);selectAllButton.setOnClickListener(selectAllButtonListener);deleteAllButton.setOnClickListener(deleteButtonListener);//deleteAllButton.setOnClickListener(deleteAllButtonListener);selectButton.setOnClickListener(selectButtonListener);dbAdepter=newDBAdapter207(this);dbAdepter.open(); } /* *添加按钮监听器 */ 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("添加过程错误!"); Toast.makeText(MainActivity207.this,"添加过程错误",1).show(); }else{ displayTextView.setText("成功添加数据,ID:"+String.valueOf(colunm)); Toast.makeText(MainActivity207.this,"恭喜您,添加数据成功!",1).show(); } } };/**查询(所有)按钮监听器*/OnClickListenerselectAllButtonListener=newOnClickListener(){ @Override publicvoidonClick(Viewv){ People207[]peoples=dbAdepter.queryAllData(); if(peoples==null){ displayTextView.setText("Sorry!数据库中没有数据"); return; } displayTextView.setText("数据库:"); Stringmsg=""; for(inti=0;i<peoples.length;i++){ msg+=peoples[i].toString()+"\n"; } displayTextView.setText(msg); }};/**删除(所有)按钮监听器*/OnClickListenerdeleteAllButtonListener=newOnClickListener(){ @Override publicvoidonClick(Viewv){ dbAdepter.deleteAllData(); Stringmsg="数据全部删除"; displayTextView.setText(msg); Toast.makeText(MainActivity207.this,"删除成功!",1).show(); } };/**查询(一条数据)按钮监听器*/OnClickListenerselectButtonListener=newOnClickListener(){ @Override publicvoidonClick(Viewv){ intid=Integer.parseInt(idText.getText().toString()); People207[]peoples=dbAdepter.queryOneData(id); if(peoples==null){ displayTextView.setText("数据库中没有ID为"+String.valueOf(id)+"的数据"); retur

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论