spring-boot-route(七)整合jdbcTemplate操作資料庫
阿新 • • 發佈:2020-10-07
在一部分內容中,我們學習了Restful介面的編寫,及介面文件的生成。我們需要將介面資料進行持久化儲存,這一部分我們主要學習幾種持久化框架將資料進行儲存。本部分內容中,我們都將使用mysql為例來做為演示資料庫。
在剛開始接觸資料庫操作的時候我們都會使用JDBC來進行資料庫操作,但是每次都要建立連線,關閉連線非常麻煩,Spring將JDBC進行了簡易的封裝成了一個新的框架——JdbcTemplate。
## 專案搭建
### 1 新增mysql依賴
```yml
```
### 2. 新增jdbcTemplate依賴
```java
```
### 3. 配置mysql
```java
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/simple_fast?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&useAffectedRows=true&allowPublicKeyRetrieval=true
username: root
password: root
```
## 簡單操作資料庫
新建一張表`student`用來測試JdbcTemplate的常用功能。建表語句如下:
```java
CREATE TABLE `student` (
`student_id` int(30) NOT NULL,
`age` int(1) DEFAULT NULL COMMENT '年齡',
`name` varchar(45) DEFAULT NULL COMMENT '姓名',
`sex` int(1) DEFAULT NULL COMMENT '性別:1:男,2:女,0:未知',
`create_time` datetime DEFAULT NULL COMMENT '建立時間',
`status` int(1) DEFAULT NULL COMMENT '狀態:1:正常,-1:刪除',
PRIMARY KEY (`student_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC COMMENT='學生表'
```
對應的實體類如下:
```java
@Data
@NoArgsConstructor
@AllArgsConstructor
public class StudentBean implements Serializable {
private static final long serialVersionUID = 4618004018169112427L;
private Integer studentId;
private Integer age;
private String name;
private Integer sex;
private Date createTime;
private Integer status;
}
```
JdbcTemplate提供了比較完善的資料庫操作API,日常開發中比較常用的API主要為兩類,分別是
- query與queryXXX
- update與batchUpdate
JdbcTemplate的使用也非常簡單,哪兒需要使用注入即可
```java
@Autowired
private JdbcTemplate jdbcTemplate;
```
### 1 查詢單個實體
```java
public StudentBean getStudent(int status){
String sql = "select * from student where status = ? limit 1";
return jdbcTemplate.queryForObject(sql,new Object[]{status},new BeanPropertyRowMapper<>(StudentBean.class));
}
```
### 2 查詢List集合
```java
pub