记一次springboot + Druid + mybatis的大坑

本文记录了一次使用Druid连接池遇到的配置错误经历,详细描述了从初次配置失败,到排查出用户名/密码配置错误的过程,最终通过debug手段定位并解决问题,避免了因驱动版本冲突而误判。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

听说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);
    }

}

在获取连接处打个断点,

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

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

再次测试,成功!!!

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

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

Spring Boot是一种用于构建Java应用程序的框架,而Druid是一种开源的Java数据库连接池。MyBatis Plus是MyBatis的增强工具,可以简化数据库操作。将这三者整合在一起,可以提高开发效率和代码的易读性。 首先,我们需要在项目的pom.xml文件中添加引用依赖。可以通过Maven或Gradle来管理依赖项。在pom.xml中添加Spring Boot、DruidMyBatis Plus的相关依赖。 接下来,在application.yml或application.properties文件中配置数据库连接信息和Druid的相关配置。包括数据库的URL、用户名、密码以及Druid的一些监控和性能统计配置。 然后,创建一个DataSourceConfig类,用于配置Druid数据源,并使用@Configuration和@Bean注解将它声明为一个Bean。在该类中,可以设置连接池的一些属性,例如最小连接数、最大连接数、初始连接数等。 接着,创建一个MyBatisConfig类,用于配置MyBatis Plus。在该类中,可以配置MyBatis的类型别名、Mapper扫描路径和拦截器等。 最后,创建一个启动类,并使用@SpringBootApplication注解将其声明为Spring Boot应用程序的入口。在启动类中,可以使用@MapperScan注解指定MyBatis的Mapper接口所在的包路径,并在main方法中调用SpringApplication的run方法来启动应用程序。 通过以上步骤,我们就完成了Spring Boot、DruidMyBatis Plus的整合。现在可以在项目中编写Mapper接口和对应的XML文件,用于定义数据库的增删改查操作。并使用@Service或@Repository注解将Mapper接口声明为Spring组件,从而可以在其他地方直接使用@Autowired注解进行自动注入。 除此之外,还可以利用MyBatis Plus的一些特性,如自动生成代码、分页查询、多数据源配置等,进一步提高开发效率。 总结起来,Spring Boot、DruidMyBatis Plus的整合可以简化数据库操作,并提供了一些方便的特性和工具,让开发变得更加高效和简单。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值