首页 > 其他分享 >级联查询

级联查询

时间:2023-05-27 14:02:30浏览次数:14  
标签:code String -- html 查询 级联 import name

代码在com.bjpowernode.ajax.servlet

MyRequestServlet

package com.bjpowernode.ajax.servlet;

import com.alibaba.fastjson.JSON;
import com.bjpowernode.ajax.bean.Area;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

@WebServlet("/requestservlet")
public class MyRequestServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//获取pcode
String pcode = request.getParameter("pcode");

//连接数据库
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
List list = new ArrayList<>();
try {
//注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 获取连接
String url = "jdbc:mysql://localhost:3306/bjpowernode?useUnicode=true&characterEncoding=UTF-8";
String user = "root";
String password = "lzl";
conn = DriverManager.getConnection(url,user,password);

//获取预编译对象
String sql = "";
if(pcode==null){
sql="select code,name from t_area where pcode is null";
ps = conn.prepareStatement(sql);
}else{
sql="select code,name from t_area where pcode = ?";
ps = conn.prepareStatement(sql);
ps.setString(1,pcode);
}
//执行
rs = ps.executeQuery();
//处理结果集
while(rs.next()){
String code = rs.getString("code");
String name = rs.getString("name");
Area a = new Area(code, name);
list.add(a);//将封装好的javabean添加进集合
}
} catch (Exception e) {
e.printStackTrace();
}finally {
//关闭连接
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
response.setContentType("text/json;charset=UTF-8");
//集合转换为json格式的数组
String json = JSON.toJSONString(list);
// 响应JSON。
response.getWriter().print(json);
}
}

com.bjpowernode.ajax.bean

Area

package com.bjpowernode.ajax.bean;

//这是一个JavaBean
public class Area {
private String code;
private String name;

public Area() {
}

public Area(String code, String name) {
this.code = code;
this.name = name;
}

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

E:\java学习\jQuery\course\course6\web

myajax.html

<!--做一个省市联动  -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>做一个省市联动</title>

</head>
<body>

<script type="text/javascript" src="/ajax/js/jquery-3.4.1.js"></script>
<script type="text/javascript">
//在这里发送ajax请求
$(function (){
$.ajax({
type:"get",
url:"/ajax/requestservlet",
data:"t="+new Date().getTime(),
dataType:"json",
async:true,
success:function (jsonStr){
// [{"code":"001", "name":"河北省"},{"code":"002", "name":"河南省"}]
// 以上格式的json是我们自己设计出来的,希望服务器能够给我们返回这样一个json格式的字符串。

//第一种输出方式
/*var html = "<option value=''>--请选择省份--</option>"
for(var i = 0;i<jsonStr.length;i++){
var Obj = jsonStr[i];
html+="<option value='"+Obj.code+"'>"+Obj.name+"</option>"
}
$("#province").html(html)*/

//第二种
/*var html = "<option value=''>--请选择省份--</option>"
for(var i = 0;i<jsonStr.length;i++){
var Obj = jsonStr[i];
html+="<option value='"+Obj.code+"'>"+Obj.name+"</option>"
}
//删除上次输出的旧数据
$("#province").empty();
$("#province").append(html)*/

//第三种
$("#province").empty()
var html="<option value=''>--请选择省份--</option>"
$("#province").append(html);
$.each(jsonStr,function (i,Obj){
$("#province").append("<option value='"+Obj.code+"'>"+Obj.name+"</option>")
})

}
})

//给province绑定change改变事件
$("#province").change(function (){
//alert(111)
//alert(this.value)
//只要change发生,就发送ajax请求
$.ajax({
type:"get",
async:true,
dataType:"json",
data:"t="+new Date().getTime()+"&pcode="+this.value,
url:"/ajax/requestservlet",
success:function (jsonStr){
// [{"code":"006", "name":"XXX"},{"code":"008", "name":"YYYY"}]

//第一种输出方式
/*var html="<option value=''>--请选择城市--</option>"
for(var i=0;i<jsonStr.length;i++){
var Obj = jsonStr[i]
html+="<option value='"+Obj.code+"'>"+Obj.name+"</option>"
}
$("#city").html(html);*/

//第二种
/* var html="<option value=''>--请选择城市--</option>"
for(var i=0;i<jsonStr.length;i++){
var Obj = jsonStr[i]
html+="<option value='"+Obj.code+"'>"+Obj.name+"</option>"
}
//删除上次输出的旧数据
$("#city").empty();
$("#city").append(html);*/

//第三种
$("#city").empty()
var html="<option value=''>--请选择城市--</option>"
$("#city").append(html);
$.each(jsonStr,function (i,Obj){
$("#city").append("<option value='"+Obj.code+"'>"+Obj.name+"</option>")
})

}
})
})

})

</script>

<select id="province">
<!--<option value="">--请选择省份--</option>
<option value="001">河北省</option>
<option value="002">河南省</option>-->
</select>
<select id="city">

</select>

</body>
</html>

标签:code,String,--,html,查询,级联,import,name
From: https://blog.51cto.com/u_15784725/6362072

相关文章

