Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法使用preparestatement插入数据_Java_Mysql_Prepared Statement - Fatal编程技术网

Java 无法使用preparestatement插入数据

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

我试图使用prepareStatement将数据插入mysql数据库,但它显示的错误如下

类型不匹配:无法将java.sql.PreparedStatement转换为 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(查询)上获取错误

帮帮我。我错在哪里

注意:这是我第一次使用
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包含您没有向我们展示的代码。对不起!我忘了取下。现在很好,谢谢你。