需求: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内容如下:

web

Login

Login

com.Servlet.Login

Login

/Login

index.html

index.jsp

b、前端界面设计(TestPage.jsp)如下:

Insert title here

用户名
密码

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 params=new ArrayList();//将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();

}

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

参考资料:

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

tomcat apache mysql_Android实现与Apache Tomcat服务器数据交互(MySql数据库)相关推荐

  1. 4g的服务器mysql配置文件,服务器物理内存16G mysql数据库my.cnf配置及参数说明

    搜索热词 <服务器物理内存16G MysqL数据库my.cnf配置及参数说明>要点: 本文介绍了服务器物理内存16G MysqL数据库my.cnf配置及参数说明,希望对您有用.如果有疑问, ...

  2. MySQL兼容服务器_服务器不支持 MySql 数据库的解决方法

    php.ini文件没有参数没有配置正确 解决方法: (1) 打开php.ini文件,找到: extension_dir = "./" 将其改为: extension_dir = & ...

  3. 如何在两个服务器之间迁移MySQL数据库

    英文原作者:Etel Sverdlov   转载&翻译来源:https://www.digitalocean.com/community/tutorials/how-to-migrate-a- ...

  4. 简单三步操作实现任意用户连接云服务器中的MYSQL数据库

    前言-- 在编写项目的时候习惯于把mysql数据库,放在云服务器上,这样每个开发人员就都能连接到同一个服务器上的mysql数据库,实现数据的互通.   本文实现任意用户连接至阿里云服务器ECS(Ubu ...

  5. navicat mysql 百度云_转载:用navicat连接百度云服务器上的mysql数据库

    原文连接:http://blog.sciencenet.cn/home.php?mod=space&uid=853805&do=blog&quickforward=1& ...

  6. mysql服务器修改ip,mysql数据库修改服务器ip

    mysql数据库修改服务器ip 内容精选 换一换 云数据库RDS服务支持开启公网访问功能,通过弹性公网IP进行访问.您也可通过弹性云服务器的内网访问云数据库RDS.准备弹性云服务器或可通过公网访问云数 ...

  7. 通过亚马逊云新用户入门学习计划快速上手云上无服务器化的MySQL数据库

    前言 之前一直使用云服务器一直都是使用实例来使用MySQL数据库,因为刚好又能学习Linux的知识,但是通过购买实例服务来充当数据库,不仅资源不能得到充分应用,也会有操作麻烦容易出这样那样的问题. 今 ...

  8. 阿里云 导入 mysql_阿里云服务器怎么导入mysql数据库

    阿里云服务器怎么导入mysql数据库,用阿里云上传数据库. 阿里云ECS云服务器2折起,优惠配置多选1,用户实名认证后可购买,每人限1单,第2单起恢复原价:活动配置升级为第四代云服务器,其中入门级配置 ...

  9. mysql 16g 内存服务器_服务器物理内存16G mysql数据库my.cnf配置及参数说明

    <服务器物理内存16G mysql数据库my.cnf配置及参数说明>要点: 本文介绍了服务器物理内存16G mysql数据库my.cnf配置及参数说明,希望对您有用.如果有疑问,可以联系我 ...

最新文章

  1. JavaScript基本知识
  2. 我的家乡网页设计_Graphic Design|康石石浅谈LOGO设计在作品集中的创作方法
  3. BCH社区意见分歧:引领市场VS迎合市场?
  4. IPython基础使用_Round2
  5. map赋值给另一个map_Java学习(十六): Lambda操作Map
  6. 2010年11月23日学习内容总结
  7. 鸿蒙智慧电视,华为的鸿蒙电视与智能电视有什么区别
  8. python输出数字和字符串_(一)1-5Python数字和字符串
  9. 19行代码AC——习题3-4 周期串(UVa-455)_解题报告
  10. 如何在 ASP.Net Core 使用 分布式缓存
  11. 深度探索QT窗口系统——几何篇
  12. 在64位的 CentOS 上只安装64位的软件包
  13. 想对可以使用的adblock插件感谢!!
  14. JAVA中三个点“...”是什么意思
  15. Excel定义函数自动填充
  16. 海康威视摄像头的多通道rtsp地址格式
  17. 非安装版 Python 安装 PIP
  18. 大学十年(一个程序员的路程)
  19. 【p093】细胞分裂
  20. 第三十七章 立方体贴图总结

热门文章

  1. 搭建基础架构-Order
  2. SpringMVC的数据响应-页面跳转-返回ModelAndView形式1(应用)
  3. 继承thread类创建线程
  4. MySQL常用存储引擎之CSV
  5. 设计模式:装饰模式(Decorator)
  6. matlab图片拼接变成白的,利用matlab实现对图片的拼接
  7. mybatis-plus根据多个字段排序_Mybatis Plus学习笔记(逻辑删除/动态填充/常用插件)...
  8. qt combox选中消息_Qt+imx6编写的楼宇对讲管理平台
  9. 020303阶段三 I/O复用 select和epoll的文件描述符管理
  10. 210228Linux 条件变量 线程池