我需要有关我大学项目的帮助(带有 hibernate 和 oracle 数据库的 Java web),这必须编辑之前已添加的用户,这些用户具有: 邮件PK 经过 输入user.iduser FK。
添加和删除它可以工作但不能编辑,错误是: javax.servlet.ServletException:java.sql.SQLSyntaxErrorException:ORA-04054:数据库链接GMAIL.COM不存在
我已经尝试过使用准备好的语句,但我认为我做错了
邮件不需要编辑。只有用户和密码类型需要它,但在按下编辑按钮时,它向我显示错误 gmail.com 不存在
<%
//CONECTANOD A LA BASE DE DATOS:
Class.forName("oracle.jdbc.OracleDriver").newInstance();
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "C##PORTA", "oracle");
String id = request.getParameter("correo");
PreparedStatement stm = con.prepareStatement(id);
String Query = "select * from usuario where correo=" + id;
PreparedStatement ps;
ResultSet rs = stm.executeQuery(Query);
while (rs.next()) {
%>```
最佳答案
老程序员有shown你这样做的正确方法。如果您(正确地)使用PreparedStatement,它将正确处理引用,并且还可以防止 SQL injection攻击。
您收到晦涩错误消息的原因是您的 SQL 语句在连接后很可能看起来像这样:
select * from usuario where correo=someone@gmail.com
由于电子邮件地址未加引号,因此 SQL 解析器无法将其识别为字符串文字。相反,它将其视为“数据库链接”,如 CREATE DATABASE LINK 中所述。 。
After you have created a database link, you can use it in SQL statements to refer to tables and views on the other database by appending @dblink to the table or view name.
这会失败,因为尚未创建名为“gmail.com”的此类数据库链接。
关于java - ORA-04054 : database link GMAIL. COM 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56510796/