文章目录

  • 查询省份的所有信息
    • 1.用JSON作为数据的格式
      • 1.1使用jackson
      • 1.2准备数据库
    • 2.JSP
    • 3.实体类
    • 4.DAO
    • 5.Servlet
    • 6.web.xml

查询省份的所有信息

对比查询单个信息:

传送门:https://blog.csdn.net/gao1213977085/article/details/119089627

1.用JSON作为数据的格式

​ 使用JDBC查询多个数据返回给前端,返回的数据会在一个字符串中,需要分割操作。所以这里在数据库中查询多个数据时使用JSON。

​ 输出多个数据时使用JSON的格式更加简介和方便。JSON格式的数据输出到异步对象,异步对象接收数据之后,可以把JSON数据转换成JS中的JSON对象来用。通过对象来使用JSON数据时最方便的。

1.1使用jackson

​ 使用jackson工具库处理JSON结构的数据。

​ 通过jackson可以把一个Java对象转换成一个JSON格式的字符串。

1.2准备数据库

​ 1.启动服务(用命令启动MySQL)

cd D:\AppDownload\mysql-8.0.25-winx64net start mysql##关闭
##net stop mysql

2.JSP

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>使用Ajax查询省份名称</title><script type="text/javascript">function search() {//1.创建异步对象var xhr=new XMLHttpRequest();//2.绑定事件xhr.onreadystatechange = function () {if(xhr.readyState==4&&xhr.status==200){//获取数据var data = xhr.responseText;//data是字符串,必须转成对象才能识别。//alert("data=="+data);//把json格式的字符串 转为 json 对象。var obj = JSON.parse(data);//alert("data=="+obj+",id属性="+obj.id);//更新domdocument.getElementById("proname").value=obj.name;document.getElementById("projiancheng").value=obj.jiancheng;document.getElementById("proshenghui").value=obj.shenghui;}}//3.初始请求参数//queryName?proid=1var proid = document.getElementById("proid").value;xhr.open("get","queryJson?proid="+proid,true);//4.发起请求xhr.send();}</script>
</head>
<body>
<div align="center"><p>根据id查询省份全部信息</p><table><tr><td>省份id:</td><td><input type="text" id="proid"></td></tr><tr><td>省份名称</td><td><input type="text" id="proname"></td></tr><tr><td>省份简称:</td><td><input type="text" id="projiancheng"></td></tr><tr><td>省会名称:</td><td><input type="text" id="proshenghui"></td></tr><tr><td>操作</td><td><input type="button" value="查询" onclick="search()"></td></tr></table>
</div>
</body>
</html>

3.实体类

​ 用Java面向对象编程思想,将查询到的信息实例化。

package com.gaoxin.entity;public class Province {private Integer id;private String name;private String jiancheng;private String shenghui;public String getShenghui() {return shenghui;}public void setShenghui(String shenghui) {this.shenghui = shenghui;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getJiancheng() {return jiancheng;}public void setJiancheng(String jiancheng) {this.jiancheng = jiancheng;}
}

4.DAO

​ 与之前的不同点是返回一个对象。

package com.gaoxin.dao;import com.gaoxin.entity.Province;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;public class ProvinceDao {//定义方法:查询省份对象public Province queryProvinceName(Integer provienceId){String url = "jdbc:mysql://localhost:3306/springdb?useUnicode=true&characterEncoding=utf8";String usename = "root";String password = "123456";Connection conn = null;PreparedStatement pst=null;ResultSet rs=null;Province p=null;System.out.println("Dao执行");try{Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection(url,usename,password);String sql = "select * from province where id=?";pst =conn.prepareStatement(sql);pst.setInt(1,provienceId);rs = pst.executeQuery();while (rs.next()){//主键查询,使用if也可以。p = new Province();p.setId(rs.getInt("id"));p.setName(rs.getString("name"));p.setJiancheng(rs.getString("jiancheng"));p.setShenghui(rs.getString("shenghui"));}}catch (Exception e){e.printStackTrace();}finally {//关闭资源try{if(rs!=null){rs.close();}if(pst!=null){pst.close();}if(conn!=null){conn.close();}}catch (Exception ex){ex.printStackTrace();}}return p;}}

5.Servlet

​ 在Servlet中把对象转为json,再通过HttpServletResponse输出。


import com.fasterxml.jackson.databind.ObjectMapper;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;public class QueryProvinceServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String json ="";String strProid = request.getParameter("proid");//判断是否为空,并且不为空字符串if(strProid!=null&&!strProid.trim().equals("")){ProvinceDao dao = new ProvinceDao();Province p = dao.queryProvinceName(Integer.valueOf(strProid));//把对象转为json,才通过HttpServletResponse输出。if(p!=null){//说明查出了真实的对象。ObjectMapper om = new ObjectMapper();json = om.writeValueAsString(p);//得到一个JSON格式的字符串}}System.out.println("sevlet province转为json==="+json);//输出json给ajax请求。//application/json;给浏览器输出的是一个json格式的数据格式response.setContentType("application/json;charset=utf-8");PrintWriter out = response.getWriter();out.println(json);out.flush();out.close();}
}

6.web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><servlet><servlet-name>QueryProvinceServlet</servlet-name><servlet-class>com.gaoxin.controller.QueryProvinceServlet</servlet-class></servlet><servlet-mapping><servlet-name>QueryProvinceServlet</servlet-name><url-pattern>/queryJson</url-pattern></servlet-mapping>
</web-app>

Ajax+JDBC+Json处理多个数据相关推荐

  1. 基于jQuery的AJAX和JSON实现纯html数据模板

    通过jQuery内置的AJAX功能,直接访问后台获得JSON格式的数据,然后通过jQuer把数据绑定到事先设计好的html模板上,直接在页面上显示. 我们先来看一下html模板: <table ...

  2. java json html模板,基于jQuery的AJAX和JSON实现纯html数据模板(转载)

    来自:http://www.cnblogs.com/linzheng/archive/2010/10/14/1851799.html 通过jQuery内置的AJAX功能,直接访问后台获得JSON格式的 ...

  3. SpringBoot前端Ajax以JSON格式获取后台数据

    最近在用Thymeleaf做一个项目,耳边总是飘过前后端分离的话语,不得不去了解一下,在Thymeleaf里如何获取后端的json串,这里进行详细的讲解一下(困扰了我好久/哭了) 首先我们需要一个Co ...

  4. 前端Ajax以JSON格式获取后台数据

    最近在用Thymeleaf做一个项目,耳边总是飘过前后端分离的话语,不得不去了解一下,在Thymeleaf里如何获取后端的json串,这里进行详细的讲解一下(困扰了我好久/哭了) 首先我们需要一个Co ...

  5. 使用Ajax读出json文件来进行一些操作(使用Ajax读取数据,并显示到网页中数据使用文本格式数据使用json格式)

    这一个可能对大佬来说是比较简单的,哈哈欢迎指正,咋也是刚学,老师布置的小作业,希望能帮助到大家(如果大家是写作业的话,建议不要直接复制上去,不然可能就会有挺多雷同,比较csdn是一个比较广为人知的平台 ...

  6. html如何遍历ajax数组,ajax返回json数组遍历添加到html

    大致需求为类型限制根据类型获取不同结果列表,再根据模糊查询搜索出结果,效果如下:- 例子:利用AJAX返回JSON数据,间接访问数据库,查出Nation 表,并用下拉列表显示 造一个外部下拉列表框 J ...

  7. AngularJS学习笔记(3)——通过Ajax获取JSON数据

    通过Ajax获取JSON数据 以我之前写的与用户交互的动态清单列表为例,使用JSON前todo.html代码如下: <!DOCTYPE html> <html ng-app=&quo ...

  8. ajax请求json和xml数据及对json和xml格式数据的解析

    ajax请求json和xml数据及对json和xml格式数据的解析 一.ajax请求json数据并解析 ajax的写法: json数据解析: 请求json经常出现的跨域报错: 二.ajax请求xml数 ...

  9. boke例子: freermarker:在使用ajax传递json数据的时候多出冒号

    boke例子: freermarker:在使用ajax传递json数据的时候多出冒号 json数据是用JSON.stringify()格式化的数据,然后用ajax传递,发现数据多出一个冒号:, 后来度 ...

最新文章

  1. 解析 WEB 中所有 URL 的简单牛B代码,先保存起来,方式将来找不到了
  2. 阿里巴巴发布首个知识引擎研究计划,联合清华浙大等五大高校攻坚AI推理
  3. k8s minikube管理镜像相关命令:minikube image list/pull/load
  4. C++十进制数转换为二进制表示的算法(附完整源码)
  5. Nginx 服务器开启status页面检测服务状态
  6. 【Linux】查看日志文件
  7. python写入mysql乱码_python MYsql中文乱码
  8. linux下使用fread读socket套接字的注意点
  9. Oracle 权限管理
  10. 信息系统项目管理师必背核心考点(二十六)三点估算(PERT)
  11. 怎么查看内网ip?如何分辨IP是公网IP还是内网IP?
  12. 职场Word使用技巧大全,教你成为职场高手!
  13. SQL的概述及DDL
  14. 「CTS2019 | CTSC2019」氪金手游 解题报告
  15. Linux命令:netstat【监控TCP/IP网络,可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息】【TCP的11种状态】
  16. wcs无线计算服务器,BKR/拜卡 WCS-10M
  17. 【弱的C艹之路。。未完待续】
  18. 修改SpringBoot内置Tomcat的端口
  19. Android 字体大小(fontScale)不随系统设置变化
  20. SOME/IP01-面向服务架构及其通信方式

热门文章

  1. 开放世界游戏中的大地图的实现——内容制作篇
  2. Xshell和xftp免费下载与使用
  3. 计算机四级网络工程师考点总结
  4. 《野蛮生长》--冯仑
  5. python 股票交易接口 github_GitHub - gusihao/vnpy: 基于python的开源交易平台开发框架...
  6. 计算广告:第五章——搜索与竞价广告
  7. html ios 视频播放不了,html中的video标签在ios微信中无法播放的解决方法之一
  8. 途家、木鸟、美团……民宿暑期战事将起
  9. Android studio 编译错误:CreateProcess error=206, 文件名或扩展名太长。
  10. 关于电脑安装新硬盘,出现无法是识别设备,03F0问题解答。