gpt4 book ai didi

java - 无法使用 preparestatement 插入数据

转载 作者:行者123 更新时间:2023-12-01 00:21:02 26 4
gpt4 key购买 nike

我正在尝试使用 prepareStatement 将数据插入 mysql 数据库,但它显示错误,如

Type mismatch: cannot convert from java.sql.PreparedStatement to com.mysql.jdbc.PreparedStatement

下面是我的代码:

<%@ page import="java.sql.*" %>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>


<%

try
{
Class.forName("com.mysql.jdbc.Driver");
Connection con =DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","");
// Statement st=connection.createStatement();
PreparedStatement st=null;
String Eid = request.getParameter("Eid");
String Rpswd=request.getParameter("Rpswd");
String uType=request.getParameter("uType");

// String query="insert into login_table(`uid`,`pswd`,`user_type`) values('"+Eid+"','"+Rpswd+"','"+uType+"')";
String query="insert into login_table(`uid`,`pswd`,`user_type`) values(?,?,?)";
st = con.prepareStatement(query);
st.setString(1,Eid);
st.setString(2,Rpswd);
st.setString(3,uType);


// int i= st.executeUpdate(query);

int i= st.executeUpdate();


}
catch(Exception e)
{
e.printStackTrace();
}

%>

</body>
</html>

st = con.prepareStatement(query); 出现错误。

帮帮我。我哪里错了?

注意:这是我第一次使用 CreateStatement 中的 preparedstatement 所以建议我哪个对代码有用?

最佳答案

修复你的导入并替换

import com.mysql.jdbc.PreparedStatement;

通过

import java.sql.PreparedStatement;

你不应该在你的代码中使用特定于 mysql 的类。标准的 JDBC 类就是您所需要的。

关于 aof prepared stataments 的使用,是的,每次需要将参数传递给查询时都应该使用它。这是一个健壮性和安全性的问题(阅读 SQL 注入(inject)攻击)。

但是 JDBC 代码和一般的 scriptlet 与 JSP 无关。 JSP 是 View 组件,其工作是生成 HTML。它们不是数据访问组件。这些应该用 Java 编写并从 Controller servlet 访问。

关于java - 无法使用 preparestatement 插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26624262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com