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://transcoder.tradaquan.com/from=1017649e/bd_page_type=1/ssid=0/uid=0/pu=usm%401%2Csz%401320_2001%2Cta%40iphone_1_9.2_3_601/baiduid=3B77D44CFFB44688FD602EAD8A663022/w=0_10_/t=iphone/l=3/tc?ref=www_iphone&lid=9684581900815139314&order=2&fm=alhm&h5ad=1&srd=1&dict=32&tj=h5_mobile_2_0_10_title&w_qd=IlPT2AEptyoA_ykzv39b7vOxASxPcYSfDwWEKKelwb6TYslhS_&sec=22021&di=4d89010ccd0ca0f7&bdenc=1&tch=124.133.103.675.1.561&nsrc=IlPT2AEptyoA_yixCFOxXnANedT62v3IEQGG_ytK1DK6mlrte4viZQRAUSD8L7qYZpPPtCPQpxkCwnWh_7YskNYWgK&eqid=86668bed7c43800010000003594fbeac&wd=&clk_info=%7B%22srcid%22%3A%221599%22%2C%22tplname%22%3A%22h5_mobile%22%2C%22t%22%3A1498398423079%2C%22sig%22%3A%2242687%22%2C%22xpath%22%3A%22div-a-h3%22%7DMySQL数据库安装与配置详解

http://blog.csdn.NET/qq_14923661/article/details/50461696  Android平台实现与Apache Tomcat服务器数据交互(MySql数据库)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

时间: 2024-10-29 16:53:11

Android实现与Apache Tomcat服务器数据交互(MySql数据库)的相关文章

Android使用WebView加载HTML数据交互问题

问题描述 Android使用WebView加载HTML数据交互问题 Android开发在使用WebView加载HTML界面时,如何在Android的JAVA类中获取HTML界面的数据?求大神指教,有代码最好 解决方案 andorid和js交互最流行的方式就是用JSBridge,可以上github看看,这个不是简单的一两句代码就能搞定的,需要一个很好的框架支撑. 解决方案二: android中动态加载webview,webview加载html数据,并且隐藏滚动条android 使用webview加

javaweb-如何通过servlet传输数据,tomcat服务器连接到oracle数据库当中。

问题描述 如何通过servlet传输数据,tomcat服务器连接到oracle数据库当中. 如何将服务器连接上本机的oracle数据库上啊?想将数据通过servlet存到数据库当中但是现在就是不会做,有没有视频地址啊?光看代码看不太懂 解决方案 String DBDRIVER="oracle.jdbc.driver.OracleDriver"; DBURL="jdbc:oracle:thin:@localhost:1521:orcl"; 解决方案二: 分开看 1.界

PHP通过SQL语句将数据写入MySQL数据库指定的表

PHP向MySQL数据库中写入数据有三个步骤: 1,PHP和MySQL建立连接关系 2,打开MySQL数据库 3,接受页面数据,PHP录入到指定的表中 1.2两步可直接使用一个数据库链接文件即可:conn.php <?php mysql_connect("localhost","root","");//连接MySQL mysql_select_db("hello");//选择数据库 ?> 当然,前提是已经安装WEB

jsp mysql-jsp页面获得的数据存入mysql数据库之后出现乱码怎么办?

问题描述 jsp页面获得的数据存入mysql数据库之后出现乱码怎么办? 如题,且jsp和mysql的编码都已经设置成utf-8了而且String equipment=request.getParameter(""chance_equipment""); String state=""未指派"";页面获得的中文数据存储不正常,是乱码,我自己定义的state却正常显示 解决方案 在页面编码,数据库编码方式都统一的情况下,还有一个r

oracle数据导入mysql数据库日期格式问题

问题描述 oracle数据导入mysql数据库日期格式问题 从oralce数据库导出日期格式数据为 to_date('13-04-2015 16:40:12', 'dd-mm-yyyy hh24:mi:ss'), 如何把它修改为yyyy-mm-dd的形式存储到mysql数据库中,由于数据比较多,一条条修改太过麻烦,有没有什么好的方法 解决方案 参考import CSV to MySQL and convert date LOAD DATA LOCAL INFILE '/Users/Path/To

.net执行页面提交数据到mysql数据库报错,求指导

问题描述 .net执行页面提交数据到mysql数据库报错,求指导 * 别人那里是不报错的,就我本地会报错,而且我的 代码也全是svn上下载下来的. 解决方案 mysql.data.dll这个直接考一遍,重新引用 解决方案二: 直接考一遍再重新引用没有用的

phpExcel导入excel文件数据到mysql数据库中老是出现页面访问错误是怎么回事

问题描述 phpExcel导入excel文件数据到mysql数据库中老是出现页面访问错误是怎么回事 在$sheet=$phpExcel->getSheet(0);如果不打印这个$sheet信息就会出现页面访问的错误信息 解决方案 要有一个sheet变量来获得getSheet(0)的sheet 解决方案二: $phpExcel->getSheet(0)那是取出第一张Sheet.如果不写,到底读写哪张Sheet? 解决方案三: http://www.jb51.net/article/59844.h

excel数据导入mysql数据库二种方法

下面我们要讲二种excel数据导入mysql教程数据库教程方法了,这二种方法比较简单,也是很方便的,以前我把excel数据导入到mysql数据库都是用php教程程序来实例,现在我们不需要程序,用现有的工具就行了. 方法一,利用phpmyadmin把excel数据导入mysql数据库方法如下 这是excel的,必须是这种样子的. 在phpmyadmin导入文件的格式应该如上图配置.(注意一点,导入的excel表的结构必须与mysql数据表的结构,数据类型等一致就ok了.否则会导入失败的. 方法二,

PHP上传Excel文件导入数据到MySQL数据库示例_php实例

最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里面的数据内容到MySQL数据库的小程序. 要用到的工具: ThinkPHP:轻量级国产PHP开发框架.可在ThinkPHP官网下载. PHPExcel:Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言.可在CodePlex官网下载.. 1.设计MySQL数据库product 创建product数据库 CREATE DATABASE product D