- 此问题在此处已有答案**:
Using a variable instead of a parameter index with a JDBC prepared statement(3个答案)
两年前关闭了。
JDBC中是否有命名参数而不是位置参数,如下面ADO.NET查询中的@name
、@city
?
select * from customers where name=@name and city = @city
Using a variable instead of a parameter index with a JDBC prepared statement(3个答案)
两年前关闭了。
JDBC中是否有命名参数而不是位置参数,如下面ADO.NET查询中的@name
、@city
?
select * from customers where name=@name and city = @city
5条答案
按热度按时间rmbxnbpk1#
JDBC不支持命名参数。除非您绑定使用普通JDBC(这会带来痛苦,让我告诉您),否则我建议使用Springs Excellent JDBCTemplate,它可以在没有整个IoC容器的情况下使用。
NamedParameterJDBCTemplate支持命名参数,您可以像这样使用它们:
ttcibm8c2#
为了避免包含一个大的框架,我认为一个简单的自制类就可以做到这一点。
处理命名参数的类示例:
调用类的示例:
请注意,上面的简单示例不处理两次使用命名参数的情况,也不处理使用以下参数的情况:在引号内签名。
vcirk6k63#
VanillaJDBC只支持
CallableStatement
中的命名参数(例如setString("name", name)
),即使这样,我怀疑底层存储过程实现也必须支持它。如何使用命名参数的示例:
yks3o0rb4#
你不能在JDBC本身中使用命名参数,你可以尝试使用Spring框架,因为它有一些扩展允许在查询中使用命名参数。
t98cgbkg5#
普通JDBC不支持命名参数。
如果使用DB2,则直接使用DB2类:
编辑:Db2 v11.5的新链接: