Actuellement, j'ai un objet Java appelé travail, cet objet a cette méthode à l'intérieur. J'appelle cette méthode à l'intérieur de ma servlet pour me connecter à ma base de données et ajouter une ligne de table. Quelle que soit la raison, je reçois toujours une exception de pointeur nul lors de l'exécution du débogage. Quelqu'un peut-il me guider comment faire fonctionner correctement?Méthode de connexion à DB donnant une exception de pointeur nul
protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
// Obtain submitted form data
Work work = new Work();
String firstName = req.getParameter("First_Name");
String lastName = req.getParameter("Last_Name");
String username = req.getParameter("User_Name");
String email = req.getParameter("Email_Address");
String password = req.getParameter("Password");
ResultSet rs = null;
Connection conn = null;
Statement st = null;
try {
work.Connection(conn);
// Prepare the SQL statmenet to insert the values
PreparedStatement stmt = conn.prepareStatement("INSERT INTO userdetails(First_Name, Last_Name, Email_Address, Password, User_Name) VALUES (?,?,?,?,?)");
stmt.setString(1, firstName);
stmt.setString(2, lastName);
stmt.setString(3, email);
stmt.setString(4, password);
stmt.setString(5, username);
// Execute the insert
stmt.executeUpdate();
conn.close();
// Dispatch into success page
RequestDispatcher requestDispatcher = req.getRequestDispatcher("login.jsp");
requestDispatcher.forward(req, res);
} catch (Exception e) {
work.ErrorHome(req, res, e);
} finally {
try {
if (st != null)
st.close();
} catch (java.sql.SQLException e) {
}
try {
if (conn != null)
conn.close();
} catch (java.sql.SQLException e) {
}
try {
if (rs != null)
rs.close();
} catch (java.sql.SQLException e) {
}
}
}
}
Ajouter stacktrace pour aider – BoBasket4
Sommes-nous censés deviner où exactement vous obtenez l'exception NullPointerException ou pourquoi ne nous dites-vous pas et ne publiez pas la Stacktrace? à côté de cela, je doute vraiment que ce soit différent d'un NPE typique et sera donc probablement fermé comme un doublon. –
Avez-vous écrit la méthode 'public void Connection (Connection conn)' vous-même? Parce que cela ne fonctionnera pas parce que [Java est toujours transmis par valeur] (https://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value). Vous devez retourner la connexion créée et travailler avec cette valeur de retour! –