1. 程式人生 > >Spring Boot 新增MySQL資料庫及JPA

Spring Boot 新增MySQL資料庫及JPA

繼續前面的學習,這一次我們加入MySQL資料庫和JPA。

配置:

pom.xml檔案

<!-- 新增Mysql和JPA-->
        <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
在Application.properties(在resource資料夾下新建,進行配置)檔案中新增資料進行配置:
spring.datasource.url = jdbc:mysql://localhost:3306/spring_boot
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driverClassName = com.mysql.jdbc.Driver


# Specify the DBMS
spring.jpa.database = MYSQL
# Show or not log for each sql query
spring.jpa.show-sql = true
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = update
# Naming strategy
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy

# stripped before adding them to the entity manager)
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
User類
package com.seawater.bean;

import javax.persistence.*;
import javax.validation.constraints.NotNull;

/**
 * Created by zhouhs on 2016/12/30.
 */
@Entity
@Table(name = "user")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String name;
    private int age;

    public Long getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
UserController
package com.seawater.controller;

import com.seawater.Dao.UserDao;
import com.seawater.bean.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * Created by zhouhs on 2016/12/30.
 */
@RestController
@RequestMapping(value = "/user")
@Api(description = "使用者")
public class UserController {

    @Resource
    UserDao userDAO;


    @ApiOperation(value = "新增使用者")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "name" , value = "name" , paramType = "query" , required = true ),
            @ApiImplicitParam(name = "age" , value = "age" , paramType = "query" , required = true )
    })
    @RequestMapping(value = "/addUser" , method = RequestMethod.POST)
    public String addUser(@RequestParam(value = "name") String name,@RequestParam(value = "age") int age){

        User user = new User();
        user.setName(name);
        user.setAge(age);

        userDAO.save(user);

        return "add user success !";
    }


    @ApiOperation(value = "查詢使用者")
    @ApiImplicitParam(name = "id" , value = "id" , paramType = "query" , required = true , dataType = "int")
    @RequestMapping(value = "/findById" , method = RequestMethod.POST)
    public String findById(@RequestParam(value = "id") Long id){

        User user = userDAO.findById(id);

        if(user == null){
            return "error";
        }else{
            return "name:" + user.getName() + " , age:" + user.getAge();
        }
    }


    @ApiOperation(value = "查詢所有使用者")
    @RequestMapping(value = "/findAll" , method = RequestMethod.POST)
    public Iterable findAll(){

        Iterable<User> userList = userDAO.findAll();

        return userList;

    }

    @ApiOperation(value = "刪除使用者")
    @ApiImplicitParam(name = "id" , value = "id" , paramType = "query" , required = true , dataType = "int")
    @RequestMapping(value = "/deleteById" , method = RequestMethod.POST)
    public String deleteById(@RequestParam(value = "id") Long id){

        userDAO.delete(id);
        return "delete success !";

    }



}
資料表(id定義為Integer):

表1


UserDao:

package com.seawater.Dao;

import com.seawater.bean.User;
import org.springframework.data.repository.CrudRepository;

/**
 * Created by zhouhs on 2016/12/30.
 */
public interface UserDao extends CrudRepository<User, Long> {

    public User findById(Long id);

}
然後啟動專案:訪問http://localhost:8081/swagger-ui.html
結果:

結果1

方法我就不一一操作了。

原始碼地址(專案中的原始碼可能會更多哦,需要自己找到對應原始碼):