zoukankan      html  css  js  c++  java
  • 基于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朋友们,分享一些他们的技术见解和生活故事。

    更多信息请关注公众号:「软件老王」,关注不迷路,IT技术与相关干货分享,回复关键字获取对应干货,本文版权归作者软件老王所有,转载需注明作者、超链接,否则保留追究法律责任的权利。
  • 相关阅读:
    java实现扑克牌排列
    java实现扑克牌排列
    java实现扑克牌排列
    java实现扑克牌排列
    java实现扑克牌排列
    java实现平面点最小距离
    java实现平面点最小距离
    java实现拍7游戏
    java实现拍7游戏
    using_where, Using temporary ,using_filesort 分享
  • 原文地址:https://www.cnblogs.com/ruanjianlaowang/p/14645602.html
Copyright © 2011-2022 走看看