求助:ps.setString()无效
public void delEmp(String ename) throws SQLException, ClassNotFoundException {
  String name = "test4";
  String sql = "delete from emp where ename=?";
  Db db = new Db();
  Connection con = db.getCon();
  PreparedStatement ps = null;    
  ps = con.prepareStatement(sql);
  ps.setString(1, name);
   ps.executeUpdate();
  con.commit();
  if(ps != null){
   ps.close();
  ps = null;
  con.close();
  con = null;
  }   
}   
复制代码我的目的是使用rs.setString(1,name)用name替换上面sql语句中的占位符,但是试了语句执行完了,但是数据库中的内容还在。  
反复的试,最后试出如果直接把test4写入sql语句中是可以成功的  
哪位高手能帮忙看看!!!  
------解决方案--------------------
你的表结构中ename是char(N)型的吧。
这样,用setString肯定有问题。
解决办法,一是使用varchar(N)。
二是,如你所说,拼sql
三是,使用另一个API, ((OraclePreparedStatement)pstmt).setFixedCHAR(1, name);
详情见我的短文:
http://hi.baidu.com/hexiong/blog/item/9b716b60404d1d48ebf8f884.html