2011-09-21 36 views
0

我在oracle数据库中插入一条记录,我从java bean中取值。它是这样::什么是插入记录时逃脱oracle sql序列?

insert into allergy (patient_id, allergy, reaction) values(seq_patient.nextval, '" + bean.getPatient_allergy() + "', '"+ bean.getReaction()+"')"; 

但对过敏的值可以给这会导致SQL失败,ORA-00917的撇号:缺少逗号。有什么办法可以解决这个问题吗?

回答

1

这是更好优先使用bind variables建立你的查询语句的字符串。

这会照顾你的问题。它也会阻止SQL injection attacks(另请参阅Bobby Tables)。

以下是关于如何在Java中使用预准备语句和绑定变量的一些信息:link

0

如何使用参数化查询而不是组装INSERT命令? Tha还会修复当前的SQL Injection漏洞。