天天看點

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)]
           

繼續閱讀