ORA-04054: 数据库链接 GMAIL.COM 不存在

Dar*_*uri 0 java sql oracle jdbc

我需要帮助我的大学项目(带有 hibernate 和 oracle 数据库的 Java web),这必须编辑之前已经添加的用户:Mail pk pass typeuser.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()) {
        %>``` 



Run Code Online (Sandbox Code Playgroud)

Ste*_*n C 5

OldProgrammer已经你正确的方式做到这一点。如果您(正确)使用 PreparedStatement,它将正确处理引用,并防止SQL 注入攻击。

您收到模糊错误消息的原因是您的 SQL 语句在您连接后很可能看起来像这样:

 select * from usuario where correo=someone@gmail.com
Run Code Online (Sandbox Code Playgroud)

由于电子邮件地址没有被引用,SQL 解析器不会将其识别为字符串文字。相反,它将其视为“数据库链接”,如CREATE DATABASE LINK 中所述

创建数据库链接后,您可以在 SQL 语句中使用它来引用其他数据库上的表和视图,方法是将 @dblink 附加到表或视图名称。

这失败了,因为没有创建名称为“gmail.com”的数据库链接。