mysql是否支持prepareStatement

professorzhou 2010-05-18 11:42:13
我的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
...全文
160 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
professorzhou 2010-05-19
  • 打赏
  • 举报
回复
好的,多谢
ACMAIN_CHM 2010-05-18
  • 打赏
  • 举报
回复
支持!。
估计你改了什么地方。
iihero_ 2010-05-18
  • 打赏
  • 举报
回复
灵异事件?
shine333 2010-05-18
  • 打赏
  • 举报
回复
pstmt.executeUpdate()
professorzhou 2010-05-18
  • 打赏
  • 举报
回复
晕死,现在忽然可以了
professorzhou 2010-05-18
  • 打赏
  • 举报
回复
最后一行我改成了
pstmt.execute();
同样的错误
AvaL_J 2010-05-18
  • 打赏
  • 举报
回复
楼主,我刚刚写了类似的代码,建议你把所有用到的变量先声明并附初始值null,这样就不会出现类似事件了。

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