I am writing a Java web application for a term paper. When starting, it gives an error
SEVERE: Servlet.service() for servlet [tanat.servlet.IceFloeList] in context with path [/SalvageService] threw exception java.lang.NullPointerException at tanat.database.DBUtils.queryIceFloe(DBUtils.java:19) at tanat.servlet.IceFloeList.doGet(IceFloeList.java:47) at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) Scolding as I understood this class
package tanat.database; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import tanat.beans.IceFloe; public class DBUtils { public static List<IceFloe> queryIceFloe(Connection conn) throws SQLException { String sql = "SELECT `id`, `name_ice_floe`, ` number_of_fishermen` " + "FROM ice_floe ORDER BY 'number_of_fishermen' DESC;"; PreparedStatement pstm = conn.prepareStatement(sql); //на эту строку ругается ResultSet rs = pstm.executeQuery(); List<IceFloe> list = new ArrayList<IceFloe>(); //пробывал через статмент ничего не меняеться // Statement statement = conn.createStatement(); // ResultSet rs = statement.executeQuery(sql); while (rs.next()) { int id = rs.getInt("ID"); String name = rs.getString("Name"); int numberOfFishermen = rs.getInt("NumberOfFishermen"); IceFloe iceFloe = new IceFloe(); iceFloe.setId(id); iceFloe.setNameIceFloe(name); iceFloe.setNumberOfFishermen(numberOfFishermen); list.add(iceFloe); } return list; } public static IceFloe findIceFloe(Connection conn, String code) throws SQLException { String sql = "Select a.Code, a.Name, a.Price from Product a where a.Code=?"; PreparedStatement pstm = conn.prepareStatement(sql); pstm.setString(1, code); ResultSet rs = pstm.executeQuery(); while (rs.next()) { String name = rs.getString("Name"); int numberOfFishermen = rs.getInt("NumberOfFishermen"); IceFloe iceFloe = new IceFloe(); iceFloe.setNameIceFloe(name); iceFloe.setNumberOfFishermen(numberOfFishermen); return iceFloe; } return null; } public static void updateIceFloe(Connection conn, IceFloe iceFloe) throws SQLException { String sql = "Update Product set Name =?, Price=? where Code=? "; PreparedStatement pstm = conn.prepareStatement(sql); pstm.setInt(1, iceFloe.getId()); pstm.setString(2, iceFloe.getnameIceFloe()); pstm.setInt(3, iceFloe.getNumberOfFishermen()); pstm.executeUpdate(); } public static void insertIceFloe(Connection conn, IceFloe iceFloe) throws SQLException { String sql = "Insert into Product(Code, Name,Price) values (?,?,?)"; PreparedStatement pstm = conn.prepareStatement(sql); pstm.setInt(1, iceFloe.getId()); pstm.setString(2, iceFloe.getnameIceFloe()); pstm.setInt(3, iceFloe.getNumberOfFishermen()); pstm.executeUpdate(); } //удаление льдины //по идее нужно реализовать автоматическое удаление если количество рыбаков становиться равным 0 public static void deleteIceFloe(Connection conn, String code) throws SQLException { String sql = "Delete From Product where Code= ?"; PreparedStatement pstm = conn.prepareStatement(sql); pstm.setString(1, code); pstm.executeUpdate(); } } help please, I have been busy for 3 days already, but there is little time left) if you need to look at other classes: https://bitbucket.org/pahan-titan/salvageservice/src Thanks in advance
nullfromIceFloeList.java:47is passed toIceFloeList.java:47. Is this just one mistake? I think you still have an error when connecting to the database is present, so you getnullinstead ofConnection. - lampa