优质文档androidsearchmysql范例范文模板 13页.docx
《优质文档androidsearchmysql范例范文模板 13页.docx》由会员分享,可在线阅读,更多相关《优质文档androidsearchmysql范例范文模板 13页.docx(11页珍藏版)》请在冰豆网上搜索。
优质文档androidsearchmysql范例范文模板13页
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!
==本文为word格式,下载后可方便编辑和修改!
==
androidsearchmysql范例
篇一:
android应用登录模块访问mysql数据库小记
android应用登录模块访问mysql数据库小记
额。
。
花了大概3个星期,终于把android应用登录模块访问mysql数据库做出来了。
现在回头一看,其实都蛮简单的。
但是当初靠我一个的力量去实现这个功能的确也有难度。
反正路走过来了,花的时间和力气没有白费。
我将遇到的困难小结一下吧。
怎么开始说呢?
有点乱,因为我是在做一个点菜系统的登录模块,所以我就只针对我的应用来说吧。
由于我们的这个团队(大学里的团队,呵呵。
。
有时间就做没时间就放那种团队)不像上班那样有鸭梨的团队,大家都比较懒散,有时间就做做,老师那边也没给鸭梨,呵呵,可能出于各种原因吧。
不过我是想学东西那种,所以就下来花的时间比较多。
就拿这个登录模块来说,最开始,我们那个团队副负责人说,不用做登录,或者做登录就做“单机”的,所谓他指的单机就是访问android内嵌的SQLite数据库,这样的话,就很简单了,但是实际应用中这样根本就没有意义也没有难度。
谁不会做?
做出来了,谁会要求是这样的登录原理?
呵呵。
。
所以,我就自己打算做访问后台数据库,最后选了mysql数据库,由于之前对这方面的知识是零,所以查阅了不少资料。
java方面的servlet和jsp都看了。
jsp看了一本书,servlet的也看了一本书,然后查了不少网上资源。
总之对服务器方面的原理还是掌握了不少。
JSP的本质就是Servlet,Servlet的本质又是java程序。
servlet是运行在服务器端的,JSP是做动态网页,不过他们原理都差不多。
最终都是要在编译器那里编译成Java类来运行。
jsp实际上就是一些jsp标记、java程序以及HTML文件的合体。
它以java语言作为其内置的脚本语言,可以说jsp就是java。
知识它是一个很特别的java语言。
它实际上是调用了jsp引擎来生成java文件,再将这个java文件编译成类文件。
这样去执行它,才生成动态网页。
Servlet是运行在JSP服务器端,用来生成Web页面的一中java程序,servlet比jsp要早发展出来。
其功能比传统的CGI(公共网关接口)强大。
在服务器端的Java虚拟机上,每一个来自客户端的请求由servlet中的一个小java线程来响应。
servlet就是运行于服务器端的java程序,用于处理客户端请求和服务器端的应答。
doGet()和doPost()是servlet程序中的两个回调函数,用于处理get和post方式的请求。
response和request两个对象是服务器端的响应和客户端的请求。
用于传递一些参数和打印出网页标记。
基本原理是这样,要更清楚就自己去看资料详细学习吧。
流程:
客户端(最终用户)<------>web服务器(servlet、Jsp程序)<--------->数据库、遗留应用程序、java应用程序、web服务等。
好了,有了以上这些了解后就可以开始做了。
。
我是在myeclipse上开发的点菜服务器端(叫diancai_server)。
在myeclipse上新建一个工程,命好名。
这些都比较简单,不说了。
就说说我遇到的难处吧。
1、首先在加载驱动时,在那里花了比较多的时间。
class.forname("org.gjt.mm.mysql.Driver")或者class.forname("com.mysql.jdbc.Driver")其实这两个驱动(org.gjt.mm.mysql.Driver和com.mysql.jdbc.Driver)都可以的。
只是不同驱动包名吧。
具体的我也说不清,反正都可以的。
2、然后就是Connectionconn=DriverManager.getConnection("jdbc:
mysql:
//localhost:
3306/diancai_db","root","andylin");在这里的那个3306也烦恼了下,因为我不记得安装mysql时的步骤了,其中一个的一个步骤就是指定mysql的端口,它默认的是3306。
不过我将3306换成了我自己的tomcat端口号也能访问。
具体道理我也不知。
3、然后就是在tomcat配置那个地方也花了不少时间,反正我觉得tomcat是很容易整错的。
什么classpath啊那些。
整得很麻烦。
还有什么建立自己的web应用那些。
不难但是很繁杂。
好好拿书看看就行了。
4、就是eclipse中写查询用户名和密码的url那里也有点不懂。
/apk/res/android"android:
id="@+id/grid_view"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
android:
numColumns="auto_fit"
android:
verticalSpacing="10dp"
android:
horizontalSpacing="10dp"
android:
columnWidth="90dp"
android:
stretchMode="columnWidth"
android:
gravity="center"
/>
.java中相关操作代码:
GridViewgridview=(GridView)findViewById(R.id.grid_view);gridview.setAdapter(newImageAdapter(this));
注:
其中ImageAdapter是一个Image适配器,其应该继承BaseAdapter类
publicclassImageAdapterextendsBaseAdapter{
privateContextmContext;
publicImageAdapter(Contextc){
mContext=c;
}
publicintgetCount(){
returnmThumbIds.length;
}
publicObjectgetItem(intposition){
returnnull;
}
publiclonggetItemId(intposition){
return0;
}
publicViewgetView(intposition,ViewconvertView,ViewGroupparent){ImageViewimageView;
if(convertView==null){//ifit'snotrecycled,initializesomeattributes
imageView=newImageView(mContext);
imageView.setLayoutParams(newGridView.LayoutParams(85,
85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8,8,8,8);
}else{
imageView=(ImageView)convertView;
}
imageView.setImageResource(mThumbIds[position]);
returnimageView;
}
}
mThumbIds为一个数组,存放了来自drawable文件夹下的图片数据
7:
ImageButton图片按钮
.Xml配置:
id="@+id/imagebutton"
android:
src="@drawable/play"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"/>
8:
ImageSwitcher、Gallery联合显示图片
.Xml配置:
android:
id="@+id/switcher"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
android:
layout_alignParentTop="true"
android:
layout_alignParentLeft="true"/>
id="@+id/gallery"
android:
background="#55000000"
android:
layout_width="fill_parent"
android:
layout_height="60dp"
android:
layout_alignParentBottom="true"
android:
layout_alignParentLeft="true"
android:
gravity="center_vertical"
android:
spacing="16dp"/>
.java中相关操作代码:
mSwitcher=(ImageSwitcher)findViewById(R.id.switcher);mSwitcher.setFactory(newMyViewFactory());
mSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in));
mSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.slide_out_right));
Galleryg=(Gallery)findViewById(R.id.gallery);
g.setAdapter(newImageAdapter(this));
g.setOnItemSelectedListener(newMyOnItemSelectedListener());
注:
其中MyViewFactory是一个View工厂,其应该实现ViewFactory接口
PublicclassMyViewFactoryimplementsViewFactory
{
publicViewmakeView(){
ImageViewi=newImageView(this);
i.setBackgroundColor(0xFF000000);
i.setScaleType(ImageView.ScaleType.FIT_CENTER);
i.setLayoutParams(new
ImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
returni;
}
}
ImageAdapter是一个Image适配器,其应该继承BaseAdapter类
publicclassImageAdapterextendsBaseAdapter{
publicImageAdapter(Contextc){
mContext=c;
}
publicintgetCount()