1. 程式人生 > >Spring Boot 系統之三:Spring Boot 整合JdbcTemplate

Spring Boot 系統之三:Spring Boot 整合JdbcTemplate

前面兩篇文章我們講了兩件事情:

  1. 通過一個簡單例項進行Spring Boot 入門
  2. 修改Spring Boot 預設的服務埠號和預設context path

這篇文章我們來看下怎麼通過JdbcTemplate進行資料的持久化。

一、程式碼實現

1、修改pom.xml檔案,引入相關依賴。

        <!-- 引入 jdbc 依賴 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

        <!-- 引入 mysql 資料庫連線依賴-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

2、配置資料庫資訊,在application.properties中新增如下內容:

# 資料庫資訊
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# xxx為資料庫名稱
spring.datasource.url=jdbc:mysql://localhost:3306/xxx
spring.datasource.username=root
spring.datasource.password=root

3、建立實體類並建立資料庫

1、實體類

package com.learn.spring.entity;

public class User {
    private Integer id;
    private String userName;
    private String password;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

2、資料庫

點選Execute即可建立成功;

 3、實現dao層

package com.learn.spring.dao;

import com.learn.spring.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

@Repository
public class UserDao {
    @Autowired
    JdbcTemplate jdbcTemplate;

    public void save(User user){
        String sql = "insert into t_user(user_name, password) values(hello,123456)";
        jdbcTemplate.update(sql, user.getUserName(), user.getPassword());
    }
}

4、實現Service層

(1)介面

package com.learn.spring.service;

import com.learn.spring.entity.User;

public interface UserService {

    public void save(User user);
}

(2)實現類

package com.learn.spring.service.impl;

import com.learn.spring.dao.UserDao;
import com.learn.spring.entity.User;
import com.learn.spring.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    UserDao userDao;

    public void save(User user){
        userDao.save(user);
    }
}

5、實現controller層

package com.learn.spring.controller;

import com.learn.spring.entity.User;
import com.learn.spring.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {
    @Autowired
    UserService service;

    @RequestMapping("/saveUser")
    public String saveUser(User user) {

        service.save(user);
        return "save user successful";
    }
}

6、執行測試

(1)頁面正確返回資訊“save user successful”

 (2)資料庫正確儲存,插入一條資料;

 二、總結

由此我們發現,Spring Boot 只是簡化了xml的配置麻煩,並沒有減少我們java程式碼的編寫量。

Spring Boot 不是Spring 功能的增強,而是提供了一種快速使用Spring 的方式:開箱即用,沒有程式碼生成,也無需XML配置。