欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android实现与Apache Tomcat服务器数据交互(MySql数据库)

程序员文章站 2023-11-13 17:08:04
需求:android客户端连接服务器端mysql数据库中的内容 环境部署 服务器:apache-tomcat-8.5.9 语言版本:java 1.8.0_101 编...

需求: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),如下图:

Android实现与Apache Tomcat服务器数据交互(MySql数据库)

Android实现与Apache Tomcat服务器数据交互(MySql数据库)

b、安装成功验证。命令行窗口输入密码,然后输入显示所有数据库命令:show databases; 一定要有分号,并按回车。

Android实现与Apache Tomcat服务器数据交互(MySql数据库)

Android实现与Apache Tomcat服务器数据交互(MySql数据库)

c、navicatformysql下载及使用。注册,然后连接数据库,输入密码后,能够看到已存在的数据库,可以在其中进行相关数据库和数据表的创建操作。

Android实现与Apache Tomcat服务器数据交互(MySql数据库)

Android实现与Apache Tomcat服务器数据交互(MySql数据库)

(具体以参考资料中的内容为主)

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、运行服务器,测试是否成功搭建。

Android实现与Apache Tomcat服务器数据交互(MySql数据库)

Android实现与Apache Tomcat服务器数据交互(MySql数据库)

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(); 
   } 

最终,测试结果图,如下:

Android实现与Apache Tomcat服务器数据交互(MySql数据库)

参考资料:

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数据库)

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