首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

prepareStatement.setString 有关问题求租

2011-12-07 
prepareStatement.setString 问题求租代码如下PreparedStatement preState conn.prepareStatement( ALT

prepareStatement.setString 问题求租
代码如下
  PreparedStatement preState = conn.prepareStatement( "ALTER USER \"?\" IDENTIFIED BY \"?\" REPLACE \"?\"");
  preState.setString(1, this.userId);
  preState.setString(2, newPassword);
  preState.setString(3, this.password);
  logger.debug("User" + this.userId + " NewPassword"+newPassword+" OldPassword:"+ this.password+"\nSQL:"+sql);
  preState.execute();
  preState.close();
  preState = null;

运行时总是提示:
Unable to change password, exception occurs java.sql.SQLException: ORA-01918: user ':1' does not exist


[解决办法]
一把我们用PreparedStatement 都用的executeUpdate()或executeQuery执行啊。。
你这里是ALTER更改,那应该是executeUpdate()才对啊。。。

preState.execute()这种情况是在用Statement查询的时候执行用的, ,,你好像执行方法没有用对。。。。

你看看。。你用查询的方法去执行ALTER更改的操作。。。所以会报错。。。。参数有问题。。。因为驱动程序执行时,按照查询的语法来执行的。。。
[解决办法]
ALTER 是修改表结构 
UPDATE 是修改表里的数据
完全2个意思~~

[解决办法]
insert into biao values(?,?,?,?)
update biao set a=?, b=?
select /delete from biao where a=? and b like ? and c>?

只有这些?的地方可以用绑定变量

只要是ddl就不可能用绑定变量了,直接拼接SQL
[解决办法]

探讨
insert into biao values(?,?,?,?)
update biao set a=?, b=?
select /delete from biao where a=? and b like ? and c>?

只有这些?的地方可以用绑定变量

只要是ddl就不可能用绑定变量了,直接拼接SQL

热点排行