Java 无法使用preparestatement插入数据
我试图使用prepareStatement将数据插入mysql数据库,但它显示的错误如下 类型不匹配:无法将java.sql.PreparedStatement转换为 com.mysql.jdbc.PreparedStatement 下面是我的代码:Java 无法使用preparestatement插入数据,java,mysql,prepared-statement,Java,Mysql,Prepared Statement,我试图使用prepareStatement将数据插入mysql数据库,但它显示的错误如下 类型不匹配:无法将java.sql.PreparedStatement转换为 com.mysql.jdbc.PreparedStatement 下面是我的代码: <%@ page import="java.sql.*" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; char
<%@ 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(查询)上获取错误代码>
帮帮我。我错在哪里
注意:这是我第一次使用CreateStatement
中的preparedstatement
,因此建议我哪一个适合编写代码?只需删除即可
import com.mysql.jdbc.PreparedStatement;
并替换为
import java.sql.PreparedStatement代码>只需删除
import com.mysql.jdbc.PreparedStatement;
并替换为
import java.sql.PreparedStatement代码>修复导入并替换
import com.mysql.jdbc.PreparedStatement;
借
您不应该在代码中使用特定于mysql的类。标准JDBC类就是您所需要的全部
关于预处理statements的使用,是的,每次需要向查询传递参数时都应该使用它。这是一个健壮性和安全性的问题(请阅读SQL注入攻击)
但是JDBC代码,以及一般的Scriptlet,在JSP中没有任何作用。JSP是视图组件,其任务是生成HTML。它们不是数据访问组件。这些应该用Java编写并从控制器servlet访问。修复导入并替换
import com.mysql.jdbc.PreparedStatement;
借
您不应该在代码中使用特定于mysql的类。标准JDBC类就是您所需要的全部
关于预处理statements的使用,是的,每次需要向查询传递参数时都应该使用它。这是一个健壮性和安全性的问题(请阅读SQL注入攻击)
但是JDBC代码,以及一般的Scriptlet,在JSP中没有任何作用。JSP是视图组件,其任务是生成HTML。它们不是数据访问组件。这些应该用Java编写并从控制器servlet访问。您确定此
是唯一的导入语句吗您确定此
是唯一的导入语句否!它不工作。它显示类似“import java.sql.PreparedStatement与另一个import语句冲突”的错误,这是因为您导入了java.sql.*。然后删除您不需要的com.mysql.jdbc.PreparedStatement的导入。现在我只导入了,但出现了相同的错误!那么错误不是来自这个JSP,或者JSP包含您没有向我们展示的代码。对不起!我忘了取下。现在很好,谢谢,伙计,不!它不工作。它显示类似“import java.sql.PreparedStatement与另一个import语句冲突”的错误,这是因为您导入了java.sql.*。然后删除您不需要的com.mysql.jdbc.PreparedStatement的导入。现在我只导入了,但出现了相同的错误!那么错误不是来自这个JSP,或者JSP包含您没有向我们展示的代码。对不起!我忘了取下。现在很好,谢谢你。