免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4446 | 回复: 1

ps.setString()无效的问题讨论 [复制链接]

论坛徽章:
0
发表于 2010-04-23 17:24 |显示全部楼层
  1. public void delEmp(String ename) throws SQLException, ClassNotFoundException {
  2.   String name = "test4";
  3.   String sql = "delete from emp where ename=?";
  4.   Db db = new Db();
  5.   Connection con = db.getCon();
  6.   PreparedStatement ps = null;
  7.   
  8.   ps = con.prepareStatement(sql);
  9.   ps.setString(1, name);
  10.    ps.executeUpdate();
  11.   con.commit();
  12.   if(ps != null){
  13.    ps.close();
  14.   ps = null;
  15.   con.close();
  16.   con = null;
  17.   }  
  18. }  
复制代码
我的目的是使用rs.setString(1,name)用name替换上面sql语句中的占位符,但是试了语句执行完了,但是数据库中的内容还在。  
  反复的试,最后试出如果直接把test4写入sql语句中是可以成功的,说明 rs.setString(1,name)这一句没有起作用。   
  
  但是运行的时候也没有报错。如果把 rs.setString(1,name)中的1写成0或者2都是会报错的。
  
  
  
  后来找到一个高手,他初怀疑是我的db那一层写的问题,于是远程控制给我看。  
  左看右看也没能解决,排除了代码的问题。  
  分析认为有可能三个地方有问题:
  1. jdbc驱动
  2. oracle
  3. jvm 
  
  差不多12:00了,于是把class12.jar驱动换成ojdbc14.jar驱动,重新试结果也是一样的。  
  
   -----------次日------------------------------  
   
  今天想想会不是是orcale 的问题,因为之前为了学oracle在上面改了不少东西,于是干脆重装系统,过程如下:
  1. 装好windows xp pro sp2。 
  2. 装好jdk1.5和jre1.5
  3. 装oracle10g
  4. 在环境变量的path中把jdk1.5的路径放到oracle path前面
  5. 导入装系统前备份下来的数据。 
  6. 安装myeclipse6.01
  7. 跑昨天有总是的代码
  
  8. 重点,问题依旧。  
  
  我开始怀疑是不是我的java和oracle或者myeclipse的环境配置顺序有问题,请大家再讨论一下。   
  
  
  
  经访多人问题还没解决,如遇有意者请留下email,我把项目和数据库发过来,请帮我看看,谢谢!

论坛徽章:
0
发表于 2011-05-28 11:09 |显示全部楼层
我碰到跟您一样的问题了   我用varchar2  定义字符串  就可以   不知道你是不是这个问题  呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP