Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 在getSqlMapClientTemplate中执行preparedStatement_Spring_Jdbc_Ibatis - Fatal编程技术网

Spring 在getSqlMapClientTemplate中执行preparedStatement

Spring 在getSqlMapClientTemplate中执行preparedStatement,spring,jdbc,ibatis,Spring,Jdbc,Ibatis,我想在getsqlMapClientTemplate方法中执行preparedStatement。另一个查询结果接收到preparedStatement参数值之一。是否可以这样执行 像 对于PreparedStatement而不是connection对象,我希望使用getSqlMapClientTemplate方法。您不需要SqlMapClientTemplate,而是需要JdbcTemplate 接下来,您的解决方案存在缺陷,因为它属于1+N选择问题,即,您执行一个查询以获取id列表,然后针对

我想在getsqlMapClientTemplate方法中执行preparedStatement。另一个查询结果接收到preparedStatement参数值之一。是否可以这样执行

对于PreparedStatement而不是connection对象,我希望使用getSqlMapClientTemplate方法。

您不需要SqlMapClientTemplate,而是需要JdbcTemplate

接下来,您的解决方案存在缺陷,因为它属于1+N选择问题,即,您执行一个查询以获取id列表,然后针对每个id发出另一个查询。创建一个一次完成所有任务的查询更有效

final String query = "select empSalary from employeePay where Id in (select Id_no from employee)" 
JdbcTemplate template = getJdbcTemplate();
List<Long> salaries = template.queryForList(query, Long.class);
差不多吧


或者,如果您想使用SqlMapClientTemplate,只需将查询添加到ibatis配置中,并让ibatis而不是JdbcTemplate为您处理这项艰巨的任务

如果我想为查询方法添加动态值,就像我们在prepareStatement中设置参数一样,有没有办法在sqlmapclientTemplate中这样做?在这里定义动态?请修改您的问题以表达这一点,因为您目前没有提及任何相关内容。从您的评论中添加了行您仍然没有解释查询的动态内容。更清楚地说,我希望getSqlMapClientTemplateselect empSalary from employeePay,其中Id=empId,empId;这可能吗?
final String query = "select empSalary from employeePay where Id in (select Id_no from employee)" 
JdbcTemplate template = getJdbcTemplate();
List<Long> salaries = template.queryForList(query, Long.class);