关于android真机访问本地电脑服务器以及访问数据库的那点事

时间:2021-05-17 18:11:07

因为项目需要最近几天在捣鼓android访问服务器以及服务器连接本地数据库相关的问题,没什么书籍可以参考,一路搞下来也是磕磕绊绊,好在经过一番努力最后还是成功地实现了功能,这里就把我踩过的一些坑列举出来。

前期准备:

我是用sqlserver作为数据库的,首先要启用sqlserver的身份验证登陆,设置账号密码,然后关于如何开启以及开启相关配置服务(如TCP/IP),网上的文章很多我就不一一赘述了。我在数据库中建了一张用户信息表,然后数据库的准备工作就这样完成了。接下来我下载了tomcat作为服务器,并把它添加到j2ee的eclipse中。

正式步骤:

然后就是正式步骤了,我在eclipse新建了一个 Dynamic web project ,next到最后要记得勾选上 创建web.xml这一项。因为要连接到数据库所以我引入了sqljdbc4这个包,我把它复制到lib文件下并右键项目----属性---java build path 中添加对它的引用。然后我在src目录下了新建了连接工厂类,主要是一些连接数据库的基本操作,说到这里就得提到连接数据库的一个辅助文件,就是dbconfig.properties,在src目录下创建了这样一个文件并且里面描叙了连接数据库的基本信息,在连接工厂类对其进行操作就能顺利连上数据库了。

dbconfig.properties内容如下:

driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
dburl=jdbc:sqlserver://localhost:1433;DatabaseName=gwedu //gwedu是我的数据库名
user=sa //sa是身份验证登陆数据库的账号
password=654321 //密码

接下来是服务器文件的编写,我在src目录下创建了一个继承于HttpServlet的class类,重写它的一些方法,doget dopost都可以,在这些方法里第一步就是连接数据库(因为我只是为了实现这个功能因此并没有去搞相关的设计模式,所以代码利用率不是很高)然后就是对请求的数据进行各种操作,说到这里不得不提到,为了方便对数据库的表在进行操作,我在项目了新建了一个对应的student表并封装了一些对其增删查改的操作,我的student类的包名是com.dao,请注意,请注意,你的移动客户端如果也有student这个类,那么一定要保证包名是一样的!!!回来,服务器文件编写好后,我们还要在web.xml文件增加它的声明和映射。最后启动tomcat并把项目部署上去,至此服务器就搞定了。

web.xml文件部分内容:

<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/loginServlet</url-pattern>

最后就是移动客户端代码的编写,这个不是本文重点就不详细展开了,除了上文提到的相同实体类包名要一致外,客户端第二个难点就是ip的确定,我们知道在android虚拟机*问本地电脑服务器的IP是10.0.2.2 但是真机不是,我的手机连了电脑的wifi,如果你想访问到电脑上的服务器,你可以在手机wifi选项中查看wifi的ip地址,我的是192.168.139.2,那么电脑的ip就是192.168.139.1 在客户端代码中将ip设置为这个,成功访问。


以上,便是这篇文章的全部内容。