我刚刚进入IBM DB2,我有一些相当复杂的查询要创建,这些查询将基于Java webapp中的用户输入。问题是,这些查询将与多个不同的参数放在一起,以便简单地使用问号是不可能的,可以这么说。真的没有办法知道应该去哪里。值得庆幸的是,DB2似乎允许使用命名参数,这使得事情变得更加简单。我仔细研究了一些DB2文档,这看起来非常简单,但是我一直得到一个异常,说明当SQL字符串中没有参数标记时,即:参数标记在SQL字符串中,但它在setJccStringAtName方法中找不到“parameter1”。我已经将“enabledNamedParameterMarkers”设置为传递给getConnection方法的Properties对象中的DB2BaseDataSource.YES,但是无论我是否这样做似乎没有任何区别,即使这似乎是这样做的方式。也许我错过了一些明显的东西。这还需要在服务器端启用吗?
答案 0 :(得分:0)
我认为你的问题是你正在混合纯Java开发和SLQJ的一些概念。
SQLJ允许您在标记
之间的Java代码中本地编写SQL查询#sql{ ... };
但是,上一步是“准备”代码并生成.java文件和.bnd。
使用SQLJ时,可以直接在代码中使用主变量,而不必使用“Sets”方法。
String id = "A00";
#sql [ctx] iter =
{SELECT LASTNAME
FROM EMPLOYEE
WHERE EMPNO = :id};
IBM课程专注于这项技术:CG113,在互联网上寻找它。