从postgresql中的锁定表访问数据

时间:2017-04-10 11:12:33

标签: java postgresql spring-mvc

我有master_tbl。我正在尝试通过Web服务从master_tbl读取数据并将其显示在仪表板上。其他Web服务不断将数据插入master_tbl

现在当我从数据库中以1秒的时间连续读取数据时。它显示正确的值,并在一段时间后显示空值。它交替发生。

SELECT floor_no FROM master_table order by id DESC limit 1;

此Web服务中的查询返回输入master_table的最后一行。

你能帮助我,因为数据库锁定或其他原因......? 因为关键是如果我执行上面的查询,如果没有条目添加到master_tbl那么它应该返回表中的前一个条目但不是null。

以下是用于从Web服务调用和获取数据的Spring控制器代码

@RequestMapping(value="/getfloorNo", method=RequestMethod.POST)
public @ResponseBody String getfloorNo() throws IOException, NullPointerException{      
RestTemplate restTemplate = new RestTemplate();
String url = "http://localhost:8080/master_tbl/floorNo/lastdata/";          
String lastdata = restTemplate.getForObject(url, String.class);
System.out.println("floorNo: "+lastdata);  //It altenatively shows proper & null value.
return users;
}

这是我的json回复

floorNo:[{"floorNo":"01","datetime":"2017-04-05 12:33:26.266"}] 
floorNo:[{"floorNo":"01","datetime":"2017-04-05 12:33:26.266"}]
floorNo:[{"floorNo":"01","datetime":"2017-04-05 12:33:26.266"}]
floorNo: null
floorNo: null
floorNo: null

1 个答案:

答案 0 :(得分:0)

根据你的描述我明白行是同时插入的,有时你会得到null,有时候你会

SELECT floor_no FROM master_table order by id DESC limit 1;

也:

  

如果没有在master_tbl中添加任何条目,那么它应该返回上一个   表格中的条目,但不是null。

让我想到你想要最后没有空值,那么你应该:

SELECT floor_no FROM master_table WHERE floor_no is not null order by id DESC limit 1;