Spring Boot之數據庫訪問

前幾篇介紹了RESTful API的實現模板引擎的使用,可是這些內容不足以構建一個動態的WEB應用,做爲一個後臺服務,還須要各類類型的數據庫,來持久化咱們的數據,爲調用方提供數據來源,本篇則着重介紹一下如何在Spring Boot使用JDBC操做數據庫,後續的篇章會介紹一些ORM框架與Spring Boot整合的案例。html

引入JDBC依賴

    爲了鏈接數據庫,咱們首先須要引入JDBC的起步依賴java

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

引入相應的數據庫依賴

    數據庫的種類比較多,有H二、HSQL、Derby、Mysql、Oracle等等,此處咱們以mysql爲例介紹,引入mysql依賴包mysql

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

配置數據庫鏈接配置

    在src/main/resources/application.yml中添加數據庫的相關配置spring

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/restful?useUnicode=true&characterEncoding=UTF-8&useSSL=false
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver

 使用JDBC操做數據庫

  • 建立一個book表,表中有兩個字段「name」、「isbn」兩個字段。建立一個BookService接口
public interface BookService {
    /**
     * 添加一本書
     * @param name
     * @param isbn
     */
    void addBook(String name, String isbn);

    /**
     * 根據isbn刪除
     * @param isbn
     */
    void deleteBook(String isbn);

    /**
     * 獲取數據庫中書本總數
     * @return
     */
    Integer getBookCount();

    /**
     * 刪除全部數據
     */
    void deleteAll();
}
  • 實現接口並注入JdbcTemplate對象
@Service
public class BookServiceImpl implements BookService{
    @Resource
    private JdbcTemplate jdbcTemplate;
    @Override
    public void addBook(String name, String isbn) {
        jdbcTemplate.update("insert into BOOK(NAME, ISBN) values(?, ?)", name, isbn);
    }

    @Override
    public void deleteBook(String isbn) {
        jdbcTemplate.update("delete from BOOK where ISBN = ?", isbn);
    }

    @Override
    public Integer getBookCount() {
        return jdbcTemplate.queryForObject("select count(1) from BOOK", Integer.class);
    }

    @Override
    public void deleteAll() {
        jdbcTemplate.update("delete from BOOK");
    }
}

    因爲Spring Boot中JdbcTemplate是自動配置的,你能夠直接使用@Autowired或者@Resource註解直接注入。sql

  • 建立一個針對BookService的測試類
@RunWith(SpringRunner.class)
@SpringBootTest
public class Demo4ApplicationTests {

	@Autowired
	private BookService bookService;
	@Before
	public void setUp() {
		// 準備,清空user表
		bookService.deleteAll();
	}
	@Test
	public void contextLoads() {
		// 插入5本書
		bookService.addBook("a", "1");
		bookService.addBook("b", "2");
		bookService.addBook("c", "3");
		bookService.addBook("d", "4");
		bookService.addBook("e", "5");
		// 查數據庫,應該有5本書
		Assert.assertEquals(5, bookService.getBookCount().intValue());
		// 刪除兩本書
		bookService.deleteBook("1");
		bookService.deleteBook("2");
		// 查數據庫,應該有3本書
		Assert.assertEquals(3, bookService.getBookCount().intValue());

	}

}

    至此即完成jdbc操做數據庫的簡單操做,固然這只是幾個最基本的操做,若是你們想了解更多的JdbcTemplate使用,能夠參考官方文檔數據庫

相關文章
相關標籤/搜索