1

我有一个使用 spring.net 和 ADOTemplate 查询数据库的 DAO:

var sql = "select id, name, description from item where description like '%@description%'";
var dbParameters = AdoTemplate.CreateDbParameters();
dbParameters.Add("description", DbType.String).Value = query.Description;
return AdoTemplate.QueryWithRowMapperDelegate<Item>(...) 

这失败了,因为 sql 字符串在没有 dbparameter 扩展的情况下按字面意思发送到数据库。

我对此的解决方案如下

var sql = "select id, name, description from item where description like '%" + query.Description + "%'";
return AdoTemplate.QueryWithRowMapperDelegate<Item>(...) 

但我真的很想使用 IDBParameters,因为当前的解决方案为 sql 注入攻击打开了大门。我在文档中找不到有关如何实现此目的的任何内容。

4

0 回答 0