天天看点

SpringBoot 内置数据源 Hikari + JdbcTemplate 持久化技术 + MySql 数据库 代码示例

SpringBoot 内置数据源 Hikari + JdbcTemplate 持久化技术 + MySql 数据库 代码示例

- pom中添加相关依赖:

<!--JdbcTemplate-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

<!--mysql-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

<!--lombok-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

<!--test-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
           

- 配置yml文件:

spring:
  datasource:
    # 注:MySQL8.0.28版本
    url: jdbc:mysql://localhost:3306/springboot?serverTimezone=UTC
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: user
    password: 123456
    hikari:
      maximum-pool-size: 50
           

- 实体类:Book.java

import lombok.*;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Book {

    private String id;
    private String name;
    private String description;
    private Float price;

}	
           

- 测试类:

import com.example.springboot.entity.Book;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

@SpringBootTest
public class SpringBootJdbcTemplateTest {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Test
    void contextLoads() {

        String sql = "select * from tbl_book";

//        List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
//        System.out.println(maps);

        RowMapper<Book> rm = new RowMapper<Book>() {
            @Override
            public Book mapRow(ResultSet rs, int rowNum) throws SQLException {
                Book temp = new Book();
                temp.setId(rs.getString("id"));
                temp.setName(rs.getString("name"));
                temp.setDescription(rs.getString("description"));
                temp.setPrice(rs.getFloat("price"));
                return temp;
            }
        };

        List<Book> bookList = jdbcTemplate.query(sql, rm);
        System.out.println(bookList);
    }
}
           

- 输出结果如下:

queryForList执行结果如下
[{id=1, name=springboot从入门到精通, description=这是一本关于springboot框架的书籍,价格是50元, price=50.0}, {id=2, name=springcloud从入门到精通, description=这是一本关于springcloud框架的书籍,价格是50元, price=50.0}, {id=3, name=spring从入门到精通, description=这是一本关于spring框架的书籍,价格是50元, price=50.0}, {id=4, name=Java从入门到精通, description=这是一本关于Java框架的书籍,价格是50元, price=50.0}, {id=5, name=Mysql从入门到精通, description=这是一本关于Mysql框架的书籍,价格是50元, price=50.0}, {id=6, name=redis从入门到精通, description=这是一本关于redis的书籍,售价为35元, price=35.0}, {id=7, name=mongdb从入门到精通, description=这是一本关于mongdb的书籍,售价为35元, price=35.0}, {id=ebf7259505c246d0c98c61230d7768b2, name=python从入门到精通, description=这是一本python有关的书籍,售价是40元, price=40.23}]
query执行结果如下:
[Book(id=1, name=springboot从入门到精通, description=这是一本关于springboot框架的书籍,价格是50元, price=50.0), Book(id=2, name=springcloud从入门到精通, description=这是一本关于springcloud框架的书籍,价格是50元, price=50.0), Book(id=3, name=spring从入门到精通, description=这是一本关于spring框架的书籍,价格是50元, price=50.0), Book(id=4, name=Java从入门到精通, description=这是一本关于Java框架的书籍,价格是50元, price=50.0), Book(id=5, name=Mysql从入门到精通, description=这是一本关于Mysql框架的书籍,价格是50元, price=50.0), Book(id=6, name=redis从入门到精通, description=这是一本关于redis的书籍,售价为35元, price=35.0), Book(id=7, name=mongdb从入门到精通, description=这是一本关于mongdb的书籍,售价为35元, price=35.0), Book(id=ebf7259505c246d0c98c61230d7768b2, name=python从入门到精通, description=这是一本python有关的书籍,售价是40元, price=40.23)]
           

继续阅读