Guest User

Untitled

a guest
Aug 4th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.75 KB | None | 0 0
  1. java.lang.NullPointerException
  2. com.cheerbuilder.controller.Controller.createNewUser(Controller.java:64)
  3. com.cheerbuilder.controller.Controller.doGet(Controller.java:31)
  4. com.cheerbuilder.controller.Controller.doPost(Controller.java:50)
  5. javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
  6. javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
  7. org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
  8.  
  9. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  10. <html>
  11. <head>
  12. <title>User form</title>
  13. </head>
  14. <body>
  15. <form action="insert" method = 'post'>
  16. User id: <br>
  17. <input type = 'number' name = 'id'/><br>
  18. User name:<br>
  19. <input type = 'text' name = 'name'/><br>
  20. <button type = 'submit'>Сохранить</button>
  21. </form>
  22. </body>
  23. </html>
  24.  
  25. package com.cheerbuilder.controller;
  26.  
  27.  
  28. import com.cheerbuilder.dbAccess.UserAccesser;
  29. import com.cheerbuilder.entity.User;
  30.  
  31. import javax.servlet.ServletConfig;
  32. import javax.servlet.ServletException;
  33. import javax.servlet.annotation.WebServlet;
  34. import javax.servlet.http.HttpServlet;
  35. import javax.servlet.http.HttpServletRequest;
  36. import javax.servlet.http.HttpServletResponse;
  37. import java.io.IOException;
  38. import java.sql.SQLException;
  39.  
  40.  
  41. @WebServlet("/")
  42. public class Controller extends HttpServlet {
  43.  
  44. UserAccesser userAccesser;
  45.  
  46. @Override
  47. protected void doGet(HttpServletRequest req, HttpServletResponse resp)
  48. throws ServletException, IOException {
  49.  
  50. String action = req.getServletPath();
  51.  
  52. System.out.println(action);
  53.  
  54. switch ((action == null) ? "something" : action) {
  55. case "/insert" :
  56. createNewUser(req, resp);
  57. break;
  58. default:
  59. req.getRequestDispatcher("index.jsp").forward(req,resp);
  60.  
  61. }
  62.  
  63. }
  64.  
  65.  
  66.  
  67. @Override
  68. public void init(ServletConfig config) throws ServletException {
  69. UserAccesser userAccesser = new UserAccesser();
  70.  
  71. }
  72.  
  73. @Override
  74. protected void doPost(HttpServletRequest req, HttpServletResponse resp)
  75. throws ServletException, IOException {
  76. doGet(req,resp);
  77. }
  78.  
  79.  
  80. private void createNewUser(HttpServletRequest req, HttpServletResponse
  81. resp) throws IOException {
  82. User user = null;
  83.  
  84. user = new User(Integer.valueOf(req.getParameter("id")),
  85. req.getParameter("name"));
  86.  
  87. System.out.println(user);
  88.  
  89.  
  90. try {
  91. userAccesser.insertUser(user);
  92. } catch (SQLException e) {
  93.  
  94. }
  95.  
  96. resp.sendRedirect("index.jsp");
  97.  
  98. }
  99.  
  100. }
  101.  
  102. package com.cheerbuilder.dbAccess;
  103.  
  104. import com.cheerbuilder.entity.User;
  105. import com.mysql.jdbc.Driver;
  106.  
  107. import java.sql.*;
  108. import java.util.ArrayList;
  109. import java.util.List;
  110.  
  111. public class UserAccesser {
  112.  
  113. private Connection connection;
  114.  
  115. public UserAccesser() {
  116.  
  117. String dbUser = "root";
  118.  
  119. String dbURL = "jdbc:mysql://localhost:3306/userdb" +
  120. "?verifyServerCertificate=false"+
  121. "&useSSL=false"+
  122. "&requireSSL=false"+
  123. "&useLegacyDatetimeCode=false"+
  124. "&amp" +"&serverTimezone=UTC";
  125.  
  126.  
  127. String dbPassword = "powerlum925";
  128.  
  129.  
  130. try {
  131. Class.forName("com.mysql.jdbc.Driver");
  132. } catch (ClassNotFoundException e) {
  133. e.printStackTrace();
  134. }
  135.  
  136. try {
  137. if ((connection == null) || (connection.isClosed())) {
  138. connection = DriverManager
  139. .getConnection(dbURL,dbUser,dbPassword);
  140. }
  141.  
  142. } catch (SQLException e) {
  143. e.printStackTrace();
  144. }
  145. }
  146.  
  147. /**
  148. * Gets user from db by id
  149. * @param id user's id
  150. * @return
  151. * @throws SQLException
  152. */
  153. public User selectUser(int id) throws SQLException {
  154. User user = null;
  155.  
  156. String selectQuery = "SELECT * FROM users WHERE user_id = ?";
  157.  
  158. PreparedStatement preparedStatement = connection
  159. .prepareStatement(selectQuery);
  160.  
  161. preparedStatement.setInt(1,id);
  162.  
  163. ResultSet resultSet = preparedStatement.executeQuery();
  164.  
  165.  
  166. while(resultSet.next()) {
  167. user = new User(resultSet.getInt("user_id"),
  168. resultSet.getString("name"));
  169. }
  170.  
  171. preparedStatement.close();
  172.  
  173. connection.close();
  174.  
  175.  
  176. return user;
  177.  
  178. }
  179.  
  180.  
  181. /**
  182. * Gets user's list from db
  183. * @return
  184. * @throws SQLException
  185. */
  186. public List<User> selectUsers() throws SQLException {
  187. List<User> users = new ArrayList<>();
  188.  
  189. String selectQuery = "SELECT * FROM users";
  190.  
  191. PreparedStatement preparedStatement =
  192. connection.prepareStatement(selectQuery);
  193.  
  194. ResultSet resultSet = preparedStatement.executeQuery();
  195. while(resultSet.next()) {
  196.  
  197. users.add(new User(resultSet.getInt("user_id"),
  198. resultSet.getString("name"))
  199. );
  200.  
  201.  
  202. }
  203.  
  204. preparedStatement.close();
  205. connection.close();
  206. return users;
  207. }
  208.  
  209. /**
  210. * Inserts user object to db
  211. * @param user
  212. * @throws SQLException
  213. */
  214. public void insertUser(User user) throws SQLException {
  215.  
  216. String insertQuery = "INSERT INTO users VALUES (?,?)";
  217.  
  218. PreparedStatement preparedStatement =
  219. connection.prepareStatement(insertQuery);
  220.  
  221. preparedStatement.setInt(1,user.getId());
  222.  
  223. preparedStatement.setString(2,user.getName());
  224.  
  225. preparedStatement.execute();
  226.  
  227.  
  228. preparedStatement.close();
  229. connection.close();
  230.  
  231. }
  232.  
  233.  
  234. /**
  235. * Updates user
  236. * @param user
  237. * @throws SQLException
  238. */
  239. public void updateUser(User user) throws SQLException {
  240.  
  241. String updateQuery = "UPDATE users SET VALUES (?,?)" +
  242. "WHERE user_id = ? ";
  243.  
  244. PreparedStatement preparedStatement =
  245. connection.prepareStatement(updateQuery);
  246.  
  247. preparedStatement.setInt(1,user.getId());
  248.  
  249. preparedStatement.setString(2,user.getName());
  250.  
  251. preparedStatement.execute();
  252.  
  253. preparedStatement.close();
  254.  
  255. connection.close();
  256. }
  257.  
  258.  
  259. /**
  260. * Delete user from db
  261. * @param user
  262. * @throws SQLException
  263. */
  264. public void deleteUser(User user) throws SQLException {
  265.  
  266. String deleteQuery = "DELETE FROM users WHERE user_id = " +
  267. + user.getId();
  268.  
  269. Statement statement = connection.createStatement();
  270.  
  271. statement.execute(deleteQuery);
  272.  
  273. statement.close();
  274.  
  275. connection.close();
  276. }
  277.  
  278. }
Add Comment
Please, Sign In to add comment