这个问题折磨了一周多,终于搞定,记录一下。
本人对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下项目删除重新进行部署,问题解决。