Java 从postgresql中的锁定表访问数据
我有一个Java 从postgresql中的锁定表访问数据,java,postgresql,spring-mvc,Java,Postgresql,Spring Mvc,我有一个master\u tbl。我试图通过web服务从master\u tbl读取数据,并将其显示在仪表板上。其他web服务正在不断地将数据插入master\u tbl 现在,当我从数据库中以1秒的时间连续读取数据时。它显示正确的值,一段时间后显示空值。它交替发生 按id DESC limit 1从主表订单中选择楼层编号 web服务中的此查询返回输入到master\u表中的最后一行 你能告诉我这是由于数据库锁定或其他原因吗。。? 因为关键是如果我执行上面的查询,并且在master\u tbl中
master\u tbl
。我试图通过web服务从master\u tbl
读取数据,并将其显示在仪表板上。其他web服务正在不断地将数据插入master\u tbl
现在,当我从数据库中以1秒的时间连续读取数据时。它显示正确的值,一段时间后显示空值。它交替发生
按id DESC limit 1从主表订单中选择楼层编号代码>
web服务中的此查询返回输入到master\u表中的最后一行
你能告诉我这是由于数据库锁定或其他原因吗。。?
因为关键是如果我执行上面的查询,并且在master\u 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
从您的描述中,我了解到行是并发插入的,有时为null,有时为
SELECT floor_no FROM master_table order by id DESC limit 1;
此外:
如果未将任何条目添加到master_tbl中,则应返回上一个条目
在表中输入,但不为空
这让我想到您想要最后一个非空值,那么您应该:
SELECT floor_no FROM master_table WHERE floor_no is not null order by id DESC limit 1;
你能把这个分解成一个简单的例子吗?