基于mysql的shiro项目转oracle数据库

1、问题说明

改造以前的一个shiro项目,以前数据库用的mysql,要更改成oracle,记录下,希望能帮到有需要的朋友。

2、解决方案

因为数据库中表结构,也就6个张表(5个权限表+一个日志表),原方案是想根据数据库字段,转到pownerdesigner中,然后再转出来,后来发现太麻烦放弃了。

2.1 使用navicat premium

(1)通过navicat premimum 连接oracle数据库。

(2) 选中数据库,右键选中转储SQL文件,然后选择仅结构,就能导出oracle建表sql了。

2.2 oracle sql 与mysql的不同点

(1)cancat函数,连接字符串。

mysql中可以连接多个字符串;oracle只能连接两个,需要连接多个的话,oracle中需要做嵌套。

mysql中:

SELECT count(0)
FROM sys_user su_a
LEFT JOIN sys_user su_b
ON su_b.id = su_a.create_id
LEFT JOIN sys_user su_c
ON su_c.id = su_a.update_id
WHERE su_a.deleted = 1 AND su_a.username LIKE concat('%', '老王', '%');

在oracle中执行

报错信息:

网上说明:

软件老王真实使用情况,oracle中多个concat嵌套:

mybatis中使用:

(2)oracle中不能执行insert values插入多条记录。

(3)通过navivat或者pownerdesiner导出的oracle建表语句,需要把双引号或者单引号替换为空,否则会出现大小写问题,导致一些不必要的问题。

(4)给oracle中表字段设置默认值

导出的后默认值可能会没了,假如没有了,需要设置下。

如下:alter table 表名称 modify 字段名 default 具体值;

例如:alter table sys_user modify status default 1;

(5)老shiro项目中,没有用到自增主键,用的逻辑主键,所以没有主键问题,假如用到mysql项目中用到自增主键的朋友,还是有些问题的,mysql可以直接设置自增主键,oracle中需要新建sequence。


更多信息请关注公众号:「软件老王」,关注不迷路,软件老王和他的IT朋友们,分享一些他们的技术见解和生活故事。

posted @ 2021-04-11 21:18  软件老王  阅读(99)  评论(0编辑  收藏  举报