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)
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”的数据库链接。