SpringBoot
是爲了簡化 Spring
應用的建立、運行、調試、部署等一系列問題而誕生的產物,自動裝配的特性讓咱們能夠更好的關注業務自己而不是外部的XML配置,咱們只需遵循規範,引入相關的依賴就能夠輕易的搭建出一個 WEB 工程
html
Spring Framework
對數據庫的操做在JDBC
上面作了深層次的封裝,經過依賴注入
功能,能夠將 DataSource
註冊到JdbcTemplate
之中,使咱們能夠輕易的完成對象關係映射,並有助於規避常見的錯誤,在SpringBoot
中咱們能夠很輕鬆的使用它。java
特色mysql
- 速度快,對比其它的ORM框架而言,JDBC的方式無異因而最快的
- 配置簡單,
Spring
自家出品,幾乎沒有額外配置
- 學習成本低,畢竟
JDBC
是基礎知識,JdbcTemplate
更像是一個DBUtils
導入依賴
在 pom.xml
中添加對 JdbcTemplate
的依賴web
鏈接數據庫
在application.properties
中添加以下配置。值得注意的是,SpringBoot默認會自動配置DataSource
,它將優先採用HikariCP
鏈接池,若是沒有該依賴的狀況則選取tomcat-jdbc
,若是前二者都不可用最後選取Commons DBCP2
。經過spring.datasource.type
屬性能夠指定其它種類的鏈接池spring
1 2 3 4 5 6 7 8
|
spring.datasource.url=jdbc:mysql://localhost:3306/chapter4?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false spring.datasource.password=root spring.datasource.username=root
|
啓動項目,經過日誌,能夠看到默認狀況下注入的是HikariDataSource
sql
1 2 3 4
|
2018-05-07 10:33:54.021 INFO 9640 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Bean with name 'dataSource' has been autodetected for JMX exposure 2018-05-07 10:33:54.026 INFO 9640 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Located MBean 'dataSource': registering with JMX server as MBean [com.zaxxer.hikari:name=dataSource,type=HikariDataSource] 2018-05-07 10:33:54.071 INFO 9640 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2018-05-07 10:33:54.075 INFO 9640 --- [ main] com.battcn.Chapter4Application : Started Chapter4Application in 3.402 seconds (JVM running for 3.93)
|
具體編碼
完成基本配置後,接下來進行具體的編碼操做。爲了減小代碼量,就不寫UserDao
、UserService
之類的接口了,將直接在Controller
中使用JdbcTemplate
進行訪問數據庫操做,這點是不規範的,各位別學我…數據庫
表結構
建立一張 t_user
的表api
1 2 3 4 5 6
|
CREATE TABLE `t_user` ( `id` int(8) NOT NULL AUTO_INCREMENT COMMENT '主鍵自增', `username` varchar(50) NOT NULL COMMENT '用戶名', `password` varchar(50) NOT NULL COMMENT '密碼', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用戶表';
|
實體類
1 2 3 4 5 6 7 8 9 10 11 12 13
|
package com.battcn.entity;
|
restful 風格接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
package com.battcn.controller;
import com.battcn.entity.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.web.bind.annotation.*;
import java.util.List;
|
測試
因爲上面的接口是 restful 風格的接口,添加和修改沒法經過瀏覽器完成,因此須要咱們本身編寫junit
或者使用postman
之類的工具。瀏覽器
建立單元測試Chapter4ApplicationTests
,經過TestRestTemplate
模擬GET
、POST
、PUT
、DELETE
等請求操做tomcat
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
package com.battcn;
import com.battcn.entity.User; import org.junit.Test; import org.junit.runner.RunWith; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.boot.web.server.LocalServerPort; import org.springframework.core.ParameterizedTypeReference; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
|
總結
本章介紹了JdbcTemplate
經常使用的幾種操做,詳細請參考JdbcTemplate API文檔