http 访问mysql数据库_04.Http协议之GET请求与访问MySQL数据库
一、GET请求(2步)
1.修改实现客户端与服务器通信的LoginToSever.java文件
注释"public String doPost(String name,String psd) "方法(POST请求方法实体),实现一个"public String doGet(String name,String psd)"(GET方法实体)。
...........
/*doGet方法
* 作用:实现客户端向服务器发送GET请求*/
public String doGet(String name,String psd)
{
HttpClient httpClient = new DefaultHttpClient(); //客户端实例
String urlStr=url+"?username="+name+"&psd="+psd; //给UIL装载请求数据
HttpGet getRequest=new HttpGet(urlStr); //实例化HttpGet,代表Get请求
try {
HttpResponse response = httpClient.execute(getRequest);//发送Get请求,并获取响应
if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
{
HttpEntity entity=response.getEntity(); //获取响应信息实体
InputStream is= entity.getContent(); //h.执行HttpEntity的getContent方法,获取对应的输入流
BufferedReader br = new BufferedReader(new InputStreamReader(is));
//i.读取输入流中的内容,并以字符串的形式返回
String readLine = null;
while((readLine = br.readLine()) != null )
{
result=result+readLine;
}
is.close();
}
else
{
result="error";
}
}
catch (IOException e)
{
System.out.println(e.getMessage());
}
return result;
}
.......................
2.LoginActivity.java:客户端界面UI,在子线程中调用LoginToServer的doGet方法
创建一个子线程
new Thread(new Runnable(){
public void run() {
LoginToServer login = new LoginToServer();
String result=login.doGet(userName.getText().toString(), password.getText().toString());
// String result=login.doPost(userName.getText().toString(), password.getText().toString());
System.out.println(result); //调试:打印服务器返回的结果,测试是否通信成功
Message msg=new Message();
msg.obj=result; //将响应信息保存到obj中
myHandler.sendMessage(msg);
}
}).start();
3.客户端与服务器通信测试
(1)启动Tomcat,打开MyEclipse中的Servlet应用;
(2)在Eclipse中启动客户端app,输入请求数据,测试客户端与服务器是否能通信;
另外,如果客户端与服务器通信成功,Tomcat窗口也会显示客户端传送过来的数据。
二、MySQL数据库使用
1.安装MySQL数据库
MySQL是一个小型关系型数据库管理系统,MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
2.创建服务器MySQL数据库
(1)CMD命令行启动:jiangdongguo>mysql -uroot -p
(2)创建服务器数据库
◆库名ServerDatabase:
mysql> create database ServerDatabase;
mysql> use ServerDatabase;
◆表名users:
mysql> drop table if exists users;
mysql> create table users(
-> user_id int primary key auto_increment,
-> user_name varchar(20) not null default ‘‘,
-> user_psd varchar(20) not null default 0 )charset utf8;
◆向users表中插入数据
mysql> insert into users(user_name,user_psd) values (‘jiang‘,‘111‘);
mysql> insert into users(user_name,user_psd) values (‘dong‘,‘222‘);
mysql> insert into users(user_name,user_psd) values (‘guo‘,‘333‘);
3.关联MySQL数据库到Java Web应用(Servlet项目)
(1)添加数据库jar包到Servlet项目
添加数据库相应的jar包,即连接数据库的驱动(mysql-connecttor-java-3.1.11-bin.java)到Java
Web应用(Servlet项目)下放在WebRoot\WEB-INF\lib文件夹下;
(2)添加一个数据库工具类DBUtil.java到Servlet项目中
◆加载驱动:Class.forName(“com.mysql.jdbc.Driver”);//加载驱动
◆获取数据库连接
String url = “jdbc:mysql://localhost:3306/数据库名";
conn = DriverManager.getConnection(url, “Mysql用户名”,”Mysql密码”);
◆捕获异常处理;
◆添加解析SQL语句,与数据库交互模块 (PrepareStatement、ResultSet)
MyEclipse......src\....\DBUtil.java
package com.jiangdongguo.login;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.ResultSet;
/*访问数据库工具类:获取数据库链接*/
public class DBUtil {
private String dbName = "ServerDatabase"; //数据库名
private String url="jdbc:mysql://localhost:3306/"+dbName;//url
private String user="root"; //MySQL数据库账户名
private String psd="111111"; //账户密码
private PreparedStatement ps; //jdbc编程
private ResultSet result;
//获取数据库链接的方法getConn()
private Connection conn;
public Connection getConn()
{
try {
Class.forName("com.mysql.jdbc.Driver"); //加载数据库驱动
conn=DriverManager.getConnection(url,user,psd); //获取数据库链接,传入参数:数据库名称、账户名、密码
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
//查询数据库业务逻辑
public boolean checkUser(String sql,String[] args)
{
boolean flag=false;
conn=getConn(); //获得数据库链接
try {
ps=(PreparedStatement) conn.prepareStatement(sql);
if(args!=null) //对sql语句每个占位符赋值
{
for(int i=0;i
ps.setString(i+1, args[i]);
result=(ResultSet) ps.executeQuery();
if(result.next())
{
flag=true;
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
}
(3)编写相应的增删查改的SQL语句,执行操作获取结果;
MyEclipse......src\....\LoginServlet.java
package com.jiangdongguo.login;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html"); //设置返回类型为网页形式
PrintWriter out = response.getWriter(); //输出
String name = request.getParameter("username"); //获取请求传入的参数-用户名信息
String psd = request.getParameter("psd"); // -密码
System.out.println("username="+name+"psd="+psd);
//使用MySql数据库
DBUtil dbUtil = new DBUtil();
boolean result=dbUtil.checkUser("select * from users where user_name=? and user_psd=?", new String[]{name,psd});
out.print(result);
// if("j".equals(name)&&"1".equals(psd)) //与服务器数据做对比,并返回响应信息
// {
// out.print(true);
// }
// else
// {
// out.print(false);
// }
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response);
}
}
4.测试
(1)使用Tomcat测试Java web应用
在浏览器输入"http://localhost:8080/login/LoginServlet?username=jiang&psd=111",web网页打印"true/false"信息,也可以查看Tomcat窗口,显示"username=jiang,psd=111",则说明Java
Web连接MySql数据库成功。
(2)客户端测试Java web应用
客户端传输数据分别为"username=jiang psd=111"、"username=dong psd=222"、"username=guo psd=333",若返回true则表示客户端访问服务器的MySql数据库成功,Tomcat窗口也会接收到客户端传输到服务器的数据。
原文:http://blog.csdn.net/u012637501/article/details/45149425
http 访问mysql数据库_04.Http协议之GET请求与访问MySQL数据库相关推荐
- mysql+跨服务器+写入_MySQL中使用FREDATED引擎实现跨数据库服务器、跨实例访问
跨数据库服务器,跨实例访问是比较常见的一种访问方式,在Oracle中可以通过DB LINK的方式来实现.对于MySQL而言,有一个FEDERATED存储引擎与之相对应.同样也是通过创建一个链接方式的形 ...
- mysql用大白话解释_大白话 golang 教程-22-关系型数据库访问
go 原生提供了对数据库的支持,就是 database/sql 包,对关系型的数据库进行了通用的抽象,轻量.面向行的接口,所以使用这个包还需要下载对相应的数据库驱动,比如 mysql 的驱动包 git ...
- mysql config type_请检查DNT.config中的DbType节点数据库类型是否正确例如:SqlServer的访问MYSQL...
请检查DNT.config中的DbType节点数据库类型是否正确,例如:SqlServer的,访问,MYSQL 说明:执行当前的Web请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以 ...
- 安卓访问mysql的源码_【原创源码】安卓数据库简单操作demo
[Java] 纯文本查看 复制代码public Long updateSql(String text) { ContentValues contentValues = new ContentValue ...
- mysql windows 管道连接,科技常识:Windows Server 2016 MySQL数据库安装配置详细安装教程...
今天小编跟大家讲解下有关Windows Server 2016 MySQL数据库安装配置详细安装教程 ,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关Windows Server 2016 ...
- MySQL数据库使用(二):配置、连接远端数据库
Python3.7 pycharm MySQL 8.0.13 阿里云服务器 windows server 2016 Navicat 一.远程数据库的配置 1.在云服务器系统上配置MySQL数据库 安装 ...
- mac下php mysql数据库文件怎么打开_Mac环境下php操作mysql数据库的方法分享
今天在mac上搭建好了php的环境,我们就把php操作mysql数据库的方法分享给大家,有需要的小伙伴参考下. Mac本地环境搭建 在Mac系统,我们可以使用MAMP Pro 软件来搭建本地服务器.安 ...
- mysql 数据库链路_MySQL数据库使用(二):配置、连接远端数据库
Python3.7 pycharm MySQL 8.0.13 阿里云服务器 windows server 2016 Navicat 一.远程数据库的配置 1.在云服务器系统上配置MySQL数据库 安装 ...
- mysql认证包_mysql协议分析2---认证包
主人看到navicat和mysql在那嘻嘻哈哈,眉来眼去的,好不快乐,忽然也想自己写个程序,直接去访问Mysql,虽然现在已经有很多现成的中间件可以直接拿来用了,程序只要负责写sql语句就行了,但是主 ...
最新文章
- macOS上实现Qt应用程序做文件关联打开
- 转:Python Shell 清屏方法
- Nacos处理服务变更通知
- 孙叫兽进阶之路之如何进行情绪管理
- 未来计算机论文1500,致未来的自己作文1500字
- java中gradlew 命令_gradle命令学习
- AI安全隐患凸显,行业安全生态迫在眉睫
- 静态RAM六个MOS管组成1位结构图
- 图解前端之正则表达式
- 概率论————思维导图(上岸必备)(随机事件与概率)
- js--京东快递单号查询案例
- 图像滤镜艺术---乐高像素拼图特效滤镜的代码实现
- 产品线 产品宽度 产品的深度 产品的相关度(理解工厂模式)
- 卸载wps后office图标无法显示(亲测有效)
- ja_charity模板研究_contin_1
- 【YOLOv4原文+翻译】YOLOv4:Optimal Speed and Accuracy of Object Detection
- 金钱找零问题,招行笔试题
- vue之原生上传图片并压缩图片大小(1)
- C++基础——向上取整/向下取整
- 使用python爬虫抓站的一些技巧总结:进阶篇 (转)
热门文章
- python 保留顺序去重_Python数据分析入门教程(二):数据预处理
- 初中计算机网络的教案20分钟,初中网络安全教育教案
- vs安装 c语言编译环境,Visual Studio Code安装与C/C++开发调试环境搭建
- div中的p标签于img设置同一水平_HTML网页制作常用标签及说明——前端开发入门...
- 5数之和python_Python基本语法5:数字和列表,基础,五
- java中字符 的含义 有什么作用_Java中字符串常见题之String相关讲解
- 解决maven项目jdbc报错:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
- 程序—java年月日转换
- Lua虚拟机中的数据结构与栈
- 安卓系统为何这么容易被黑客入侵