下面我将详细讲解Spring Boot整合JDBC的实现攻略。
一、前置知识
在学习本篇攻略之前,需要掌握以下技能:
- Spring Boot基础知识
- JDBC基础知识
二、整合JDBC
1.添加依赖
在pom.xml
文件中添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
其中,spring-boot-starter-jdbc
是Spring Boot提供的JDBC的Starter,包含了Tomcat连接池和Spring JDBC模块的依赖。h2
是一个嵌入式数据库,我们将使用它进行开发。
2.配置数据源
在application.properties
文件中添加数据源相关的配置:
spring.datasource.url=jdbc:h2:mem:test
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
以上配置是配置一个H2的内存数据库。
3.增加测试数据
为了测试整合效果,我们在项目中增加一些测试数据,用于从数据库中查询。
我们创建一个user
表,并预先填充一些数据:
CREATE TABLE user (
id INT(11) PRIMARY KEY,
name VARCHAR(20),
age INT(4)
);
INSERT INTO user VALUES (1, '张三', 21);
INSERT INTO user VALUES (2, '李四', 22);
4.创建JDBC模板并查询数据
在代码中,我们可以使用JdbcTemplate
类进行JDBC的操作。在这里,我们创建一个查询所有用户数据的方法:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
@Component
public class UserService {
@Autowired
private JdbcTemplate jdbcTemplate;
public List<Map<String, Object>> getUsers() {
String sql = "SELECT * FROM user";
List<Map<String, Object>> users = jdbcTemplate.queryForList(sql);
return users;
}
}
以上代码中,首先我们通过@Autowired
注解注入了JdbcTemplate
对象,并在getUsers()
方法中使用了jdbcTemplate.queryForList()
方法查询所有用户数据。可以看到,使用Spring Boot整合JDBC非常的简单。
5.运行测试
为了测试整合效果,我们创建一个测试类UserServiceTest
:
import com.example.demo.DemoApplicationTests;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import java.util.Map;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class UserServiceTest extends DemoApplicationTests {
@Autowired
private UserService userService;
@Test
void getUsers() {
List<Map<String, Object>> users = userService.getUsers();
assertEquals(2, users.size());
}
}
运行测试类,如果结果为true
,则表明整合成功。
三、示例代码
附上完整的示例代码:
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
@Component
public class UserService {
@Autowired
private JdbcTemplate jdbcTemplate;
public List<Map<String, Object>> getUsers() {
String sql = "SELECT * FROM user";
List<Map<String, Object>> users = jdbcTemplate.queryForList(sql);
return users;
}
}
import com.example.demo.DemoApplicationTests;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import java.util.Map;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class UserServiceTest extends DemoApplicationTests {
@Autowired
private UserService userService;
@Test
void getUsers() {
List<Map<String, Object>> users = userService.getUsers();
assertEquals(2, users.size());
}
}
以上就是Spring Boot整合JDBC的实现攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合JDBC的实现 - Python技术站