jeecms是一款国产的java版cms系统,最近要做一个网站,综合多种考量,还是觉得国产的用起来顺手,所以选择了jeecms。但是公司一般都是使用oracel数据库的,jeecms默认使用mysql数据库,oracle版本的貌似需要收费吧。所以就想手动把数据导入oracle。接下来简单介绍一下。

jeecms源码中提供了建表的mysql的sql文件,我们首先安装mysql数据库,按照官网的说明部署jeecms。接下来使用一款sql转化工具——convert mysql to oracle。

这款工具可以把mysql中的表以及数据导入到oracle,功能非常强大,但是在转化中会报一部分错误,先不用管这些错我,接下来修改db.properties文件,当然是修改成oracle的了。

启动tomcat,发现报错了。哈哈···没有关系,看一下,报的是模板的错误,jeecms使用的是freemarker来展示前台数据。错误地方在content.title。仔细想想这不应该是模板的问题,而是在转化数据的时候报错所致。然后我就找到了jc_content这个表,果然,表是空的,什么数据都没有。

打开sql文件,找到jc_content表的插入sql语句,转化成oracle语句,执行,发现日期会报错,干脆把数据的日期全部写成sysdate,我是自己写的工具转换的,一条条手工转换的话不堪重负啊,但是由于公司电脑是不允许插U盘的,代码没办法导出来,可悲啊·········

导入之后重启tomcat打开jeecms登录页面,登录,发现咦,报什么jc_log的id不能插入null,原因是这样的,执行登录的时候回记录登录日志,往jc_log表中插入数据,但是由于在mysql中id是自增长的,但是id自增长需要用到sequence,所以就需要在数据库建sequence了``

create sequence seq_id 
maxvalue 9999999
increment by 10 
start with 1000```
sequence创建好了之后 ,修改hibernate实体映射文件,修改id那一项```<generator class="sequence">
<param name="sequence">seq_id</param>
</generator>

问题是需要修改每一个配置文件,就是这么惨,我在尝试写个工具改,加油喽