1. 程式人生 > >spring-boot-route(七)整合jdbcTemplate操作資料庫

spring-boot-route(七)整合jdbcTemplate操作資料庫

在一部分內容中,我們學習了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