欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

记一次springboot + Druid + mybatis的大坑

程序员文章站 2022-07-15 11:36:29
...

听说Druid连接池很不错,性能好还提供监控,决定在项目中使用.网上查了下使用方法,感觉还挺简单的,一通复制粘贴,监控页面成功打开,我还以为成功了,接着整合mybatis,出事了,先报

init datasource error, url: jdbc:oracle:thin:@127.0.0.1:1521:orcl
java.sql.SQLException: 调用中无效的参数

我以为是路径写错了,一通检查,各种尝试,错误依旧. 看到网上有人说是驱动程序版本不对,冲突了,我从oracle客户端拿了jdbc6.jar安装到maven仓库,再测试,这次报:

ERROR com.alibaba.druid.pool.DruidDataSource - {dataSource-1} init error
java.sql.SQLException: ORA-01017: invalid username/password; logon denied


用户名/密码不对? 打开plsql测试,正常连接,没办法,只能debug看下使用的用户名/密码对不对,不得不说debug真是神器,出现任何程序上的问题都是可以debug一波.

先搞个测试类:

@SpringBootTest(classes = {com.yct.statistics.Application.class})
@RunWith(SpringRunner.class)
public class DruidTest {
    @Resource
    private DataSource dataSource;

    @Test
    public void getConnection() throws SQLException {
        Connection connection = dataSource.getConnection();
        System.out.println(dataSource.getClass());
        System.out.println(connection);
    }

}

在获取连接处打个断点,

记一次springboot + Druid + mybatis的大坑

用户名/密码为空?瞄一下application.yml

记一次springboot + Druid + mybatis的大坑

靠,真的坑,这配置都是网上拷的,果然靠不住,改成如下:

记一次springboot + Druid + mybatis的大坑

再次测试,成功!!!

再把oracle驱动换回来,测试也成功!说明跟驱动版本没什么关系.

哎!白白浪费一下午,以后程序出现什么问题,先本地测试,debug看下问题,慢慢调,相信自己也能处理绝大多数的bug