本文主要是介绍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下项目删除重新进行部署,问题解决。
这篇关于extjs调用后台oracle jdbc驱动无法进行删除和查询的问题(ps.executeUpdate())的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!