试着基于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了。看来是缺驱动。