2017-02-09 54 views
0

我在Java中工作,试图确定像这样的东西的SQL类型:JDBC SqlParameterValue - 确定参数

我与它命名为“IDS”数组中的一个SqlParameterSource。我需要确定这些id所在的类型,例如numeric或varchar。我指定的代码,与前面例如:

return con.createArrayOf("varchar") 

return con.createArrayOf("numeric") 

我已经试过这样:

if (parametersource.getSqlType("ids") == something) { 
// do something 
} 
else { 
//do something else 
} 

我无法弄清楚如何做到这一点。 getSqlType似乎返回一个int,但我不知道要比较它以得到正确的比较。 还有另一种名为getTypeName的方法,但我不明白这是如何工作的。

+0

这是什么'SqlParameterSource'的东西?如果您的JDBC驱动程序支持它,您可以使用'PreparedStatement.getParameterMetaData()':http://docs.oracle.com/javase/8/docs/api/java/sql/PreparedStatement.html#getParameterMetaData-- –

+0

在纯JDBC,我会使用'ResultSetMetaData',但你似乎使用[Spring](http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jdbc/core/namedparam/SqlParameterSource.html )(如果是这样,请将标记添加到您的问题中) – AxelH

+1

JDBC本身没有任何称为“SqlParameterSource”的东西,因此您的问题似乎缺少一些信息。 – FrederikVH

回答

1

继承parametersource.getTypeName("ids")我解决了它:

parameterSource.getValue("objtype").toString(); 

从“OBJTYPE”获取价值,我在我的ParameterSource旁边设置我的阵列使我的最终目标更容易。

感谢朋友们,我爱你们。 :)