Android实现与Apache Tomcat服务器数据交互(MySql数据库)
需求:android客户端连接服务器端mysql数据库中的内容
环境部署
服务器:apache-tomcat-8.5.9
语言版本:java 1.8.0_101
编译环境:eclipse
android studio
调用jar包:httpclient-4.2.5,httpcore-4.2.4 //httpclient父类
mysql-connector-java-5.1.40-bin //用于连接mysql数据库
思路:涉及到服务器端mysql数据库安装、web应用部分开发和android客户端开发三个部分
步骤:
1、mysql数据库安装
a、先安装mysql-installer-community-5.7.17.0,其中在setup type上选择“server only”,然后记住数据库端口号和账号(例如:root)密码(例如:123456),如下图:
b、安装成功验证。命令行窗口输入密码,然后输入显示所有数据库命令:show databases; 一定要有分号,并按回车。
c、navicatformysql下载及使用。注册,然后连接数据库,输入密码后,能够看到已存在的数据库,可以在其中进行相关数据库和数据表的创建操作。
(具体以参考资料中的内容为主)
2、web应用部分开发
a、新建servlet,并且配置好web.xml中的相应信息(在webcontent下的web-inf文件夹下加入web.xml文件来连接servlet与jsp前端),此外还需在libs中添加mysql-connector-java-5.1.37-bin.jar文件,代码如下:
package com.servlet; import java.io.ioexception; import javax.servlet.servletexception; import javax.servlet.annotation.webservlet; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import java.io.printwriter; import java.sql.connection; import java.sql.resultset; import java.sql.statement; import com.dbtool.dbutil; @webservlet("/servlet") public class login extends httpservlet { private static final long serialversionuid = l; /** * @see httpservlet#httpservlet() */ public login() { super(); // todo auto-generated constructor stub } /** * @see httpservlet#doget(httpservletrequest request, httpservletresponse response) */ protected void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { // todo auto-generated method stub response.getwriter().append("served at: ").append(request.getcontextpath()); } /** * @see httpservlet#dopost(httpservletrequest request, httpservletresponse response) */ protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { string id = request.getparameter("id"); string pw= request.getparameter("pw"); boolean type=false; response.setcontenttype("text/html; charset=utf-8"); printwriter out = response.getwriter(); try { connection con=dbutil.getconnection(); statement stmt=con.createstatement(); //mysql数据库中的数据表,表名叫:demotable ,需要自己预先在数据库中进行创建,包含相应的字段和记录。 string sql="select * from mysql.demotable where uid="+id+" and pwd="+pw; resultset rs=stmt.executequery(sql); while(rs.next()) { type=true; } } catch(exception ex) { ex.printstacktrace(); } finally { dbutil.close(); out.print(type); out.flush(); out.close(); } } }
web.xml内容如下:
<?xml version="1.0" encoding="utf-8"?> <web-app id="webapp_id" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>web</display-name> <servlet> <display-name>login</display-name> <servlet-name>login</servlet-name> <servlet-class>com.servlet.login</servlet-class> </servlet> <servlet-mapping> <servlet-name>login</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
b、前端界面设计(testpage.jsp)如下:
<%@ page language="java" contenttype="text/html; charset=utf-8" pageencoding="utf-8"%> <!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>insert title here</title> </head> <body> <form id="from" action="login" method="post"> <table> <tr><td>用户名</td><td><input type="text" name="id"></td></tr> <tr><td>密码</td><td><input type="password" name="pw"></td></tr> <tr><td colspan="2" align="center"><input type="submit" value="登陆"/></td></tr> </table> </form> </body> </html>
c、在java resources下的src文件夹中新建com.dbtool包,用作数据池来连接数据库,在包中建立dbutil类实现功能,代码如下:
package com.dbtool; import java.sql.*; public class dbutil { //其中mysql是数据库名称,在mysql57版本的数据库中已经预先新建完成;3306是mysql数据库的端口号。 private static string url="jdbc:mysql://localhost:3306/mysql"; //com.mysql.jdbc.driver是mysql-connector-java-5.1.40中的驱动包路径 private static string driverclass="com.mysql.jdbc.driver"; //mysql的账号和密码是在安装mysql中进行设置的,这里拿来用即可。 private static string username="root"; private static string password="123456"; private static connection conn; //装载驱动 static{ try{ class.forname(driverclass); } catch(classnotfoundexception e){ e.printstacktrace(); } } //获取数据库连接 public static connection getconnection(){ try{ conn=drivermanager.getconnection(url,username,password); } catch(sqlexception e){ e.printstacktrace(); } return conn; } //建立数据库连接 public static void main(string[] args){ connection conn=dbutil.getconnection(); if(conn!=null){ system.out.println("数据库连接成功"); } else{ system.out.println("数据库连接失败"); } } //关闭数据库连接 public static void close(){ if(conn!=null){ try{ conn.close(); } catch(sqlexception e){ e.printstacktrace(); } } } }
d、运行服务器,测试是否成功搭建。
3、android部分开发
仅附上核心部分代码,如下:
public void sendbyhttpclient(final string id, final string pw){ new thread(new runnable() { @override public void run() { try { httpclient httpclient=new defaulthttpclient(); httppost httppost=new httppost("http://web应用部署服务器上的ip地址:/httpclientdemo/login");//服务器地址,指向servlet list<namevaluepair> params=new arraylist<namevaluepair>();//将id和pw装入list params.add(new basicnamevaluepair("id",id)); params.add(new basicnamevaluepair("pw",pw)); final urlencodedformentity entity=new urlencodedformentity(params,"utf-8");//以utf-8格式发送 httppost.setentity(entity); httpresponse httpresponse= httpclient.execute(httppost); if(httpresponse.getstatusline().getstatuscode()==200)//在200毫秒之内接收到返回值 { httpentity entity=httpresponse.getentity(); string response=entityutils.tostring(entity1, "utf-8");//以utf-8格式解析 message message=new message(); message.what=user_login; message.obj=response; handler.sendmessage(message);使用message传递消息给线程 } } catch (exception e) { e.printstacktrace(); } } }).start(); }
最终,测试结果图,如下:
参考资料:
http://blog.csdn.net/qq_14923661/article/details/50461696 android平台实现与apache tomcat服务器数据交互(mysql数据库)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
Android实现与Apache Tomcat服务器数据交互(MySql数据库)
-
python tkinter与Mysql数据库交互实现账号登陆
-
利用简易Tomcat服务器结合MysqL实现Android手机注册与登录(客户_MySQL
-
利用简易Tomcat服务器结合MysqL实现Android手机注册与登录(客户_MySQL
-
Android通过Tomcat用JSP做服务器实现用户登录(MySQL数据库)
-
通过PDO扩展与MySQL数据库交互 实现增删改查实现和数据库事务
-
python tkinter与Mysql数据库交互实现账号登陆
-
通过PDO扩展与MySQL数据库交互 实现增删改查实现和数据库事务