Reputation: 102
I add full code Here. Check the following code which I am using to insert values in MySql. While executing the program, Values are not inserting.
Database datab.java
Statement st=null;
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/employee","root", "1234");
st=con.createStatement();
Servlet Code
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String s = "http://localhost:" + request.getServerPort() + ""
+ request.getContextPath()+"/Emp";
String a,b,c,d,e;
try {
a=request.getParameter("t1");
b=request.getParameter("t2");
c=request.getParameter("t3");
d=request.getParameter("t4");
e=request.getParameter("t5");
System.out.println(a);
datab dt = new datab();
dt.st.execute("insert into employee(eid,emp_name,emp_age,emp_desig,emp_salary) values(a,b,c,d,e)");
response.sendRedirect(s);
} catch(Exception ex){ex.printStackTrace();
out.close();
}
}
Upvotes: 0
Views: 1743
Reputation: 8946
Assuming a,b,c,d,e all are string Replace
insert into employee(eid,emp_name,emp_age,emp_desig,emp_salary) values(a,b,c,d,e)
with
insert into employee(eid,emp_name,emp_age,emp_desig,emp_salary)
values('"+a+"','"+b+"','"+c+"','"+d+"','"+e+"')
Instead of something like this
dt.st.execute
You dont you make the datab
class to return connectionObject
and using that object create the Statement
Object and execute the statements.
Please stop using Statement and take advantage of PreparedStatement something like this
String query = "insert into employee(eid,emp_name,emp_age,emp_desig,emp_salary)
values(?,?,?,?,?)"
PreparedStatement statement = connection.prepareStatement(query);
statement.setString(1, a);
statement.setString(2, b);
statement.setString(3, c);
statement.setString(4, d);
statement.setString(5, e);
statement.executeUpdate();
Upvotes: 2