2015-12-02 708 views
-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> 
+0

您需要學習閱讀錯誤消息。這一點非常清楚。該方法需要兩個整數,並且你正在給它一個int和一個String。每次出現這樣的問題時,你都不能跑到SO上,否則你永遠無法到達任何地方。 – EJP

回答

1

變化pstatement.setInt(6, year_form);pstatement.setInt(6, car_year);。您正試圖將字符串放入需要整數的方法中。上面的代碼已經將String轉換爲int。

相關問題