需求: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=22025&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数据库)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# android和服务器交互
# android与服务器交互
# 安卓与服务器数据交互
# Android连接MySQL数据库详细教程
# Android连接MySQL数据库并进行增删改查操作示例讲解
# Android连接MySQL数据库实现方法详解
# 数据库中
# 参考资料
# 输入密码
# 客户端
# 端口号
# 连接数据库
# 是在
# 涉及到
# 还需
# 命令行
# 并按
# 大家多多
# 如下图
# 来用
# 返回值
# 包中
# 之内
# 器上
# 先安装
# 夹中
相关文章:
如何通过西部数码建站助手快速创建专业网站?
广州美橙建站如何快速搭建多端合一网站?
如何获取上海专业网站定制建站电话?
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
香港服务器部署网站为何提示未备案?
宝塔Windows建站如何避免显示默认IIS页面?
如何配置支付宝与微信支付功能?
建站之星后台密码如何安全设置与找回?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
如何安全更换建站之星模板并保留数据?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
如何通过免费商城建站系统源码自定义网站主题与功能?
建站之星如何保障用户数据免受黑客入侵?
,想在网上投简历,哪几个网站比较好?
如何快速搭建高效香港服务器网站?
企业网站制作公司网页,推荐几家专业的天津网站制作公司?
如何用虚拟主机快速搭建网站?详细步骤解析
岳西云建站教程与模板下载_一站式快速建站系统操作指南
建站之星3.0如何解决常见操作问题?
网站制作报价单模板图片,小松挖机官方网站报价?
如何快速建站并高效导出源代码?
如何通过多用户协作模板快速搭建高效企业网站?
如何在搬瓦工VPS快速搭建网站?
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
C#怎么使用委托和事件 C# delegate与event编程方法
家庭建站与云服务器建站,如何选择更优?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
广东专业制作网站有哪些,广东省能源集团有限公司官网?
简历在线制作网站免费版,如何创建个人简历?
制作网站怎么制作,*游戏网站怎么搭建?
怎么将XML数据可视化 D3.js加载XML
如何快速搭建高效可靠的建站解决方案?
独立制作一个网站多少钱,建立网站需要花多少钱?
如何通过二级域名建站提升品牌影响力?
教程网站设计制作软件,怎么创建自己的一个网站?
如何在IIS7中新建站点?详细步骤解析
如何在香港服务器上快速搭建免备案网站?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
如何通过虚拟机搭建网站?详细步骤解析
如何在景安服务器上快速搭建个人网站?
北京网站制作的公司有哪些,北京白云观官方网站?
c# 在高并发场景下,委托和接口调用的性能对比
建站之星如何通过成品分离优化网站效率?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
高防服务器租用如何选择配置与防御等级?
专业网站建设制作报价,网页设计制作要考什么证?
如何做网站制作流程,*游戏网站怎么搭建?
临沂网站制作企业,临沂第三中学官方网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。