- 论坛徽章:
- 0
|
- 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语句中是可以成功的,说明 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,我把项目和数据库发过来,请帮我看看,谢谢! |
|