我有一个使用spring-boot构建的API。该请求将JSON发送到构建请求对象的端点。请求对象将其Product对象列表发送到一种方法,以更新Product中的productDimensions对象。
为了获取尺寸,我将Sku字符串和Size字符串发送到一个名为ProductRepository的类,该类使用jdbcTemplate设置(我认为)
该方法不会失败,但是SqlRowSet会返回0行,但我无法弄清楚。请注意,Java不是我的主要语言,所以我有点困惑。
我尝试了https://spring.io/guides/gs/relational-data-access/和其他几个SO链接
public class ProductRepository {
@Autowired
JdbcTemplate jdbcTemplate;
public SqlRowSet findBySkuSize(String sku, String size) {
return jdbcTemplate.queryForRowSet("SELECT * from PRODUCT_DIMENSIONS where SKU = '" + sku + "' and SIZE = '" + size + "'");
}
}
这就是我所说的ProductRepository
private ProductRepository productRepository;
//constructor
public FreightCalculationService(ProductRepository productRepository)
{
this.productRepository = productRepository;
}
private Obj Method(params){
Obj obj = new Obj()
SqlRowSet dataRows = productRepository.findBySkuSize(params);
我希望H2数据库中的数据在SqlResultSet中显示为一行,但是当我检查时,totalRows为0。
编辑:我的jdbcTemplate已填充,我已经清理了一点代码。
编辑:当我在调试器中查看SqlRowSet对象时,这是我看到的内容,它无法正常工作 [![在此处输入图片描述] [2]] [2] 在调试控制台中未引发任何错误。
[![[2]:https://i.stack.imgur.com/sSen0.png][2]][2]
所以看起来好像Sql语句有问题,当我将查询更改为SELECT * FROM PRODUCT_DIMENSIONS时,我得到4行,但是当我尝试易受sql注入的方法时,我什么也没得到,这可能是因为Java连接字符串的方式吗?我要研究准备好的语句的人,看看是否有解决方法。