本节我们来学习一下SpringBoot整合JdbcTemplate。整合过程中非常简单,为了代码的简单展示,我将采用SpringBoot单元测试来给大家演练。
1、准备依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- JdbcTemplate依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
2、配置JDBC
在application.properties中配置JDBC的相关参数
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=12345
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
3、准备数据库表
CREATE TABLE `t_user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(32) DEFAULT NULL COMMENT '姓名',
`age` int(3) DEFAULT NULL COMMENT '年龄',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
4、编写Service层
这里我给大家简单建立一个用户的服务,简单执行保存操作。
/**
* @author 小吉
* @description 用户接口
* @date 2020/6/8
*/
public interface UserService {
void save(String name,int age);
}
/**
* @author 小吉
* @description 用户实现
* @date 2020/6/8
*/
@Service
public class UserServiceImpl implements UserService{
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void save(String name, int age) {
jdbcTemplate.update("insert into t_user values(null ,?,?)",name,age);
}
}
5、单元测试
SpringBoot的单元测试需要用到两个注解**@RunWith**、@SpringBootTest
/**
* @author 小吉
* @description springboot整合JdbcTemplate
* @date 2020/6/8
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserServiceTest {
@Autowired
private UserService userService;
@Test
public void testSave() {
userService.save("小黄", 5);
}
}
如果做到这一步进行单元测试,控制台是会有报错信息。
出现这种情况的原因有:
1)没有SpringBoot的启动类
2)单元测试类不在SpringBoot启动类所在包或子包下。
解决上述两点问题,可以正常单元测试。