-2

私はs とsgetParameterを取得し、それらを SQLを使用してデータベースに配置するために使用したいと考えています。と でエラーが発生します。StringintprepareStatementsetStringsetInt

try {
    String id = request.getParameter("clientid");
    String cname = request.getParameter("clientname");
    String address = request.getParameter("address");
    String phonemodel= request.getParameter("phonemodel");
    String imei = request.getParameter("imei");
    String problem = request.getParameter("problem");
    String date2 = request.getParameter("date");
    String comments1= request.getParameter("comments");

    int  clientid = Integer.parseInt(id);
    int imeino  = Integer.parseInt(imei);
    // int date1 = Integer.parseInt(date2);

    Statement pstmt;

    Class.forName("org.apache.derby.jdbc.ClientDriver"); 
    Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/sample", "app" , "app");

    pstmt=con.prepareStatement("Insert into movilapp(id,clientname,address,modle,imei,problem,date,comments) values(?,?,?,?,?,?,?,?)");
    pstmt.setInt(1,clientid);
    pstmt.setString(2,cname );
    pstmt.setString(3,address);
    pstmt.setString(4,phonemodel);
    pstmt.setInt(5,imeino);
    pstmt.setString(6,problem);
    pstmt.setString(7, comments1);
    pstmt.executeUpdate();
}
catch(Exception e){
    JOptionPane.showMessageDialog(null, e);
}
4

2 に答える 2

3

con.prepareStatementを取得するために を呼び出しましたPreparedStatementが、それを type の変数に割り当てたため、Java は固有の methodStatementがあることを知りません。PreparedStatementsetString

PreparedStatementpstmt の宣言型を から変更して、実際の変数に代入します。

Statement pstmt;

PreparedStatement pstmt;
于 2013-07-25T23:03:07.937 に答える
1

* IF Use StatementThen 構文は *

 Statement stmt = null;
 stmt = conn.createStatement( );
 String sql = "UPDATE Employees set age=30 WHERE id=103";
 stmt.executeUpdate(sql);

そしてPreparedStatementそれは

PreparedStatement pstmt = null;
String SQL = "Update Employees SET age = ? WHERE id = ?";
pstmt = conn.prepareStatement(SQL);
psmt.setInt(1,30);
psmt.setInt(2,1003);
psmt.executeUpdate(SQL);

したがって、に変更Statement pstmt;するPreparedStatement pstmt = null;と、機能します。

于 2013-07-26T20:57:55.933 に答える