POI Unable to read entire block问题解决办法<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

在网上看到一些关于这个问题的解决办法,甚至修改POI源代码,但至今没有一个完美的解决方案.我在遇到这个问题时是因为对现有excel添加时报错,新建excel时不报错,所以我先忽略这个错我,把创建excel的其他问题解决后,这个问题也就顺带解决了,就是这样.所以我推测可能是创建excel表的其他问题引起了这个问题.只要解决了其他问题,这个问题就不存在了.

 

POI中一定注意row的位置,合并单元格的位置,不能有错,不然错误会莫名奇妙.

 

用一个专门文件对Master表做常用的操作.

选用合适的设计模式对开发和维护很有帮助,至少代码量可以减少.一致性可以保证.

注意数据库的默认值设置和hibernate默认值设置(非空约束的区别)

如果初学者对J2EE设计模式感兴趣,可以用struts做一个增删改查的例子,将可以用到很多的好的设计模式,对照着学习,会加深对这些模式的理解.

 

java.lang.NoClassDefFoundError: org/hibernate/criterion/Criterion

 

没有加入hibernate3.jar,尤其是在RCP开发时plugin.xmlRuntime选项卡中的

classpath 列表框中添加

 

 

日期提取函数

MYSQL :Year(date),Month(date),DAYOFMONTH(date)

oracle:Extract(Year from date),Extract(MONTH from date),Extract(DAY from date);

 

hibernate中添加默认值对应oracle中的默认值字段

<property name="isenable" type="boolean">

<column name="ISENABLE" precision="1" scale="0" not-null="true" sql-type="number(1) default 0" />

</property>

 

oracle 数据库变量,数据类型命名,尽量以大写字母命名,多个单词的中间用下划线隔开

不要用骆驼或微软的匈牙利命名法,oracle中变量,表等对象命名不能超过30个字符.

 

异常:rcp项目作为eclipse启动, 如果在console中没有出现异常报错,但程序运行却有错,可以去查看一下RCP程序自己的运行日志.里面应该有报错信息.非常有用.,在类似如下路径下D:\runtime-pafirc.product\.metadata\.log

org.eclipse.core.runtime.AssertionFailedException: null argument:Action must not have null id

解决办法:

Action类中添加如下代码

public static final String ID = "pafirc.edu.cn.diagram";

Action的构造函数中添加如下代码:

setId(ID);

 

 

 

org.hibernate.NonUniqueObjectException:a different object with the same identifier value was already associated with the session

同一个session关联了两个相同标识却是不同实体,可能是发生了主键或唯一性约束

 

 

org.hibernate.exception.SQLGrammarException: could not execute query

多数可能是SQL,HSQL等的语法错误或对oracle的权限不足.

或者在jdbcSQL语句中最后的逗号(;)MYSQL中可以保留,oracle中必须去掉

否则出现语法错误

 

org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update

违反数据库约束,unique constraint

 

org.hibernate.MappingException: Unknown entity:

hbm 文件和java中的class不存在,可能是拼写错误.或者是文件路径不对,找不到文件.

ORA-00920: invalid relational operator

可能是SQL语句写错了,检查里面运算符是不是有错,:多加了括号,有未知的字段

 

ORA-00904: invalid column name 无效列名

ORA-00942: table or view does not exist 表或者视图不存在,或权限不够

ORA-01400: cannot insert NULL into () 不能插入空值

ORA-01403: NO_DATA_FOUND 没有数据  

ORA-00051: TIMEOUT_ON_RESOURCE    资源等待超时

ORA-01422: TOO_MANY_ROWS    返回多于一行

ORA-01476: ZERO_DIVIDE 0错误

ORA-00936:  缺少表达式,或用了oracle保留字

ORA-00933:  SQL 命令未正确结束

注意oracle子查询表达式和mysql中的不同