这是上上周的事情,我们甲方强烈要求使用oracle数据库,也就上学的时候玩过Oracle也忘得差不多了,所以一直不想弄,我们开会产品说要提测了,我还没弄,这不得哐哐开始干活,过程吧还算顺利,主要是涉及到了基础,还没有很高深,拖了一周写博客是因为因为上周新冠了,你懂得,再者这篇真的很基础 可能还很乱,废话不多说,开始了!
首先不好意思哈,用的是docker,拉了一个比较久的镜像,但是万变不离其宗
docker pull docker.io/truevoly/oracle-12c
docker嘛
docker run --restart always -d -p 1521:1521 -v D:\docker\data_temp:/home/oracle/data_temp --name orac truevoly/oracle-12c
-d后台执行 -v 宿主机路径:容器路径
-p 宿主机端口:容器端口
上面的命令会返回镜像id,根据id可以启动情况/安装i进度
docker logs -f 镜像id
docker ps 是一堆运行中的镜像,根据上面指定的名字找到Oracle
docker exec -it id /bin/bash
执行
sqlplus system/oracle@//localhost:1521/xe
进入到数据库内
修改密码
user后面是用户名,by后面是密码,这个命令执行的是相当的顺利
创建用户:
create user username identified by password;
创建了用户记得授权,要不啥都干不了,这个授权这块 卡了我一下
grant create session to username;
grant connect,resource to username;
示例:
grant dba to username;
grant create session to username ;
GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO username;
设置密码的有效期为不限制
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
上面的这个流程吧很完整,还有安装oracle_11g ,相对来说是比较多,还得改/etc/profile ,类似与配置环境变量一样,我不知道是cmd的问题还算window的问题,编辑那个文件 编辑不了,乱码乱到不行,后来docker cp 改了上传,感觉没起作用
xe上面出现过,表空间 SID这块我其实还没弄明白,菜鸟一览无余,这块先欠着
创建表空间需要指定路径,这个路径因为我是docker 所以还不能直接用宿主机的命令,上面Oracle启动的时候也做个路径的挂载但是吧,不知道为什么 不起作用,后来请教朋友 ,查了select * from dba_directories; 表 取那里面的路径创建了表空间
create tablespace AUTH datafile '/u01/app/oracle/oradata/xe/auth.dbf' size 500M autoextend on;
create user hjl identified by 123456 default tablespace AUTH;
grant dba to hjl ;
commit;
然后我是在hjl这个用户下创建的表,这个创建表和mysql还算有点细微差别的
text用clob替换
datetime用date替换
数值类型使用NUMBER
没有枚举 用字符串替换了
索引也是单独表之外创建
CREATE INDEX index_user_id_system ON login_log ( user_id, system_id ); CREATE UNIQUE INDEX uniq_username ON user_info ( username, is_deleted );
我写注释 报错 去掉了,写默认值 报错 去掉了 hh 不好意思,这也算是见招拆招了,‘ 号也去掉,表不区分大小写这倒没什么,但是,有些关键字报错了也是换个名字避开了
mybatis-plus那个mapper文件里面 双引号去掉了 最后的;去掉了
as别名 的那个as去掉了
limit去掉了,有rownum倒是可以解决就是不如我查list处理取第一个
一个报错全局查找 去掉,还加了
@TableField(value = "res_context", jdbcType = JdbcType.VARCHAR)
感觉用处不大,又感觉是有用处
jdbc-type-for-null: 'null' 这个东西加配置文件里面是没什么,null依然报错
零零碎碎的就先这样,比较菜的博客 开启新的征程,这个排名也就落到2万+了,我很惭愧
这个项目把 周末加班自己测了一遍 结果嘿 周一告诉我这个东西让别人做了,我不需要接,这个心情吧 七上八下 五味杂陈