2021.5.8 Android连接服务器数据库
一、今日学习内容
1.服务器数据库和本地数据库的区别
2.什么是tomcat,它的作用是什么?
3.什么是服务?
4.客户端请求服务器数据库的时候发生了什么?怎么请求到数据的?
下面简单的说说上面四个问题
-
1.服务器数据库和本地数据库没有区别,只不过请求的时候需要填入的ip地址不同,本地的ip地址一般使用localhost即可,服务器ip是公网ip。开发时,我们一般先在本地开发,也就是在本地数据库做测试,等开发完成以后,再把本地数据库移动到服务器数据库。访问时只需要把ip地址更换一下就可以了。
-
2.tomcat的作用就是监听8080端口,你安装在本地上,他就监听你本地电脑的8080端口,我们在浏览器里面输入网址如:www.baidu.com,一般默认访问的是80端口,由于是默认所以可以省略80不写。但是我们访问8080端口时,tomcat就监听到了,它会根据你请求的服务,将你的请求转发给你请求的服务进行处理。 我们需要知道,客户端程序和服务器端程序代码是分开的。服务器端程序负责处理如何根据用户请求的参数,把相应的数据返回给客户端。 所以我们应该写两个项目,一个是客户端,一个是服务器端,其中服务器端是一个Web项目。可以使用myeclipse进行编写。
-
3.什么是服务? 服务可以理解为我们写的处理某个请求的接口,比如我们现在想要登录,Web端的项目名叫做WebService,在这个项目里面我们写一个Login接口,专门负责处理用户的登录请求。那么客户端端如何访问该请求服务呢?
-
4.首先,客户端应该知道数据库所在服务器的ip地址,如果是本地就用localhost 知道了ip地址我们只是能够连接到服务器,并不能连接到数据库,当我们Web端项目写好了以后,运行在tomcat这个容器中,上面已经说过,tomcat监听8080端口,所以我们访问服务器时,指定端口号,比如
localhost:8080,那么他就会访问到tomcat中,仅仅访问到tomcat还不够,更进一步,再指定我们访问的Web端项目的名称(web端项目是运行在tomcat中的),也就localhost:8080/WebService,这样就能访问到服务器端处理数据库的项目,此时我们想要登录,那就更进一步,指定localhost:8080/WebService/Login,这样就能访问到登录接口。我们知道登录的时候需要用户名和密码,用户名和密码又是如何传递到服务器端的呢?有两种常用的传递方式 get/post get方式,直接拼接在url里面即可,如下:
localhost:8080/WebService/Login?UserName="test"&Password="123456" ```
这样就指定了登录名是test和密码123456。
Login接口收到这个请求以后,首先要把账号和密码取出来,然后用jdbc连接数据库的方法,指定数据库的名称,并指定用户数据所在的表,然后执行select方法,查询有无该用户,如果有就返回一个值,没有返回另外一个值,客户端根据返回的值,来决定登录成功还是失败。
下面说说服务器客户端都需要用到什么技术。
- 1.客户端如何发起请求? Android端发起请求,我们直接用第三方库Okhttp,Volley等就可以,如何使用看我其他的博客。
- 2.客户端发出请求以后,服务器端怎么进行处理? 要想处理客户端发来的请求,我们需要创建一个web项目,建议使用新手建议使用Struts框架或者Servlet,这个也必须要学习,否则我们无法处理客户端发出的请求。只要登录注册成功以后,请求其他数据也是同样的道理,返回一条数据如何做?返回多条数据怎么做,都是要解决的问题。
现在我们已经知道,客户端向服务器8080端口发出请求,服务器端tomcat捕获到我们的请求,根据我们想要访问的项目名称,把该请求交给该项目处理,进一步检测,该请求想要访问该项目中的哪一个服务,检测到是Login服务,该项目把请求交给Login服务进行处理,拿到账号和密码去数据库中进行查找,所以Login方法里面需要连接数据库,用jdbc连接数据库的步骤,大家应该都知道了。根据查询结果返回相应的值。
下面附上要用到的软件的来百度云链接
- myeclipse 开发软件(主要用来开发web项目)
链接:https://pan.baidu.com/s/1lCx37vI-FE2Y8LzSqr7Z5Q 提取码:ts3b - 客户端就是用Android studio没什么可说的。
- 必会用到数据库连接的jdbc,这里上传mysql的jdbc
链接:https://pan.baidu.com/s/1CuN2UD0aS6WnGs3xWQMw4A 提取码:h6ft - tomcat可以去网上下载就可以。