簡體   English   中英

無法使用preparestatement插入基准

[英]can not insert datum using preparestatement

我正在嘗試使用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(query);上得到錯誤st = con.prepareStatement(query);

幫我。 我哪里錯了?

注意:這個我第一次使用preparedstatement距離CreateStatement所以建議我哪一個是好代碼?

修復進口並更換

import com.mysql.jdbc.PreparedStatement;

通過

import java.sql.PreparedStatement;

您永遠不要在代碼中使用特定於mysql的類。 您只需要標准的JDBC類。

關於使用准備好的策略,是的,應該在每次需要將參數傳遞給查詢時使用它。 這是魯棒性和安全性的問題(了解有關SQL注入攻擊的信息)。

但是JDBC代碼和一般的scriptlet在JSP中無關。 JSP是視圖組件,其作用是生成HTML。 它們不是數據訪問組件。 這些應該用Java編寫,並可以從控制器servlet訪問。

只需刪除

import com.mysql.jdbc.PreparedStatement;

並替換為

import java.sql.PreparedStatement;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM