是否可以将动态查询传递给Ibatis并从中获取记录?
例如我使用 StringBuilder 构建了查询,最后,我得到了以下查询“select emp_id, emp_name from employee where emp_id==1”。现在我需要将这个完整的查询传递给 Ibatis 并获取记录。
注意:此处的列数和条件会因每个查询形式而异
编辑:如何将查询传递给 Ibatis 并使用 ibatis 执行它?
最佳答案
我认为你不能,即使你可以,你也不应该这样做。 “使用 StringBuilder 构建查询”违背了 iBatis 的目的,并且很容易出现很多问题(其中包括 SQL 注入(inject)),而 iBatis 正是为了防止这些问题而设计的。
帮自己一个忙:阅读 dynamic queries in iBatis并将 SQL 从 Java 转换为 XML(如果您确实想使用 iBatis)。
如果你真的坚持...好吧,我想你可以将整个 sql 查询作为单个字符串传递给 iBatis,例如调用动态执行该 sql 代码的存储过程。可怕但可以想象。
关于c# - Ibatis 中的动态查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3138912/