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

Mysql 有没有一种方法可以在spring中将从客户端发送的值传递给sql查询的局部变量?,mysql,spring,spring-mvc,Mysql,Spring,Spring Mvc,我目前正在开发一个网络应用程序,它将根据许多不同的标准对街区进行评分,其中一个标准是来自当地加尔达警察局(爱尔兰警察局)的统计数据。我在Spring中将一个纬度和经度值从客户端传递到一个控制器,我想运行下面的SQL查询,以便找到最近的警察局并返回相关的统计数据 Set @lat = x; // Local Variable for a latitude value Set @lng = y; // Local Variable for a longitude value SELECT * FR

我目前正在开发一个网络应用程序,它将根据许多不同的标准对街区进行评分,其中一个标准是来自当地加尔达警察局(爱尔兰警察局)的统计数据。我在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    |                |
+-------------------------+--------------+------+-----+---------+----------------+
我通过AJAX请求将纬度和经度值从客户端传递给Spring项目中的控制器类

@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 "/";
}

这是我在spring项目中的第一次重大尝试,因此,如果有任何关于如何执行此SQL查询的其他建议,我很乐意听取您的建议。

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

谢谢您的回复。您对通过Repository类使用JPA查询方法有何看法,类似这样,
public GardaStation findByGardaStation_latitude和dGardastation_Longitude(双纬度,双经度),如果可能的话,还可以对其进行自定义查询?这对我来说很好。最初您在没有JPA/Spring数据的情况下询问。这就是为什么我建议使用基于JDBCTemplate的方法。您的实际查询并不完美。最好使用更复杂的公式。在相反的情况下,结果精度很大程度上取决于纬度。抱歉,我应该指定我指的是JPA/Spring数据。你知道我可以看一个资源来帮助我创建一个基于SQL语句的定制JPA查询吗?检查一下,谢谢。谢谢你的帮助。