tomcat apache mysql_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内容如下:
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数据库)相关推荐
- 4g的服务器mysql配置文件,服务器物理内存16G mysql数据库my.cnf配置及参数说明
搜索热词 <服务器物理内存16G MysqL数据库my.cnf配置及参数说明>要点: 本文介绍了服务器物理内存16G MysqL数据库my.cnf配置及参数说明,希望对您有用.如果有疑问, ...
- MySQL兼容服务器_服务器不支持 MySql 数据库的解决方法
php.ini文件没有参数没有配置正确 解决方法: (1) 打开php.ini文件,找到: extension_dir = "./" 将其改为: extension_dir = & ...
- 如何在两个服务器之间迁移MySQL数据库
英文原作者:Etel Sverdlov 转载&翻译来源:https://www.digitalocean.com/community/tutorials/how-to-migrate-a- ...
- 简单三步操作实现任意用户连接云服务器中的MYSQL数据库
前言-- 在编写项目的时候习惯于把mysql数据库,放在云服务器上,这样每个开发人员就都能连接到同一个服务器上的mysql数据库,实现数据的互通. 本文实现任意用户连接至阿里云服务器ECS(Ubu ...
- navicat mysql 百度云_转载:用navicat连接百度云服务器上的mysql数据库
原文连接:http://blog.sciencenet.cn/home.php?mod=space&uid=853805&do=blog&quickforward=1& ...
- mysql服务器修改ip,mysql数据库修改服务器ip
mysql数据库修改服务器ip 内容精选 换一换 云数据库RDS服务支持开启公网访问功能,通过弹性公网IP进行访问.您也可通过弹性云服务器的内网访问云数据库RDS.准备弹性云服务器或可通过公网访问云数 ...
- 通过亚马逊云新用户入门学习计划快速上手云上无服务器化的MySQL数据库
前言 之前一直使用云服务器一直都是使用实例来使用MySQL数据库,因为刚好又能学习Linux的知识,但是通过购买实例服务来充当数据库,不仅资源不能得到充分应用,也会有操作麻烦容易出这样那样的问题. 今 ...
- 阿里云 导入 mysql_阿里云服务器怎么导入mysql数据库
阿里云服务器怎么导入mysql数据库,用阿里云上传数据库. 阿里云ECS云服务器2折起,优惠配置多选1,用户实名认证后可购买,每人限1单,第2单起恢复原价:活动配置升级为第四代云服务器,其中入门级配置 ...
- mysql 16g 内存服务器_服务器物理内存16G mysql数据库my.cnf配置及参数说明
<服务器物理内存16G mysql数据库my.cnf配置及参数说明>要点: 本文介绍了服务器物理内存16G mysql数据库my.cnf配置及参数说明,希望对您有用.如果有疑问,可以联系我 ...
最新文章
- JavaScript基本知识
- 我的家乡网页设计_Graphic Design|康石石浅谈LOGO设计在作品集中的创作方法
- BCH社区意见分歧:引领市场VS迎合市场?
- IPython基础使用_Round2
- map赋值给另一个map_Java学习(十六): Lambda操作Map
- 2010年11月23日学习内容总结
- 鸿蒙智慧电视,华为的鸿蒙电视与智能电视有什么区别
- python输出数字和字符串_(一)1-5Python数字和字符串
- 19行代码AC——习题3-4 周期串(UVa-455)_解题报告
- 如何在 ASP.Net Core 使用 分布式缓存
- 深度探索QT窗口系统——几何篇
- 在64位的 CentOS 上只安装64位的软件包
- 想对可以使用的adblock插件感谢!!
- JAVA中三个点“...”是什么意思
- Excel定义函数自动填充
- 海康威视摄像头的多通道rtsp地址格式
- 非安装版 Python 安装 PIP
- 大学十年(一个程序员的路程)
- 【p093】细胞分裂
- 第三十七章 立方体贴图总结
热门文章
- 搭建基础架构-Order
- SpringMVC的数据响应-页面跳转-返回ModelAndView形式1(应用)
- 继承thread类创建线程
- MySQL常用存储引擎之CSV
- 设计模式:装饰模式(Decorator)
- matlab图片拼接变成白的,利用matlab实现对图片的拼接
- mybatis-plus根据多个字段排序_Mybatis Plus学习笔记(逻辑删除/动态填充/常用插件)...
- qt combox选中消息_Qt+imx6编写的楼宇对讲管理平台
- 020303阶段三 I/O复用 select和epoll的文件描述符管理
- 210228Linux 条件变量 线程池