mysql是否支持prepareStatement
我的mysql版本是5.1的,写了一段jsp如下:
Connection con;//连接对象
Statement stmt;//SQL声明
PreparedStatement pstmt;
//加载驱动程序,下面的代码加载MySQL驱动程序
Class.forName("com.mysql.jdbc.Driver");
//注册MySQL驱动程序
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//用适当的驱动程序连接到数据库
String dbUrl = "jdbc:mysql://localhost:3306/BookDB?useUnicode=true&characterEncoding=GB2312";
String dbUser="user";
String dbPwd="1234";
//建立数据库连接
con = java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);
//创建一个SQL声明
// stmt = con.createStatement();
//增加新记录
String ID=request.getParameter("ID");
String NAME=request.getParameter("NAME");
String TITLE=request.getParameter("TITLE");
String PRICE=request.getParameter("PRICE");
String str="insert into BOOKS (ID,NAME,TITLE,PRICE) values(?,?,?,?)";
pstmt = con.prepareStatement(str);
pstmt.setString(1,ID);
pstmt.setString(2,NAME);
pstmt.setString(3,TITLE);
pstmt.setString(4,PRICE);
pstmt.executeUpdate(str);
提示错误:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?,?,?,?)' at line 1