额。。花了大概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、然后就是Connection
conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/diancai_db","root","andylin");在这里的那个3306也烦恼了下,因为我不记得安装mysql时的步骤了,其中一个的一个步骤就是指定mysql的端口,它默认的是3306。不过我将3306换成了我自己的tomcat端口号也能访问。具体道理我也不知。3、然后就是在tomcat配置那个地方也花了不少时间,反正我觉得tomcat是很容易整错的。什么classpath啊那些。整得很麻烦。还有什么建立自己的web应用那些。不难但是很繁杂。好好拿书看看就行了。4、就是eclipse中写查询用户名和密码的url那里也有点不懂。http://169.254.89.111/diancai_server/LoginServlet?username=***&password=***。这个url最初也不知道怎么写。。穿过get方式将参数传过去,在服务器端通过request得到username和password,然后进行查询比对。额。。这些都是不停的查核问才会的。反正就是没人带带你,光自己学还是多费劲的,因为什么基础都没有。5、然后就是tomcat在每次修改了web应用后都要重启一下tomcat服务器,这点比较烦。部署自己的应用,写web.xml文件时也需要看看书,那几个标记servlet和servlet-name和servlet-class和servlet-mapping和url-pattern都需要懂得它们的含义。6、有一点比较方便的就是,在myeclipse上开发web
project后,当部署到tomcat上时,直接将myeclipse中的工程里的WEB-INF拷贝到tomcat中的webapps文件里的你的应用下就OK了。7、直接使用jdbc访问数据库,需要在工程中导入mysql-java.jar的驱动包。通过build
path ->add external archives导入。8、在eclipse
IDE中开发android应用,写好登录程序后,运行起来,访问数据库。因为android里封装了httpClient类,所以比较方便的就能实现Http协定访问数据库。额。。另外的都没什么了。剩下的只是自己去努力了。