SpringBoot 集成Spring JDBC

Posted chy_18883701161

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot 集成Spring JDBC相关的知识,希望对你有一定的参考价值。

 

(1)在pom.xml中添加依赖

        <!--spring-jdbc的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

        <!--mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

 

 

 

(2)在springboot的配置文件中添加数据库连接信息

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/my_db?serverTimezone=GMT
spring.datasource.username=chy
spring.datasource.password=abcd

 

 

 

(3)在dao层注入JdbcTemplate,通过JdbcTemplate操作数据库

@Repository
public class UserDao implements UserDao{
    private JdbcTemplate jdbcTemplate;

    @Autowired
    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    @Override
    public String queryUserById(Integer id){
        String sql = "select username from user_tb where id=?";
        String username = jdbcTemplate.queryForObject(sql, String.class, id);
        return username;
    }
}

 

 

 

踩过的坑:

为了图方便,我直接写了dao,没写service、controller,然后在引导类中new了dao层来测试,一直报错:空指针异常。

配置、dao层都没错,sout(jdbcTemplate),为空。老老实实写了service、controller就好了。

在springboot中,未使用<bean>显式配置依赖(数据源)、需要spring容器自动构建依赖、注入依赖的bean不能直接new,直接new出来是空的。

 

以上是关于SpringBoot 集成Spring JDBC的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot 2.X集成 jdbc自动配置原理探究

【sharding-jdbc】spring boot 集成sharding-jdbc 完成一主多从读写分离

[非SpringBoot方式]Spring 5.2.6 集成 Spring session jdbc 2.3.0

[非SpringBoot方式]Spring 5.2.6 集成 Spring session jdbc 2.3.0

springboot集成jdbc

使用 @MockBean 的 Spring Boot 集成测试不释放 jdbc 连接