java - java中转义逗号

标签 java sql

我有一个字符串作为 IN 子句输入到查询中,它看起来像这样 ('ACT','INACT') ,它是包内函数的参数之一。当从java调用该函数时, 看起来像这样

call package.function(1,2,3,('ACT','INACT'),4,5).

当调用包时,我收到错误,因为参数类型错误。

它将括号内的值视为由字符串分隔的不同值

最佳答案

您应该使用CallableStatement,这样您就不必担心转义输入。它看起来像这样:

CallableStatement proc = conn.prepareCall("{call package.function(?,?,?,?,?,?) }");
proc.setInt(1,1);
proc.setInt(2,2);
proc.setInt(3,3);
proc.setString(4,"('ACT','INACT')");
proc.setInt(5,4);
proc.setInt(6,5);
proc.execute();

关于java - java中转义逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4713280/

相关文章:

java - JPA CascadeType.ALL 不能通过查询工作?

java - 为什么在 spring security 中不在 FilterChainProxy 中的过滤器上调用 init()?

java - 如何根据更改的字符而不是单个分隔符来拆分字符串?

sql - 按多个标签选择(白名单和黑名单)

php - SQL 将表键与 Group_Concat 分开

mysql - 如何在 Sphinx 搜索中手动添加行到索引?

java NIO - 多线程访问 channel

java - 使用 Hibernate 持久化接口(interface)集合

PHP 简单插入问题

sql - 如何编写一个显示没有 child 的祖 parent (两个子表)的 SQL 查询?