数据库的相关操作.ppt_第1页
数据库的相关操作.ppt_第2页
数据库的相关操作.ppt_第3页
数据库的相关操作.ppt_第4页
数据库的相关操作.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

数据库的相关操作:Bean:publicstaticfinalStringUNAME=“uname”;privateStringuname;Bean中静态、唯一的常量必须要赋值。(而且一般要大写)(私有的一般要小写)SQL语句加双引号”sql”,而引号里面的语句原样输出。createtabletabname(unamevarchar)全用双引号即可。但是INSERT语句中:insertintotabname(asdf,asfd,sfd)values(asdf,sdf,asdf);Vlaues()里面的内容要有单引号。即在原来双引号的基础上再加上单引号.,那些个不变的东西全部放在双引号里面引起来只是变量不能放在双引号里面,而且还有加上连接符号+db.execSQL(createtable+TABLENAME+(+User._ID+integerprimarykey,+User.UNAME+text,+User.GENDER+text,+User.REGDATE+text,+User.CLASSNMAE+text,+User.DEMO+text,+User.TAG+text+););欢迎使用行知汇元教学管理平台!内网网址:11用户名:个人姓的全拼+名的首字母例:张小茹用户名:zhangxr初始密码:123提交问题邮箱是:xiaozhang613,出错了:Causedby:android.database.sqlite.SQLiteException:neartableUserTable:syntaxerror:createtableUserTable(_idINTEGERPRIMARYKEY,unametext,classnametext,gendertext,regdatetext,demotext,tagtext,)(1)刚开始是表名写成了table,而这个单词是个保留字,不能用来被命名,须改成别的名字。(2)是createtable和表名UserTable之间没有写空格,所以报错了。(3)是(,)最后多写了一个逗号,,这是一个多余的东西。删除数据库的时候出错了:publicBooleandelete(String_id)intdata=database.delete(TABLENAME,_id=?,newString_id);这是newString里面的数据传的不是_id,而是传成了user.get_id().所以就删除不了数据。,publicclassDBextendsSQLiteOpenHelperDBdb=newDB(getApplicationContext();或DBdb=newDB(this);或DBdb=newDB(context);Publicvoidinsert(SQLiteBeanbean)SQLiteDatabasedatabase=db.getWritbaleDatabase();Stringsql=“insertinto”+TABLENAME(表名)+“”+”(”+SQLiteBean.CLASSNAME+SQLiteBean.TAG+”)”+”+values”(”+“+“)”;注意:单引号()必须把双引号(“”)一刀劈开,即(“()”)(“()”),每次只要半个(“”)。例子:publicvoidinsert(Useruser)Stringsqll=insertinto+TABLENAME+(+User.UNAME+,+User.CLASSNMAE+,+User.GENDER+,+User.REGDATE+,+User.DEMO+,+User.TAG+)values(+user.getUname()+,+user.getClassname()+,+user.getGender()+,+user.getRegDate()+,+user.getDemo()+,+user.getTag()+);database.execSQL(sqll);,实例化内部类:外部类.内部类对象=new外部类().new内部类();例如:UserProvider.DBdb=newUserProvider(this).newDB(this);SQLiteDatabased=SQLiteDatabase.create(null);db.onCreate(d);/这个onCreate()方法是内部类DB的方法。,查看数据库内的表:实例:publicListfindAllUser()Listlist=newArrayList();Cursorcursor=database.query(TABLENAME,null,null,null,null,null,null);cursor.moveToFirst();if(cursor.getPosition()!=cursor.getCount()-1)Useruser=newUser();user.set_id(cursor.getString(0);user.setUname(cursor.getString(1);user.setClassname(cursor.getString(2);user.setGender(cursor.getString(3);user.setRegDate(cursor.getString(4);user.setDemo(cursor.getString(5);user.setTag(cursor.getString(6);list.add(user);cursor.moveToNext();cursor.close();database.close();returnlist;,增加INSERT表的操作:总结:Cursorcursor;cursor相当于一个结果集,要取出数据库中表里的结果,Cursor.getString(int第i列);先从cursor中取出数据,再用Bean设置User.set列名(cursor.getString(i);i为表中的第i列i是整数。要特别注意Cursor:使用cursor时,一定要先将cursor.moveToFirst();/将游标移到第一行.当再次使用时要cursor.moveToNext();/将游标移到第下一行.使用完毕后要关闭游标和数据库.,publicviewgetView(intposition,ViewconvertView,ViewGroupparent)/LayoutInflater的用法:LayoutInflaterinflater=LayoutInflater.from(当前class.this);LinearLayoutlinlayout=(LinearLayout)Inflater.inflate(R.layout.另一个布局xml,null);ButtonbtnDel=(Button)linlayout.findViewById(R.id.btnDel);btnDel.setOnClickListener(newOnClickListener()publicvoidonClick(ViewV)Providerp=newProvider();处理数据的类(增.删.改.查):p.delete(user.get_id();调用这个类里面的方法.freshData();调用自身Toast.makeText().show;);ButtonbtnUpdate=(Button)linlayout.findViewById(R.id.btnUpdate);,/Intent可以把数据传送到另一个页面去:btnUpdate.setOnClickListener(newOnClickListener()publicvoidonClick(ViewV)Toast.makeText(当前类.this,user.get_id()+”idisshowing”,.).show();Intentintent=newIntent(当前类.this,下一个类.class);intent.putExtras(“_id”,user.get_id();发送方/以key,values形式把数据传送到另一个页面startActivity(intent);/另一个页面接收的是:/Stringid=getIntent().getStringExtra(“_id”);接收方);,TextViewtxtDemo=(TextView)linlayout.findViewById(R.id.txtDemo);txtDemo.setText(user.getDemo();returnlinlayout;(1)/getView()方法结束.publicintgetCount()(2)/getCount方法Listlist=newArrayList();returnlist=null?null:list.size();publicintgetViewTypeCount()(3)/getViewTypeCount()方法return1;/getView()/getCount()/getViewTypeCount()这三个方法必须实现,List的用法:Listlist=newArraylist();/范型为user型的publiclistfindAllUser()/返回LIST列表list=provider(类名).findAllUser(方法);/得到LIST列表finalUseruser=list.get(Positive);/得到用户的所有信息.returnlist=null?0:list.size();/判断用户信息是否为空.,当实现implementsOnItemOnClickListener这个接口时:当视图中平行着有好多条数据,点击其中一条数据时,出现一个窗口,用OnItemOnClickListener必须要实现publicvoidonItemClick(AdapterViewarg0,Viewarg1,intarg2,longarg3)Stringid=(String)arg1.getTag();arg1是View是视图,可以获取标签Intentintent=newIntent(当前.this,下一页面.class);intent.putExtra(“id”,id);/以key,values的形式传值iid.startActivity(intent);,(下面的实例展示如何创建一个使用自定义的adapter显示天气数据的ListView。基本的气象数据存储在哈希表中。在最高级别,Key是一个字符串,代表邮政编码。此键(邮政编码)Hashtable的值包含当前的温度,湿度和一个图标,表示天气状况。这些都是字符串,以及。ListView和适配器一起工作,以显示各种邮政编码这些天气条件的清单。为了使这样的天气数据,列表单元格渲染器使用TableLayout显示这些天气条件-每个单元由一个2行表:第一行有2个单元-图标和温度,第二行有1单元-湿度。)这个实例太过于复杂不适合初学者,我这里使用高焕堂编写的应用框架原理与程序开发中的例子显示如何使用ListView。本文来自CSDN博客,转载请标明出处:file:/H:/Android网页(Spinner及ListView)/Android学习笔记%20-%20如何在程序中使用%20ListView%20-%20月光宝盒%20-%20CSDN博客.mht,第一种方法:adapter=newArrayAdapter(this,android.R.layout.simple_spinner_item,str);adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);sp.setAdapter(adapter);默认的:intj=str.length;for(inti=0;ij;i+)if(stri.equals(456)sp.setSelection(i);,第二种方法:sp.setAdapter(newSpinnerAdapter()/Override/publicvoidunregisterDataSetObserver(DataSetObserverobserver)/TODOAuto-generatedmethodstub/Override/publicvoidregisterDataSetObserver(DataSetObserverobserver)/TODOAuto-generatedmethodstub/Override/publicbooleanisEmpty()/TODOAuto-generatedmethodstub/returnfalse;/Override/publicbooleanhasStableIds()/TODOAuto-generatedmethodstub/returnfalse;/Override/publicintgetViewTypeCount()/TODOAuto-generatedmethodstub/return0;/Override/publicViewgetView(intposition,ViewconvertView,ViewGroupparent)/TextViewtv=newTextView(MainActivity.this);/tv.setText(strposition);/returntv;/Override/publicintgetItemViewType(intposition)/TODOAuto-generatedmethodstub/return0;/Override/publiclonggetItemId(intposition)/TODOAuto-generatedmethodstub/return0;/Ove

温馨提示

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

评论

0/150

提交评论