ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

尝试hikari和jdbctemplate

尝试hikari和jdbctemplate

试着基于jdbctemplate包装一个MysqlHelper类。
连接池采用springboot默认的hikari。
jdbctemplate提供基本的防注入,它的写法比jdbc好看,jdbc还需要putint,putstr。提供的另一个功能是结果集的转换。
写完,测试代码的面貌如下:

        var sqlhp = new SqlHelper();sqlhp.configAddress("localhost", 3306);sqlhp.configDbName("sjzwl");sqlhp.configUserPwd("root", "123");sqlhp.update("insert into tokens (uid, token) values(?, ?)", 123, "I'am");

运行,第一个报错是:

Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource

猜测是springboot自动初始化时,在配置文件里找不到相关参数,因为这个helper是手动初始化的。

解决方法,关闭springboot对DataSource的自动配置,具体在applicaiton.properties里加上一句:

spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

解决。接下来报错,类似:

java.lang.RuntimeException: Failed to get driver instance for jdbcUrl=jdbc:h2:~/testd

网上说两个原因,1,url写错了,2,缺驱动。原来mysql的驱动(姑且叫他驱动吧)还需要我自己下载啊。

在pom.xml里加上:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.x</version> <!-- 请替换为实际需要的版本号 -->
</dependency>


ctrl+s,触发eclipse的自动更新依赖,会看到maven依赖里多了一个mysql-connector-java-xxx.jar的文件,再运行就ok了。看来是缺驱动。

返回列表