我从从java代码调用存储过程的代码中收到以下错误:
Exception Trace {} org.springframework.jdbc.UncategorizedSQLException:CallableStatementCallback; 未分类SQL的SQLException [{call test.usp_xxx_GetCompanyDetails(?,?,?,?,?,,?,,?,?,?,?,?)}]; SQL状态[null]; 错误代码[0]; 没有为参数编号11设置该值.嵌套异常是com.microsoft.sqlserver.jdbc.SQLServerException:未在org.springframework.jdbc的org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)中为参数编号11设置该值. support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)在org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)在org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:1095)在org.springframework.jdbc.core.JdbcTemplate.call(JdbcTemplate.java:1131)
该应用程序部署在WAS 8.5.5上并使用jdbc驱动程序版本4.2.重新启动服务器时,此问题不再发生.生成的以下调用语句看起来不正确.连续逗号没有?它们之间.
{call test.usp_xxx_GetCompanyDetails(?,?,?,?,?,,?,,?,?,?,?,?)}
存储过程有10个参数.以下是存储过程的定义:
CREATE PROCEDURE [test].[usp_xxx_GetCompanyDetails]
(
@ANumber int,
@CompanyId int,
@UserRole varchar(15),
@RequestId varchar(100),
@CompanyCode varchar(5),
@BaseSystem varchar(5),
@PType varchar(20),
@PId varchar(40),
@IsActive bit,
@responseData xml OUT
)
Run Code Online (Sandbox Code Playgroud)
以下是调用存储过程的java代码.它使用spring数据进行调用.
private String executeProc(Integer aNumber,Integer companyId, String baseSystem,
String role,String companyCode,String requestId, String pType,String pId,
boolean isActive ) throws SQLException {
SQLXML responseData=null;
Map<String,Object> inputParams= new HashMap<>();
inputParams.put("ANumber", aNumber);
inputParams.put("CompanyId", companyId);
inputParams.put("UserRole", role);
inputParams.put("RequestId", requestId);
inputParams.put("CompanyCode", companyCode); …Run Code Online (Sandbox Code Playgroud) 以下两个方法声明之间有什么区别:
1. <R> Stream<R> myFunc(Function<? super T, ? extends R> mapper);
2. Stream<R> myFunc(Function<? super T, ? extends R> mapper);
Run Code Online (Sandbox Code Playgroud)
对于要编译的第二个声明,我需要像这样向类添加类型参数.
public class MyGenericsTest<T, R>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,编译器确保在编译时确定myFunc的返回类型.编译器也可以从方法签名中知道.我很困惑为什么这两个声明被编译器区别对待.
我将使用 Redis 来存储具有嵌套结构的 json 文档。我的要求只是设置和获取文件。我不需要对文档执行任何特定于 json 的命令。使用 rejson 模块是否有任何优势。GET 和 SET 命令将比 JSON.GET 和 JSON.SET 命令执行得更好。以下来自redis文档
JSON.SET 从 1.0.0 开始可用。时间复杂度:O(M+N),其中 M 是原始值的大小(如果存在),N 是新值的大小。
JSON.GET 从 1.0.0 开始可用。时间复杂度:O(N),其中 N 是值的大小。
GET 密钥 从 1.0.0 开始可用。时间复杂度:O(1)
SET 键值 [expiration EX seconds|PX 毫秒] [NX|XX] 从 1.0.0 开始可用。时间复杂度:O(1)
只是想确认将文档存储为字符串值是正确的做法。
有没有办法只使用值而不是字段名称来获取mongodb查询结果.我的查询给了我以下结果:
{
"t_number" : 2508
},
{
"t_number" : 2560
},
{
"t_number" : 2599
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望查询结果[2508,2560,2599].或者如果不可能,是否可以将查询结果作为[{2508},{2560},{2599}].我知道我可以迭代结果并改变我的编程语言格式.我正在寻找一种方法从mongodb获得并节省一些工作.
java.util.Stream接口的JDK文档具有以下代码片段作为收集器构造的示例.
Collector<Widget, ?, TreeSet<Widget>> intoSet =
Collector.of(TreeSet::new, TreeSet::add,
(left, right) -> { left.addAll(right); return left; });
Run Code Online (Sandbox Code Playgroud)
Collector.of方法的返回类型为 static <T,R> Collector<T,R,R>
是吗?在示例中的返回类型中,只是一种方便的方式来引用下一个泛型类型,因为这两个类型在方法签名中已声明为相同.并且以下三个陈述都是同一个:
Collector<Widget, ?, TreeSet<Widget>> intoSet =
Collector.of(TreeSet::new, TreeSet::add,
(left, right) -> { left.addAll(right); return left; });
Collector<Widget, TreeSet<Widget>, TreeSet<Widget>> intoSet =
Collector.of(TreeSet::new, TreeSet::add,
(left, right) -> { left.addAll(right); return left; });
Collector<Widget, TreeSet<Widget>, ?> intoSet =
Collector.of(TreeSet::new, TreeSet::add,
(left, right) -> { left.addAll(right); return left; });
Run Code Online (Sandbox Code Playgroud)