-1
我必須將我的網頁鏈接到一個jsp文件,但出現一些錯誤。我有點中間btw。我有一個MySQL數據庫,我的意思是鏈接我在網頁上填寫的表單,但是我得到這個錯誤(類型PreparedStatement中的方法setInt(int,int)不適用於參數(int,String) )或(無法連接到數據庫) 任何人都可以幫忙嗎?PreparedStatement類型中的方法setInt(int,int)不適用於參數(int,String)
JSP代碼:
<%@ page import="java.sql.*"%>
<html>
<head>
<title>AutoServe</title>
</head>
<body>
<h1>form</h1>
<%
String first_name = request.getParameter("fname");
String last_name = request.getParameter("lname");
String email_form = request.getParameter("email");
String phone_form = request.getParameter("phone");
String address_form = request.getParameter("address");
String year_form = request.getParameter("car_year");
String make_form = request.getParameter("make");
String model_form = request.getParameter("model");
String colour_form = request.getParameter("colour");
int car_year = Integer.parseInt(year_form);
try {
java.sql.Connection cn;
Class.forName("com.mysql.jdbc.Driver");
cn = DriverManager.getConnection ("jdbc:mysql://localhost:3306/webpage", "root", "passwordlivi");
PreparedStatement pstatement = null;
int updateQuery = 0;
String queryString = "INSERT INTO appointment(fname, lname, email, phone, address, car_year, make, model, colour) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
pstatement = cn.prepareStatement(queryString);
pstatement.setString(1, first_name);
pstatement.setString(2, last_name);
pstatement.setString(3, email_form);
pstatement.setString(4, phone_form);
pstatement.setString(5, address_form);
pstatement.setInt(6, year_form);
pstatement.setString(7, make_form);
pstatement.setString(8, model_form);
pstatement.setString(9, colour_form);
updateQuery = pstatement.executeUpdate();
if (updateQuery != 0) { %>
<br>
<TABLE style="background-color: #E3E4FA;"
WIDTH="30%" border="1">
<tr><th>Data is inserted successfully
in database.</th></tr>
</table>
<%
}
}
catch (Exception ex) {
out.println("Unable to connect to database.");
}
%>
</body>
</html>
我的數據庫代碼
<%@ page import="java.sql.*"%>
<html>
<head>
<title>JDBC Connection example</title>
</head>
<body>
<h1>AutoServe.Inc</h1>
<%
java.sql.Connection cn;
Class.forName("com.mysql.jdbc.Driver");
cn = DriverManager.getConnection ("jdbc:mysql://localhost:3306/webpage", "root", "passwordlivi");
ResultSet rst=null;
Statement stmt=null;
stmt=cn.createStatement();
rst=stmt.executeQuery("select * from appointment ");
while(rst.next()){
%>
<p>
First Name: <%=rst.getString(1)%> <br/>
Last Name: <%=rst.getString(2)%> <br/>
Email Address: <%=rst.getString(3)%> <br/>
Phone: <%=rst.getString(4)%> <br/>
Address: <%=rst.getString(5)%> <br/>
Year: <%=rst.getInt(6)%> <br/>
Make : <%=rst.getString(7)%> <br/>
Model: <%=rst.getString(8)%> <br/>
Colour: <%=rst.getString(9) %> </br>
</p>
<%
}
%>
</body>
</html>
您需要學習閱讀錯誤消息。這一點非常清楚。該方法需要兩個整數,並且你正在給它一個int和一個String。每次出現這樣的問題時,你都不能跑到SO上,否則你永遠無法到達任何地方。 – EJP