我有一个DeviceController类:
@RequestMapping(value = "/device", method = RequestMethod.POST,produces = "application/json")
public ResponseEntity<Device> createDevice(@RequestBody Device device) {
HttpHeaders headers = new HttpHeaders();
if (device == null) {
return new ResponseEntity<Device>(HttpStatus.BAD_REQUEST);
}
deviceRegisterService.createDevice(device)
headers.add("Device Created - ", String.valueOf(device.getDeviceId()));
return new ResponseEntity<Device>(device,headers,HttpStatus.CREATED);
}
我想将设备信息发布到设备表(SQL数据库)并返回一个响应,即带有请求数据的唯一键。
这是我的查询数据库的存储库类:
@Repository
public class DeviceRepository {
private JdbcTemplate jdbcTemplate;
@Autowired
public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
public int createDevice(Device device){
int count = jdbcTemplate.update("INSERT into Device_Table(device_name,device_type Values(?,?,?)",new Object{device.getdevice_name,device.getdevice_type,device.getDevice_id});
return count;
}
}
点击服务器后,我可以推送数据,但我得到的唯一ID与数据库中生成的唯一ID完全不同。
我有一个Device.java类,它包含生成唯一ID的所有getter / setter方法和方法。 我正在使用UUID.randomUUID()。toString()来生成唯一ID。
例如:
Request
{
device_name="asd"
device_type="xyz"
}
Response
{
device_name="asd"
device_type="xyz"
device_id="1223444455"
}
Database:
device_name : asd
device_type : xyz
device_id : "00999123"
我认为我的代码以某种方式执行getDeviceID()
方法两次。有人可以帮我纠正它。