Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从java代码调用时,在函数/过程中封装select语句是否更好?_Java_Plsql - Fatal编程技术网

从java代码调用时,在函数/过程中封装select语句是否更好?

从java代码调用时,在函数/过程中封装select语句是否更好?,java,plsql,Java,Plsql,我正在编写一个RESTful服务来调用我正在编写的一些PL SQL过程。在少数情况下,所需要的只是从表中检索到的一条信息 SELECT id FROM dual; 我想知道,与从REST服务简单地执行SELECT语句相比,是否最好将其包装在一个过程中,并使用OUT参数返回结果 或者这有什么关系?一个比另一个更安全吗?使用PreparedStatement来执行select语句,如果需要对其进行参数化,则使用位置参数而不是串联字符串,这将解决有关SQL注入的安全问题。如果您想做多件事情,并且希望

我正在编写一个RESTful服务来调用我正在编写的一些PL SQL过程。在少数情况下,所需要的只是从表中检索到的一条信息

SELECT id FROM dual;
我想知道,与从REST服务简单地执行SELECT语句相比,是否最好将其包装在一个过程中,并使用OUT参数返回结果


或者这有什么关系?一个比另一个更安全吗?

使用PreparedStatement来执行select语句,如果需要对其进行参数化,则使用位置参数而不是串联字符串,这将解决有关SQL注入的安全问题。如果您想做多件事情,并且希望避免在客户机和数据库之间往返,或者如果您想调用某个特定于Oracle的PLSQL,但无法通过JDBC执行,则可以为使用存储过程提供理由。这些在这里似乎不相关,所以我不想麻烦它。

不,它不会使您的数据库访问更安全,只会使它更复杂。在Java代码中使用准备好的语句。