【问题标题】:How to do a Merge with JDBCTemplate, SQL Server, and expected output如何与 JDBCTemplate、SQL Server 和预期输出进行合并
【发布时间】:2013-10-24 22:24:25
【问题描述】:

我的查询如下所示

MERGE dbo.myTable AS myt
USING (SELECT ? AS ID,
       ? AS Value) AS s
ON (s.id = myt.id)
WHEN MATCHED THEN
    UPDATE SET myt.ApprovalUserId = s.ApprovalUserId
WHEN NOT MATCHED THEN
    INSERT ( Value )
    VALUES  ( s.Value)
OUTPUT INSERTED.id;

我的java代码是这样的

jdbcTemplate.queryForInt(SQL, id, value);

但是当我尝试跑步时,我得到了

java.sql.SQLException: The executeQuery method must return a result set.

我想以某种方式提取合并“INSERTED.id”给出的 ID。是否有我应该查看的 JDBCTemplate 方法?还是我应该放弃合并,只使用选择、更新和锁定来执行此操作?

我正在使用 Sql Server 2012、Java 6 和 Spring jdbc 3.1.2.release

【问题讨论】:

    标签: java sql merge jdbctemplate


    【解决方案1】:

    我的最终解决方案是扩展 JdbcTemplate 类“StoredProcedure”并将我的合并语句放入存储过程中。执行命令返回所有存储过程结果。

    【讨论】:

      猜你喜欢
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-13
      • 2020-04-27
      • 2016-10-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多