![](/img/trans.png)
[英]How to do INSERT SELECT INTO in Java using 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.