导出DB2 v8的建库脚本,注意到了概念模型中的TEXT被转成DB2的 Long VARCHAR。使用的是DB2 type4链接方式,对应的jar文件是db2jcc.jar,这个文件居然将近3兆,是db2java.zip的三倍还不止。把db2jcc.jar 扔到 tomcat的lib目录(我不想把这些驱动包放到项目中,这样会让项目很大),DB2的配置如下:
<property name="connection.driver_class">com.ibm.db2.jcc.DB2Driver</property>
<property name="connection.url">jdbc:db2://localhost:50000/dlog40</property>
<property name="connection.username">db2admin</property>
<property name="connection.password">moabc</property>
启动Tomcat正常,数据库也能连上,但是执行程序时报42074错,查了文档说是对象没找到之类的。打开控制中心一看,dlog40数据库对应的模式是liudong,也就是我的当前用户名。再修改配置中的用户名和口令就很正常了。
DLOG4J在做数据库兼容测试的几个重点是:自增长字段、时间类型字段、长文本字段。自增长字段在DLOG4J 4.0中已经不再使用;时间字段押后再说。测试长文本字段的时候发一篇很长的文章,结果报错:字符串长度超过最大限制32767。于是把LONG VARCHAR改为CLOB后问题解决。
另外一个问题就是时间字段,在概念模型中设置的类型是datetime,而转成DB2的时候就变成了date,于是所有的日期时间数据中的时间全部清零。需要手工将date改为DB2的TIMESTAMP。但是在DB2控制中心中想把DATE改为TIMESTAMP是很麻烦的,还需要填写一个什么转换表达式。另外DB2在改表结构的时候是很土的,它的做法是导出数据、删除表、重建表、导入数据。我的天啊。
这是目前位置发现的两个会影响运行的问题,这两个问题都可以通过导出SQL脚本的时候进行物理模型的调整得以解决。
总之,PowerDesigner的概念模型在转成例如Oracle/DB2/SQL Server都会多多少少有一两个问题,mysql就不会。
心情: 一般