&quot“ java.lang.numberformatexception:不能解析null string'为什么我有这个错误?
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 技术交流群。

发布评论
评论(3)
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
一定是因为“ 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.