当前位置: 首页 > 知识库问答 >
问题:

在Spring中,有没有一种方法可以将从客户端发送的值传递到sql查询的局部变量?

戚英逸
2023-03-14

我目前正在开发一个网络应用程序,它将根据许多不同的标准对社区进行评级,其中之一是来自当地警察局(爱尔兰警察局)的统计数据。在Spring中,我将一个纬度和经度值从客户端传递到控制器中,我希望运行以下SQL查询,以便找到最近的警察局并返回相关统计信息。

Set @lat = x; // Local Variable for a latitude value
Set @lng = y; // Local Variable for a longitude value

SELECT * FROM garda_station
ORDER BY ((garda_station_latitude - @lat)*
         (garda_station_latitude - @lat))+
         ((garda_station_longitude - @lng)*
         (garda_station_longitude - @lng))
ASC LIMIT 1; 

我试图访问的garda_station表的结构如下

+-------------------------+--------------+------+-----+---------+----------------+
| Field                   | Type         | Null | Key | Default | Extra          |
+-------------------------+--------------+------+-----+---------+----------------+
| garda_station_id        | int(11)      | NO   | PRI | NULL    | auto_increment |
| garda_station_latitude  | double       | NO   |     | NULL    |                |
| garda_station_longitude | double       | NO   |     | NULL    |                |
| garda_station_name      | varchar(255) | YES  |     | NULL    |                |
+-------------------------+--------------+------+-----+---------+----------------+
@RequestMapping(value = "/results", method = RequestMethod.POST)
public @ResponseBody
String Submit(@RequestParam("latitude") String latitude,@RequestParam("longitude") String longitude) {
    // I'm printing them for now to ensure they have been sent from the client side
    System.out.println(latitude + "" + longitude);
    return "/";
}

共有1个答案

邬安邦
2023-03-14

最简单的方法是使用JDBCTemplate(参见此处和此处)。但实际上最好定义一个存储过程来计算disctance并使用该过程(请参见此处和此处)

 类似资料:
  • 在storm中,信息流(元组)是从喷口到螺栓的。为了防止信息过载,我在一开始对喷口处的大部分数据进行过滤,但是在处理完数据后,我想根据数据中的模式添加更多的信息通过喷口。换句话说,我想基于bolts到目前为止处理的数据,动态更改运行时从一个Spout传递的信息。

  • 我被困在一个Java编码任务中。我应该为现有程序创建三种方法(,,和),让用户将数字输入数组,然后组织并打印该数组接收数组作为参数,向用户请求索引值,并将输入的数字量返回为int。将值复制到一个新数组中,该数组的长度为返回的数字量,对数字进行排序。 我的问题是,根据作业,应该只返回输入的数字量。因此,它将打印的数组值留在方法内部,使得无法检索这些值并将其复制到第二个数组中。如果没有编辑主方法的能力

  • 问题内容: 假设我有一个SQL查询 它给我一些结果,例如 我可以放一个and子句来过滤结果 这给了我结果 该和被隐含一起编。 是否有类似的语法 给出结果 ? 我可以做 劣势: 这可能是低效率的,因为数据库必须计算两次该行,发现它是重复的,然后将其丢弃。 我也可以写 缺点: 乍看之下,它开始变得不那么容易理解了(可能是最坏的缺点)。 或者 缺点: 这将使数据库可以做很多额外的工作,将大量的非标签聚集

  • 问题内容: doIt函数将打印“ dad”。有没有办法让它打印“儿子”? 问题答案: 是。但是就变量而言,它会被覆盖(将新值赋予变量。将新定义赋予函数是Override)。 在父类的块中使用时,该值将得到反映 如果变量是静态的,则在初始化时使用静态块更改其值, 否则更改构造函数。 你还可以稍后在任何块中更改该值。它将反映在超一流

  • 问题内容: 例如,如果python脚本将在运行脚本后吐出一个字符串,提供我要立即编辑的新编写文件的路径,那么将其直接发送到系统剪贴板而不是会很好。 问题答案: 您可以使用外部程序: 使用,您可以设置要使用的剪贴板。 与选择一起使用。那是中键。 与选择一起使用。我不知道是否再使用了。 与选择一起使用。那是你的。 在这里和这里阅读有关X剪贴板的更多信息。 我创建的一个快速而肮脏的函数来处理此问题: 您

  • 我正在用SpringBoot构建一个应用程序。我有一个存储库,我通过以下方式从方法名称创建查询: 这样的查询可以工作,方法调用的结果是具有该名称的用户。在Spring Boot中是否可以按名称创建查询,其中输入是名称列表,输出是用户列表,其中每个用户至少对应于列表中的一个名称?例如: 我也试过这样的方法,但是行不通。