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:
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";
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)]