  • 地铁线路查询系统时间花费时间
    地铁线路查询系统实际花费时间发表日期:2023年4月26日完成系统后,我们可以使用PSP表格来记录实际花费的时间,以便于评估我们的预估时间与实际开发时间的偏差。下面是我在实际开发中所用的时间。1.需求调研计划和跟踪时间:0.5小时估算时间:1小时设计时间:3小时代码时间:0小时调试......
  • python操作mysql数据pymysql-执行语句select查询返回值直接返回dict字典类型或者list
    一、返回tuple元组类型(默认)fetchall()将结果放在二维数组里面,每一行的结果在元组里面importpymysqldefexport(table_name):conn=pymysql.connect(host='118.24.3.40',user='jxz',password='123456',db......
  • BooleanBuilder 如何根据自定义列名 模糊查询 使用PathBuilder
     //动态传参//1.声明PathBuilder:MyTable为类名称,"myTable"为首字母小写后的类名PathBuilder<MyTable>path=newPathBuilder<>(MyTable.class,"myTable");//2.判断查询的列的名称是否不为空if(!ObjectUtils.isEmpty(xXXXCondition.getColumn1())){ Stri......
  • RMQ 问题的两种实现办法(线段树查询和稀疏表(Sparse Table表)查询)
    引言RMQ算法(RangeMinimum/MaximumQuery)是静态区间极值查询的高效算法,在各种算法竞赛中常常出现,虽然不会单独拿出来做一个题,但是经常作为题的一部分。依据所需实现的不同性能可以有多种写法,这里主要讲基于线段树和稀疏表(SparseTable)的两种方法。线段树实现RMQ线段树是维护......
  • Excel数据查询之INDEX和MATCH函数
    INDEX函数的作用INDEX(单元格区域,指定的行数,指定的列数)INDEX函数用于在一个区域中,根据指定的行、列号来返回内容=INDEX(A1:D4,3,4)  返回A1:D4单元格区域第3行和第4列交叉处的单元格,即D3单元格 MATCH函数的作用     MATCH函数用于在一行或一列的......
  • Kafka实时数据即席查询应用与实践
    作者:vivo互联网搜索团队-DengJieKafka中的实时数据是以Topic的概念进行分类存储,而Topic的数据是有一定时效性的,比如保存24小时、36小时、48小时等。而在定位一些实时数据的Case时,如果没有对实时数据进行历史归档,在排查问题时,没有日志追述,会很难定位是哪个环节的问题。一、背景Ka......
  • Kafka实时数据即席查询应用与实践
    作者:vivo互联网搜索团队-DengJie Kafka中的实时数据是以Topic的概念进行分类存储,而Topic的数据是有一定时效性的,比如保存24小时、36小时、48小时等。而在定位一些实时数据的Case时,如果没有对实时数据进行历史归档,在排查问题时,没有日志追述,会很难定位是哪个环节的问题。一......
  • 分页查询设置每页多少条数据
    intpageIndex=request.getParameter("pageIndex")==null?1:Integer.parseInt(request.getParameter("pageIndex"));intpageSize=request.getParameter("pageSize")==null?15:Integer.parseInt(request.getParameter("p......
  • 5)基本查询语句
    1、select语句:select格式:select字段列表from数据源[where条件表达式][groupby分组字段[having条件表达式]][orderby排序字段[asc|desc]]where字句用于指定记录的过滤条件,groupby子句用于对检索的数据进行分组;having子句对分组后的数据进行筛选;orderby子句......
  • F查询与Q查询
    F查询与Q查询1、aggregate若想把整张表当成一个组来使用聚合函数,应该调用aggregate#1、先导入聚合函数fromdjango.db.modelsimportMax,Min,Avg,Sum,Count"""小窍门:只要是跟数据库相关的模块基本都在django.db.models里面如果没有那么应该在django.db里"""#2......