赞
踩
今天的任务是把用
mysql
数据库编写的程序转成oracle
,这也是我第一次用oracle
可谓是错误百出啊。下载oracle
?NO在公司我们不需要本地下载oracle
,(如果你是想自己学习当我没说,不魔法下载很慢,有时间我会写一篇系统性的文章写oracle
的运用),当我下载完oracle
本地数据库看收到怀疑的眼神我悟了,只需要下载一个可视化界面我们远程连接他的数据库就好了(这里我使用的是Oracle SQL Developer这里附上下载地址)。哈哈第一次嘛,难免难免,作为拥有==bug
系统==的我习以为常,不会就查,再不会就问,没有解决不了的的问题!
需要什么版本可以自己搜索
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.11.0.0</version>
</dependency>
<!-
如果不加会报下面的错误
Cause: java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK
-->
<dependency>
<groupId>com.oracle.database.nls</groupId>
<artifactId>orai18n</artifactId>
<version>19.11.0.0</version>
</dependency>
application.yml
配置喜欢用
application.properties
的兄弟可以自己去转换
spring: datasource: # 请看3.2 # SID #url: jdbc:oracle:thin:@127.0.0.1:6666:ocrl # 服务名 url: jdbc:oracle:thin:@127.0.0.1:6666/ocrl username: username # 根据实际填写 password: password # 根据实际填写 # 请看3.1 # 老ojdbc8以前 # driver-class-name: oracle.jdbc.driver.OracleDriver # 新 driver-class-name: oracle.jdbc.OracleDriver max-idle: 10 max-wait: 10000 min-idle: 5 initial-size: 5
这个是一个警告,不处理不影响运行,我大抵是有点代码洁癖
出现原因:这个警告是我在网上看oracle配置时按照广大网友的推荐cv,成功警告。主要原因是
ojdbc
的版本问题
# 老版本使用ojdbc8以下,当然我没咋尝试有小伙伴感兴趣可以出个各个版本测试,一点要记得@我
driver-class-name: oracle.jdbc.driver.OracleDriver
# 新版本使用
driver-class-name: oracle.jdbc.OracleDriver
出现原因:yml的
url
配置有问题可以打开你的数据库属性看看你的连接方式是
SID
还是用服务名
#SID方式
url: jdbc:oracle:thin:@127.0.0.1:6666:ocrl
#服务名方式
url: jdbc:oracle:thin:@127.0.0.1:6666/ocrl
这个错误出现在
sql
语句中,可以查看一下你的mapper
中的sql
语句最后是不是加了分号,在oracle
中测试加分号的也能运行但是写在代码中就不能运行了,去掉即可
插入时由于我加了两个字段导致,前端少传导致,解决方法①修改前端,②通过if判断是否为空,③如果确定要插入空数据,需要在启动类中加入下面的内容详情可见这篇文章
/*************对于是ORACLE 数据库的 mybatis必须增加如下的配置*********Start */
@Bean
public ConfigurationCustomizer configurationCustomizer() {
return new MybatisPlusCustomizers();
}
class MybatisPlusCustomizers implements ConfigurationCustomizer {
@Override
public void customize(org.apache.ibatis.session.Configuration configuration) {
configuration.setJdbcTypeForNull(JdbcType.NULL);
}
}
/*************对于是ORACLE 数据库的 mybatis必须增加如下的配置*********End */
这个问题出现在字段属性上,在
mysql
中对于特殊的关键字我们会加一个反单引号==`==进行区分,但是他在oracle
中没有这种操作,可以在oracle
中运行一下在放到mapper.xml
中
我是在插入语句出现的这个,最后排查发现在value中少写了一个
,
逗号
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。