Android实现与ApacheTomcat服务器数据交互(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,并且配置好l中的相应信息(在WebContent下的WEB-INF⽂件夹下加⼊l⽂件来连接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
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String ID = Parameter("ID");
String PW= Parameter("PW");
boolean type=false;
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = Writer();
try
{
Connection Connection();
Statement ateStatement();
//mysql数据库中的数据表,表名叫:demotable ,需要⾃⼰预先在数据库中进⾏创建,包含相应的字段和记录。
String sql="select * from mysql.demotable where uid="+ID+" and pwd="+PW;
ResultSet uteQuery(sql);
())
手机mysql安装配置教程{
type=true;
php随机图片源码}
}
catch(Exception ex)
{
ex.printStackTrace();
}
finally
{
DBUtil.Close();
out.print(type);web开发技术分为哪两大类
out.flush();
out.close();
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="java.sun/xml/ns/j2ee" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="java.sun/xml/ns/j2ee java.sun/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" "/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";
//sql.jdbc.Driver是mysql-connector-java-5.1.40中的驱动包路径
private static String driverClass="sql.jdbc.Driver";
//mysql的账号和密码是在安装mysql中进⾏设置的,这⾥拿来⽤即可。
private static String username="root";
private static String password="123456";
private static Connection conn;
//装载驱动
c语言编写安卓应用static{
try{
Class.forName(driverClass);
}
catch(ClassNotFoundException e){
e.printStackTrace();
}
}
//获取数据库连接
public static Connection getConnection(){
try{
Connection(url,username,password);
}
catch(SQLException e){
e.printStackTrace();
}
return conn;
}
//建⽴数据库连接
public static void main(String[] args){
Connection Connection();
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("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= ute(httpPost);
StatusLine().getStatusCode()==200)//在200毫秒之内接收到返回值
{
HttpEntity Entity();
String String(entity1, "utf-8");//以UTF-8格式解析
Message message=new Message();
message.what=USER_LOGIN;
message.obj=response;
handler.sendMessage(message);使⽤Message传递消息给线程
}
laravel依赖注入的四种方式}
catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
最终,测试结果图,如下:
参考资料:
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论