一個項目實例:https://github.com/akeenhao/VBlog_Oracle
博客項目:賬戶管理、文章發表、權限管理、圖表生成等。數據庫原來是mysql,我改成Oracle。
1.sql語句方面
(0)建表:mysql:DROP TABLE IF EXISTS article ; oracle 會報錯,可以直接drop或create table。
(1) 主鍵生成策略:mysql 在主鍵列生成語句上加AUTO_INCREMENT;
????Oracle不支持,需要單獨處理:例如使用sequence或其他。
(1)特殊字符 `:mysql表名等都用``引起來,Oracle不需要,所以需要刪掉`。
(2)數據類型 int bigint 等。需要轉成number。例如: int(11)->number(11)
? ? ? ? 數據類型:varchar。需要轉成 varchar2
? ? ? ? 數據類型:text。需要轉成? clob
? ? ? ? 數據類型:datetime。需要轉成 TIMESTAMP(6)
(3)語法 index primary key等
(4)備注 comment:mysql的備注寫在每個字段的后面,
????????例如state number(11) DEFAULT NULL COMMENT '0表示草稿箱,1表示已發表,2表示已刪除',
? ? ? ? Oracle需要改成單獨的備注:comment on column TT_****.state? ?is '0表示草稿箱,1表示已發表,2表示已刪除';
(5)主鍵自增 auto increment
(6)唯一索引等
(7)主外鍵語句:
? ? ? ? 主鍵:
? ? ? ? mysql:在字段創建時加命令 PRIMARY KEY ( id ),
? ? ? ? oracle:alter table TM_A? add constraint PK_TE primary key (ID)
????????外鍵:
? ? ? ? mysql:CONSTRAINT article_ibfk_1 FOREIGN KEY ( cid ) REFERENCES category ( id )
? ? ? ? Oracle:alter table? table_** add constraint fk_g_id foreign key (ALA_ID)? references tm_aroup (ID);
(9) 特殊字符:user?uid 謹慎使用
(10)插入數據:& Oracle認為&size是變量,如果有字符串里含有&,則可以用‘fdasfd‘||’&‘||’fdsaf'來轉換。
2.程序方面
(1)主鍵生成策略? 用戶輸入、自動、uuid等
(2)使用mybatis xml文件修改 :遍歷的語法<foreach>要從代碼里進行,sql里不能活性使用。
(3)一個mybatismap里的sql,不能含有多個sql塊。
(4)主鍵自增實現,用trigger觸發器。
暫時這些。后續再有再補充。