Thursday 15 July 2010

java - can not insert datum using preparestatement -



java - can not insert datum using preparestatement -

i trying insert datum mysql database using preparestatement shows error "type mismatch: cannot convert java.sql.preparedstatement com.mysql.jdbc.preparedstatement". below code,

<%@ page import="java.sql.*" %> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>insert title here</title> </head> <body> <% seek { class.forname("com.mysql.jdbc.driver"); connection con =drivermanager.getconnection("jdbc:mysql://localhost:3306/test","root",""); // statement st=connection.createstatement(); preparedstatement st=null; string eid = request.getparameter("eid"); string rpswd=request.getparameter("rpswd"); string utype=request.getparameter("utype"); // string query="insert login_table(`uid`,`pswd`,`user_type`) values('"+eid+"','"+rpswd+"','"+utype+"')"; string query="insert login_table(`uid`,`pswd`,`user_type`) values(?,?,?)"; st = con.preparestatement(query); st.setstring(1,eid); st.setstring(2,rpswd); st.setstring(3,utype); // int i= st.executeupdate(query); int i= st.executeupdate(); } catch(exception e) { e.printstacktrace(); } %> </body> </html>

getting error on "st = con.preparestatement(query);".

help me wrong?

**note :**this first time using preparedstatement createstatement suggest me 1 code?.

fix imports , replace

import com.mysql.jdbc.preparedstatement;

by

import java.sql.preparedstatement;

you should never utilize mysql-specific classes in code. standard jdbc classes need.

regarding utilize aof prepared stataments, yes, should used every time need pass parameters query. it's matter of robustness , of security (read sql injection attacks).

but jdbc code, , scriptlets in general, have nil in jsps. jsps view components, job generate html. they're not info access components. these should written in java , accessed controller servlet.

java mysql prepared-statement

No comments:

Post a Comment