我接触的项目大多是采用oracle数据库开发的,性能和功能都没的说,不过就是太重量级了。如果是做单独的项目,问题不大,如果是做产品软件,像一般小应用、工具等,对独立发行部署有很大要求,再加上成本等方面考虑,采用一个轻量级数据库是很必要的。
最近,用h2做了几个项目,不得不说:H2数据库是个好东西!
数据库要从oracle转到h2上来,一般是用plsql导成sql语句,然后在h2上执行。h2有oracle语法兼容连接模式,可以接受一些oracle的sql特殊语法,并且支持序列,有dual表,翻页语法都兼容,这样程序的改动量一下子变得最低。除去过程和函数等需要更改外,在执行数据插入sql时可能遇到to_date或to_char之类的函数,可以先为h2增加连个函数即可搞定:
drop alias if exists TO_DATE; create alias TO_DATE as $$ java.util.Date toDate(String s,String pattern) throws Exception { pattern = pattern.replaceAll("mm","MM"); pattern = pattern.replaceAll("hh24","HH"); pattern = pattern.replaceAll("mi","mm"); return new java.text.SimpleDateFormat(pattern).parse(s); } $$; drop alias if exists TO_CHAR; create alias TO_CHAR as $$ String toChar(BigDecimal x, String pattern) throws Exception { return new java.text.DecimalFormat(pattern).format(x); } $$;