My aim is to insert data into database from servlet. Here what I have tried: 1) Created simple servlet in which I create dbconnect which connects and inserts data to mysql database.
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class logic extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String name = request.getParameter("name");
dbconnect con = new dbconnect();
try (PrintWriter out = response.getWriter()) {
/* TODO output your page here. You may use following sample code. */
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet logic</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet logic at " + request.getContextPath() + "</h1>");
out.println("</body>");
out.println("</html>");
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
2) dbconnect class:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
public class dbconnect {
Connection conn;
Statement stm;
public dbconnect(){
try{
conn = DriverManager.getConnection("jdbc:mysql://villaikalto.ge/villaika_type?user=villaika_type&password=pass");
stm = conn.createStatement();
System.out.println("success");
String sql = "INSERT INTO users (mail, pass, gender, saxeli) VALUES (?, ?, ?, ?)";
System.out.println("1");
PreparedStatement statement = conn.prepareStatement(sql);
System.out.println("2");
statement.setString(1, "tsogiaidze");
statement.setString(2, "nika");
statement.setString(3, "nika");
statement.setString(4, "kaci");
System.out.println("3");
int rowsInserted = statement.executeUpdate();
System.out.println("4");
if (rowsInserted > 0) {
System.out.println("A new user was inserted successfully!");
}
}
catch (Exception ex){
System.out.println("error");
System.out.println(ex.getMessage());
}
}
}
Problem is that when I create dbconnect object with simple java class's main method data is successfully written in database,but when I try to create dbconnect object from servlet it does not add data to the database. I use netbeans and have added mysql driver to the classpath. P.S. servlet is called by JSP file,which passes to servlet some html form parameters.
I suppose my question is clear and would like seeing comments from you.