extjs调用后台oracle jdbc驱动无法进行删除和查询的问题(ps.executeUpdate())

这个问题折磨了一周多,终于搞定,记录一下。

本人对extjs毫无了解,这次接触的项目前台全部使用了该框架,整体的有了一个细微的了解,感觉extjs的缓存是个问题,也许所有的前端的框架的缓存都是需要经常去处理的。

 

这次遇到的是jdbc中删除数据无效的问题。很郁闷......

 

很简单,代码如下:

    for (; rowIterator.hasNext(); ps.executeUpdate())   
    {  
        DBRow row = (DBRow) rowIterator.next();  
        Query query = queryParse.parseDeleteQuery(row, tableID);  
        ps = getPreparedStatement(conn, query.getQueryText(), query.getValues());  
    }  


具体的实现是在deleteQuery中拼接了delete语句,使用的是?传参的形式,但是最后在executUpdate的时候,发现无法删除指定的数据,而且没有抛出exception。

解决调试:

1.在plsql中试过了可以删除,因此不涉及用户删除权限问题。

2.conn已自动设为autocommit为true,commit也无效

解决提示:

发现库中之前的表数据可以进行删除和查询操作,新录入的不可以

网上摘录:

userid char(20) primary key,
char的长度是固定的,比如说,你定义了char(20),即使你插入abc,不足二十个字节,数据库也会在abc后面自动加上17个空格,以补足二十个字节;
nvarchar和nvarchar2是长度不固定的
nvarchar不区分中英文,比如说:你定义了nvarchar(20),你可以存入20个英文字母/汉字或中英文……

 

解决:发现新创建的表中的结构确实为char类型,但是之前试过改为varchar2,可是没有生效。

原因就在于extjs的缓存问题,清理tomcat下work目录,将deployment下项目删除重新进行部署,问题解决。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值