<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          基于mysql的shiro項目轉(zhuǎn)oracle數(shù)據(jù)庫

          共 1061字,需瀏覽 3分鐘

           ·

          2021-04-19 02:15

          1、問題說明

          改造以前的一個shiro項目,以前數(shù)據(jù)庫用的mysql,要更改成oracle,記錄下,希望能幫到有需要的朋友。

          2、解決方案

          因為數(shù)據(jù)庫中表結(jié)構(gòu),也就6個張表(5個權(quán)限表+一個日志表),原方案是想根據(jù)數(shù)據(jù)庫字段,轉(zhuǎn)到pownerdesigner中,然后再轉(zhuǎn)出來,后來發(fā)現(xiàn)太麻煩放棄了。

          2.1 使用navicat premium

          (1)通過navicat premimum 連接oracle數(shù)據(jù)庫。

          1b50fd8df3dd326a0a3dc780fc69d661.webp

          (2) 選中數(shù)據(jù)庫,右鍵選中轉(zhuǎn)儲SQL文件,然后選擇僅結(jié)構(gòu),就能導(dǎo)出oracle建表sql了。

          77ddd08bc53311c68f8e5e098b5f00ee.webp

          2.2 oracle sql 與mysql的不同點

          (1)cancat函數(shù),連接字符串。

          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中執(zhí)行

          報錯信息:

          6fd377bd2178b892483f1c7e1c1b2f05.webp

          網(wǎng)上說明:

          ea9908c71a3f89decd16c4bac52836c5.webp

          軟件老王真實使用情況,oracle中多個concat嵌套:

          f2e593f515df558395760ed49fdfb386.webp

          mybatis中使用:

          fa7e052b1ad87727b19d81d20e377ea4.webp

          (2)oracle中不能執(zhí)行insert values插入多條記錄。

          7f59cfad96d467b0506d191fa753591f.webp

          (3)通過navivat或者pownerdesiner導(dǎo)出的oracle建表語句,需要把雙引號或者單引號替換為空,否則會出現(xiàn)大小寫問題,導(dǎo)致一些不必要的問題。

          (4)給oracle中表字段設(shè)置默認(rèn)值

          導(dǎo)出的后默認(rèn)值可能會沒了,假如沒有了,需要設(shè)置下。

          如下:alter table 表名稱 modify 字段名 default 具體值;

          例如:alter table sys_user modify status default 1;

          (5)老shiro項目中,沒有用到自增主鍵,用的邏輯主鍵,所以沒有主鍵問題,假如用到mysql項目中用到自增主鍵的朋友,還是有些問題的,mysql可以直接設(shè)置自增主鍵,oracle中需要新建sequence。


          更多信息請關(guān)注公眾號:「軟件老王」,關(guān)注不迷路,軟件老王和他的IT朋友們,分享一些他們的技術(shù)見解和生活故事。


          瀏覽 62
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天插日日射 | 在线国产中文字幕 | 久热官网| 色婷婷中文在线 | 美国少妇xxxx内射 |