兼容Oracle跟Mysql的表字段设计所踩过的坑坑...

6544 次阅读 by 九九 2014-05-12 | 标签:摇滚 音乐 TDD MySQL 问题 Java 总结

最近在折腾Oracle(已经距上一次玩Oracle已经有快一年了...),之前的框架里只完成了对Mysql的驱动,没有涉及Oracle的东西。有一项目之前基于MySQL实现了一个版本,我还以为换到Oracle只要改改表结构啥的,就可以直接跑。唉,我自恋病又犯了。。。。。。坑的差点起不来~ 以下我列一下MySQL字段里的坑: 1. datetime、date、time、timestamp类型的字段别用。 理由:Oracle里只有一个date类型的字段,然后它里面只要是涉及到date类型字段的操作(包括查询),都需要在SQL用一个
to_date(value, format)
的函数才能成功运行,要不然,查询的结果会是这样:
5/1/2015 10:09:09
或是插入不能成功。 解决方案:我是已经全整成Integer了,然后在程序里来进行数值->时间的转换,如
Datetime.datetimeToTimestamp("2014-05-01 23:22:20"); //从时间转到Timestamp数值
2. text字段类型需要注意。 理由:Oracle里没有text,Mysql里的text都会转成clob,但是这种数据格式不能用
rs.getString(loc);
这样的方法得取得值,需要用:
java.sql.Clob clob = rs.getClob("CLOBATTR");
Reader inStream = clob.getCharacterStream();
char[] c = new char[(int) clob.length()];
inStream.read(c);
//data是读出并需要返回的数据,类型是String
data = new String(c);
inStream.close();

 
这样的代码才能读取得到。 目前是这些,坑还在继续中....

评论(3)

暂无评论!


PS:多打字可以减肥哦~234字以内。支持表情:


Top