天天看点

使用mybatis链接oracle数据库出现账号密码错误解决

使用mybatis链接oracle数据库步骤

最近oracle老师布置下来了作业,要求使用传统的java代码链接oracle数据库做一个小程序,因为我已经很熟练的掌握了ssm框架的开发,以前用的是mysql,现在就尝试尝试oracle来练练手。

  • 问题一 oracle 的jar包 maven不支持

由于Oracle授权问题,Maven3不提供Oracle JDBC driver,为了在Maven项目中应用Oracle JDBC driver,必须手动添加到本地仓库。

oracle 的坑来了 不能直接方便的导入依赖必须,手动添加,没事咱们一步步解决

首先下载oracle 的jar包 我的云服务器装的是oracle 12c 12.1.0.2.0版本 因此我选择ojdbc7版本的jar包

查看 oracle 版本的 select 语句如下

select * from v$version;

然后想办法搞到ojdbc的jar包 如同这样

使用mybatis链接oracle数据库出现账号密码错误解决

然后执行maven的这条命令 把此jar包发布到 本地仓库

mvn install:install-file -Dfile=/e:/ojdbc7.jar -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.1.0.2.0 -Dpackaging=jar

删除线表示自己需要更改的,这句话的意思是把你的本地jar包按照指定的groupId,artifactId,Dversion

发布到本地仓库

然后在maven 引用

使用mybatis链接oracle数据库出现账号密码错误解决

问题二 oracle 的链接驱动和mysql的也有区别

配置数据库连接数据

使用mybatis链接oracle数据库出现账号密码错误解决

在spring中配置数据源

<!-- 2.配置数据源  主要是sqlsessionfactory里要使用  设置数据源   com.alibaba.druid.pool.DruidDataSource -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="${jdbc.driver}"></property>
		<property name="url" value="${jdbc.url}"></property>
		<property name="username" value="${jdbc.username}"></property>
		<property name="password" value="${jdbc.password}"></property>
		<property name="maxActive" value="10" />
	</bean>
           

这是需要的链接信息 我把它放到一个.perproties文件中以便修改,实际开发也是这样写的,但坑就是在这里出现的

随后就开始一些小的测试用例,发现一直报这个错误

使用mybatis链接oracle数据库出现账号密码错误解决

耿直的我一直调试账号密码,网上说账号被锁定之类的问题都没有解决。

我的情况是这样,我的sqldeveloper可以登录,用老师的原生jdbc的代码也可以查询运行的出来,就是到mybatis这里死活说我账号密码错误,崩溃中,我甚至怀疑mybatis是不是支持oracle。

经过5个小时的测试和排查,我突然意识到,是不是字符编码问题,我的.perproties是GBK编码,是不是有问题

然后就改编码为utf-8,然而还是不行。。。

问题的解决

使用mybatis链接oracle数据库出现账号密码错误解决

运行成功 请和上边的黑色代码块对比,这里没有用“”${XXX}“”来动态的获取数据库连接信息,而是写死这样的,极不推荐这样做(代码修改扩展的时候十分的头疼),但是在这里就莫名其妙的没有异常,并且运行成功。。。心累。

oracle。你这么坑,你让我怎么爱上你。