java - 类数据访问中的方法编辑无法应用于给定类型

标签 java jsp

我正在为编辑功能运行一个jsp,由于某种原因,用于解析int id的String idTemp不断被识别为要执行更新的一些数据。

<%@page import="dao.DataAccess"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <%
            String idTemp = request.getParameter("id"); //1
            int id = Integer.parseInt(idTemp); //2            
            String station = request.getParameter("station"); //3
            String date = request.getParameter("date"); //4
            String shift = request.getParameter("shift"); //5
            String uprice = request.getParameter("uprice"); //6
            String cashliters = request.getParameter("cashliters"); //7
            String cashamt = request.getParameter("cashamt"); //8
            String cardliters = request.getParameter("cardliters"); //9
            String cardamt = request.getParameter("cardamt"); //10
            String chargeliters = request.getParameter("chargeliters"); //11
            String chargeamt = request.getParameter("chargeamt"); //12 
            String gcliters = request.getParameter("gcliters"); //13
            String gcamt = request.getParameter("gcamt"); //14
            String fleetliters = request.getParameter("fleetliters"); //15
            String fleetamt = request.getParameter("fleetamt"); //16
            String tappingliters = request.getParameter("tappingliters"); //17
            String tappingamt = request.getParameter("tappingamt"); //18
            String hosefillliters = request.getParameter("hosefillliters"); //19
            String hosefillamt = request.getParameter("hosefillamt"); //20
            String calibrateliters = request.getParameter("calibrateliters"); //21
            String calibrateamt = request.getParameter("calibrateamt"); //22
            String grossliters = request.getParameter("grossliters"); //23
            String grossamt = request.getParameter("grossamt"); //24
            String cashdepoamt = request.getParameter("cashdepoamt"); //25            
            String checkdepoamt = request.getParameter("checkdepoamt"); //26
            String variance = request.getParameter("variance"); //27
            String cashier = request.getParameter("cashier"); //28
            String nooftrans = request.getParameter("nooftrans"); //29
            String tank1level = request.getParameter("tank1level"); //30
            String tank1liters = request.getParameter("tank1liters"); //31
            String tank2level = request.getParameter("tank2level"); //32
            String createdate = request.getParameter("createdate"); //33
            String userid = request.getParameter("userid"); //34
            String transmit = request.getParameter("transmit"); //35
            String transmitdate = request.getParameter("transmitdate"); //36
            String tank2liters = request.getParameter("tank2liters"); //37
            String product = request.getParameter("product"); //38
            
            DataAccess da = new DataAccess();
            da.edit(id, station, date, shift, uprice, cashliters, cashamt, cardliters, cardamt, chargeliters, chargeamt, gcliters, gcamt, fleetliters, fleetamt, tappingliters, tappingamt, hosefillliters, hosefillamt, calibrateliters, calibrateamt, grossliters, grossamt, cashdepoamt, checkdepoamt, variance, cashier, nooftrans, tank1level, tank1liters, tank2level, createdate, userid, transmit, transmitdate, tank2liters, product);
            
            response.sendRedirect("/CRUD_News/AllPost");
        %>
    </body>
</html>

在线错误:

            da.edit(id, station, date, shift, uprice, cashliters, cashamt, cardliters, cardamt, chargeliters, chargeamt, gcliters, gcamt, fleetliters, fleetamt, tappingliters, tappingamt, hosefillliters, hosefillamt, calibrateliters, calibrateamt, grossliters, grossamt, cashdepoamt, checkdepoamt, variance, cashier, nooftrans, tank1level, tank1liters, tank2level, createdate, userid, transmit, transmitdate, tank2liters, product);

错误是:

method edit in class data access cannot be applied to given types
required: int, +37 String
found: int, +36 String
reason: actual and formal argument lists differ in length

您建议我做什么来保留 idTemp 字符串但又能够在不将其包含在要插入的数据中的情况下执行?

编辑:EditPost.java

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package servlet;

import dao.DataAccess;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Thang
 */
