&quot“ java.lang.numberformatexception:不能解析null string'为什么我有这个错误?

发布于 01-19 10:35 字数 3403 浏览 3 评论 0原文

package HRCproject;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.gson.Gson;

import HRCproject.pojo.*;

import HRCproject.JDBC_Connection ;
@WebServlet("/fetch")
public class fetch_sevelet extends HttpServlet {
/**
 * 
 */
private static final long serialVersionUID = 1L;

public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException 
{   
    res.setContentType("application/json");
    res.setCharacterEncoding("UTF-8");
    int max_rows = 500;
    PrintWriter out = res.getWriter();
    ArrayList<Invoice> data = new ArrayList<>();
    //get connection
    try {
    Class.forName(JDBC_Connection.JDBC_DRIVER);
    }
    catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    try {
        Connection con = DriverManager.getConnection(JDBC_Connection.URL,JDBC_Connection.USER,JDBC_Connection.PASS);
        System.out.println("Connection Succesful");
        
        String pageInURL = req.getParameter("page");
        int page = Integer.parseInt(pageInURL) * max_rows;
        

        // executing queries
        Statement stmt = con.createStatement();  
        ResultSet rs = stmt.executeQuery("SELECT * FROM winter_internship ORDER BY sl_no LIMIT " + page); 
         
        while (rs.next()) 
        {  
 Invoice s = new Invoice();
            
            s.setSl_no(rs.getInt("sl_no"));
            s.setBusiness_code(rs.getString("business_code"));
            s.setCust_number(rs.getString("cust_number"));
            s.setClear_date(rs.getString("clear_date"));
            s.setBuisness_year(rs.getInt("buisness_year"));
            String doc_id = rs.getString("doc_id");
            doc_id.replace("0","");
            s.setDoc_id(doc_id);
            s.setPosting_date(rs.getDate("posting_date"));
            s.setDue_in_date(rs.getDate("due_in_date"));
            s.setBaseline_create_date(rs.getDate("baseline_create_date"));
            s.setCust_payment_terms(rs.getString("cust_payment_terms"));
            s.setInvoice_currency(rs.getString("invoice_currency"));
            s.setDocument_type(rs.getString("document_type"));
            s.setPosting_id(rs.getString("posting_id"));
            s.setInvoice_id(rs.getInt("invoice_id"));
            s.setTotal_open_amount(rs.getDouble("total_open_amount"));
            
            data.add(s);
        } 
        Gson gson = new Gson();
        String invoices = gson.toJson(data);
        out.print(invoices);
        
        out.flush();
        
    }
    catch(SQLException e) {
        e.printStackTrace();
    }
    catch(Exception e) {
        e.printStackTrace();
    }
    
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
}
}

为什么我会遇到这个错误? 我正在尝试从数据库中获取数据,然后获取AS JSON文件。

如果有人可以帮助并弄清楚如何解决问题,我不知道代码中的错误在哪里。 我试图用较早工作的其他代码在子句中替换代码,因此似乎没有问题。

package HRCproject;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.gson.Gson;

import HRCproject.pojo.*;

import HRCproject.JDBC_Connection ;
@WebServlet("/fetch")
public class fetch_sevelet extends HttpServlet {
/**
 * 
 */
private static final long serialVersionUID = 1L;

public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException 
{   
    res.setContentType("application/json");
    res.setCharacterEncoding("UTF-8");
    int max_rows = 500;
    PrintWriter out = res.getWriter();
    ArrayList<Invoice> data = new ArrayList<>();
    //get connection
    try {
    Class.forName(JDBC_Connection.JDBC_DRIVER);
    }
    catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    try {
        Connection con = DriverManager.getConnection(JDBC_Connection.URL,JDBC_Connection.USER,JDBC_Connection.PASS);
        System.out.println("Connection Succesful");
        
        String pageInURL = req.getParameter("page");
        int page = Integer.parseInt(pageInURL) * max_rows;
        

        // executing queries
        Statement stmt = con.createStatement();  
        ResultSet rs = stmt.executeQuery("SELECT * FROM winter_internship ORDER BY sl_no LIMIT " + page); 
         
        while (rs.next()) 
        {  
 Invoice s = new Invoice();
            
            s.setSl_no(rs.getInt("sl_no"));
            s.setBusiness_code(rs.getString("business_code"));
            s.setCust_number(rs.getString("cust_number"));
            s.setClear_date(rs.getString("clear_date"));
            s.setBuisness_year(rs.getInt("buisness_year"));
            String doc_id = rs.getString("doc_id");
            doc_id.replace("0","");
            s.setDoc_id(doc_id);
            s.setPosting_date(rs.getDate("posting_date"));
            s.setDue_in_date(rs.getDate("due_in_date"));
            s.setBaseline_create_date(rs.getDate("baseline_create_date"));
            s.setCust_payment_terms(rs.getString("cust_payment_terms"));
            s.setInvoice_currency(rs.getString("invoice_currency"));
            s.setDocument_type(rs.getString("document_type"));
            s.setPosting_id(rs.getString("posting_id"));
            s.setInvoice_id(rs.getInt("invoice_id"));
            s.setTotal_open_amount(rs.getDouble("total_open_amount"));
            
            data.add(s);
        } 
        Gson gson = new Gson();
        String invoices = gson.toJson(data);
        out.print(invoices);
        
        out.flush();
        
    }
    catch(SQLException e) {
        e.printStackTrace();
    }
    catch(Exception e) {
        e.printStackTrace();
    }
    
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
}
}

Why am I getting this error?
I am trying to get data from the database and then get the as json file.

I don't know where the error is there in the code if someone could help and figure out how to solve the problem.
I have tried to replace the code in while clause with a different code which was working earlier so it seems there is not the problem in the while clause

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

南巷近海2025-01-26 10:35:50

一定是因为“ gson.tojson(data);此语句返回空对象,您正在尝试以字符串格式存储它。
这就是为什么它给您错误的原因。
尝试调查。

it must be because "gson.toJson(data);" this statement returning a null object and you're trying to store it in string format.
that is why it giving you an error.
try investigate it.

太阳公公是暖光2025-01-26 10:35:50

它必须在方法中抛出异常

Integer.parseInt()

尝试找出为什么下面的方法向 String 对象返回 null 。

req.getParameter("page") 

It has to throws exception at the method

Integer.parseInt()

Try to find why the below method returns null to String object.

req.getParameter("page") 
两人的回忆2025-01-26 10:35:50

不要应用integer.parseint() on null值,这就是为什么numberformat异常来了。

您可以从下图下进行参考 -

final Integer cfp = Objects.isNull(cfpNumber) 

Integer.valueOf(cfpNumber.getCfpNumber()) : null

Dont apply Integer.parseInt() on null value thats why NumberFormat Exception is coming.

You can take reference from below snippet-

final Integer cfp = Objects.isNull(cfpNumber) 

Integer.valueOf(cfpNumber.getCfpNumber()) : null
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文