public class EditPost extends HttpServlet {

    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
     * methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
             {
        String idTemp = request.getParameter("id");
        int id = Integer.parseInt(idTemp);
        request.setAttribute("getNewsById", DataAccess.getNewById(id));
        RequestDispatcher rd = request.getRequestDispatcher("EditPost.jsp");
        try {
            rd.forward(request, response);
        } catch (ServletException | IOException ex) {
            Logger.getLogger(EditPost.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}

DataAccess.java

    public void edit(int id, String station, String description, String date, String shift, String uprice, String cashliters, String cashamt, String cardliters, String cardamt, String chargeliters, String chargeamt, String gcliters, String gcamt, String fleetliters, String fleetamt, String tappingliters, String tappingamt, String hosefillliters, String hosefillamt, String calibrateliters, String calibrateamt, String grossliters, String grossamt, String cashdepoamt, String checkdepoamt, String variance, String cashier, String nooftrans, String tank1level, String tank1liters, String tank2level, String createdate, String userid, String transmit, String transmitdate, String tank2liters, String product){
        try {
            String sql = "update DailySales SET dsStnCode = ?, dsDate = ?, dsShift = ?, dsUPrice = ?, dsCashLiters = ?, dsCashAmt = ?, dsCardLiters = ?, dsCardAmt = ?, dsChargeLiters = ?, dsChargeAmt = ?, dsGCLiters = ?, dsGCAmt = ?, dsFleetLiters = ?, dsFleetAmt = ?, dsTappingLiters = ?, dsTappingAmt = ?, dsHosefillLiters = ?, dsHoseFillAmt = ?, dsCalibrateLiters = ?, dsCalibrateAmt = ?, dsGrossLiters = ?, dsGrossAmt = ?, dsCashDepoAmt = ?, dsCheckDepoAmt = ?, dsVariance = ?, dsCashier = ?, dsNoOfTrans = ?, dsTank1Level = ?, dsTank1Liters = ?, dsTank2Level = ?, dsCreateDate = ?, dsUserID = ?, dsTransmit = ?, dsTransmitDate = ?, dsTank2Liters = ?, dsProduct = ?" + " where id = ?";

            PreparedStatement ps= DBUtils.getPreparedStatement(sql);
            ps.setString(1, station);
            ps.setString(2, date);
            ps.setString(3, shift);
            ps.setString(4, uprice);
            ps.setString(5, cashliters);
            ps.setString(6, cashamt);
            ps.setString(7, cardliters);            
            ps.setString(8, cardamt);
            ps.setString(9, chargeliters);
            ps.setString(10, chargeamt);
            ps.setString(11, gcliters);
            ps.setString(12, gcamt);
            ps.setString(13, fleetliters);
            ps.setString(14, fleetamt);
            ps.setString(15, tappingliters);
            ps.setString(16, tappingamt);
            ps.setString(17, hosefillliters);
            ps.setString(18, hosefillamt);
            ps.setString(19, calibrateliters);
            ps.setString(20, calibrateamt);
            ps.setString(21, grossliters);
            ps.setString(22, grossamt);
            ps.setString(23, cashdepoamt);
            ps.setString(24, checkdepoamt);
            ps.setString(25, variance);
            ps.setString(26, cashier);
            ps.setString(27, nooftrans);
            ps.setString(28, tank1level);
            ps.setString(29, tank1liters);
            ps.setString(30, tank2level);
            ps.setString(31, createdate);
            ps.setString(32, userid);
            ps.setString(33, transmit);
            ps.setString(34, transmitdate);
            ps.setString(35, tank2liters);
            ps.setString(36, product);             
            ps.setInt(37, id);
            ps.executeUpdate();
        } catch (ClassNotFoundException | SQLException ex) {
            Logger.getLogger(DataAccess.class.getName()).log(Level.SEVERE, null, ex);
        }
        
    }

EditPost.jsp

<%-- 
    Document   : EditPost
    Created on : Aug 8, 2015, 11:08:34 PM
    Author     : Thang
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Edit</title>
    </head>
    <body>
        <h1>Edit News</h1>
        <div style="width: 900px; margin-left: auto; margin-right: auto">
            <c:forEach items="${getNewsById}" var="p">
            <form action="JSP/ManagerEditPost.jsp" method="post">                
                <input type="hidden" name="id" value="${p.id}">
                Station:
                <input type="text" name="station" value="${p.station}" style="width: 200px" value="South Area Auto Gas Corp. - Kawit" readonly><br><br>
                <!--Title:<br>
                <input type="text" name="title" style="width: 200px" ><br>
                -->
                Date:
                <input type="date" value="${p.date}" name="date" style="width: 200px"><br><br>
                <!--Description:<br>
                <input type="text" name="description" style="width: 200px"><br>
                -->
                Shift: 
                <select name="shift">
                    <option value="${p.shift}">${p.shift}</option>
                    <option value="GY">GY</option>
                    <option value="AM">AM</option>
                    <option value="PM">PM</option>
                </select><br><br>                  
                Product: 
                <select name="product">
                    <option value="${p.product}">${p.product}</option>                    
                    <option value="LPG">LPG</option>
                    <option value="Diesel">Diesel</option>
                    <option value="Unleaded">Unleaded</option>
                    <option value="Premium">Premium</option>                    
                </select><br><br>
                U/Price:
                <input type="text" value="${p.uprice}" name="uprice" style="width: 200px">
                No. of Transaction:
                <input type="text" value="${p.nooftrans}" name="nooftrans" style="width: 50px"><br><br>
                Cashier:
                <input type="text" value="${p.cashier}" name="cashier" style="width: 300px"><br><br>
                Tank 1:
                <input type="text" value="${p.tank1level}" name="tank1level" placeholder="gauge" style="width: 50px">
                <input type="text" value="${p.tank1liters}" name="tank1liters" placeholder="liters" style="width: 50px"><br><br>
                Tank 2:
                <input type="text" value="${p.tank2level}" name="tank2level" placeholder="gauge" style="width: 50px">
                <input type="text" value="${p.tank2liters}" name="tank2liters" placeholder="liters" style="width: 50px"><br><br><br><br>
                <table>
                    <tr>
                        <td>Description</td>
                        <td>Liters</td>
                        <td>Amount</td>
                    </tr>
                    <tr>
                        <td>Cash:</td>
                        <td><input type="text" value="${p.cashliters}" name="cashliters" placeholder="liters" style="width: 50px"><br></td>
                        <td><input type="text" value="${p.cashamt}" name="cashamt" placeholder="amount" style="width: 100px"><br></td>
                    </tr>
                    <tr>
                        <td>Card:</td>
                        <td><input type="text" value="${p.cardliters}" name="cardliters" placeholder="liters" style="width: 50px"><br></td>
                    <td><input type="text" value="${p.cardamt}" name="cardamt" placeholder="amount" style="width: 100px"><br></td>
                    </tr>
                    <tr>
                        <td>Charge:</td>
                        <td><input type="text" value="${p.chargeliters}" name="chargeliters" placeholder="liters" style="width: 50px"><br></td>
                    <td><input type="text" value="${p.chargeamt}" name="chargeamt" placeholder="amount" style="width: 100px"><br></td>
                    </tr>
                    <tr>
                        <td>G.C:</td>
                        <td><input type="text" value="${p.gcliters}" name="gcliters" placeholder="liters" style="width: 50px"><br></td>
                        <td><input type="text" value="${p.gcamt}" name="gcamt" placeholder="amount" style="width: 100px"><br></td>
                    </tr>
                    <tr>
                        <td>Fleet Card:</td>
                        <td><input type="text" value="${p.fleetliters}" name="fleetliters" placeholder="liters" style="width: 50px"><br></td>
                        <td><input type="text" value="${p.fleetamt}" name="fleetamt" placeholder="amount" style="width: 100px"><br></td>
                    </tr>
                    <tr>
                        <td>Tapping:</td>
                        <td><input type="text" value="${p.tappingliters}" name="tappingliters" placeholder="liters" style="width: 50px"><br></td>
                        <td><input type="text" value="${p.tappingamt}" name="tappingamt" placeholder="amount" style="width: 100px"><br></td>
                    </tr>
                    <tr>
                        <td>Hosefill:</td>
                        <td><input type="text" value="${p.hosefillliters}" name="hosefillliters" placeholder="liters" style="width: 50px"><br></td>
                        <td><input type="text" value="${p.hosefillamt}" name="hosefillamt" placeholder="amount" style="width: 100px"><br></td>
                    </tr>
                    <tr>
                        <td>Calibration: </td>
                        <td><input type="text" value="${p.calibrateliters}" name="calibrateliters" placeholder="liters" style="width: 50px"><br></td>
                        <td><input type="text" value="${p.calibrateamt}" name="calibrateamt" placeholder="amount" style="width: 100px"><br></td>
                    </tr>
                    <tr>
                        <td>Gross: </td>
                        <td><input type="text" value="${p.grossliters}" name="grossliters" placeholder="liters" style="width: 50px"><br></td>
                        <td><input type="text" value="${p.grossamt}" name="grossamt" placeholder="amount" style="width: 100px"><br></td>
                    </tr>                     
                </table>
                
                <br><br>
                Deposit Amount:<br>
                <input type="text" value="${p.cashdepoamt}" name="cashdepoamt" placeholder="gauge" style="width: 100px">
                <input type="text" value="${p.checkdepoamt}" name="checkdepoamt" placeholder="liters" style="width: 100px">
                <input type="text" value="${p.variance}" name="variance" placeholder="liters" style="width: 100px"><br><br>

                <!--
                START NOTE: ADD TO EDIT LATER
                -->
                User ID:
                <input type="text" value="${p.userid}" name="userid" style="width: 300px"><br><br>
                Transmit
                <input type="text" value="${p.transmit}" name="transmit" style="width: 300px"><br><br>
                Transmit Date:
                <input type="date" value="${p.transmitdate}" name="transmitdate" style="width: 300px"><br><br>
                Create Date:
                <input type="date" value="${p.createdate}" name="createdate" style="width: 300px"><br><br>

                
                <!--
                NOTE: ADD TO EDIT LATER
                -->
                
                <!--Detail:<br>
                <textarea name="detail" style="width: 400px; height: 200px"></textarea><br>
                -->
                <!--
                Category: 
                <select name="category">
                    <option value="World">World</option>
                    <option value="Tech">Tech</option>
                    <option value="Sport">Sport</option>
                </select><br>
                -->
                <!--Image:<br>
                <input type="text" name="image" style="width: 200px"><br>
                -->
                <br><br><input type="submit" value="Submit">
            </form>
            </c:forEach>

        </div>
    </body>
</html>

最佳答案

错误消息告诉您,DataAccess.java 中的 edit 方法要求您传入一个 int,后跟 37 字符串。但是,当您在 jsp 文件中调用 da.edit(...) 时,您将传入一个 int,后跟 36 字符串。

确保您传递给 edit() 的内容与方法定义匹配。我相信您缺少第三个参数:字符串描述

关于java - 类数据访问中的方法编辑无法应用于给定类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34035504/

相关文章:

jsp - 编译所有 JSP 并且不会因错误而停止

java - 如何实际解析接收到的json数据

java - 如何在 IntelliJ IDEA 中构建混合有 .java 和 .class 的包?

java - Apache Pulsar Consumer.acknowledgeAsync() 失败该如何处理?

java - JRuby:启动浏览器时 Watir 挂起

java - 在数据库中保留动态数据以供工作流执行

java - 如何更改android按钮背景两次?

java - 如何以编程方式发送 POST 请求并解析 HTML 结果?

java - 使用 JPS 检查 request.getParameter 是否为 null

java - 如何在表单输入字段中使用 Struts 2 推送标签?