在spring boot中使用JPA详解

1.首先在pom.xml文件中导入jar包

 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <version>2.0.4.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-thymeleaf -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

2.在resources下创建application.yml文件,在里面设置数据库连接,如下:

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true
    username: root
    password: ROOT
  mvc:
    static-path-pattern: /static/**
server:
  servlet:
    context-path: /s

3.创建UserDao接口,继承JpaRepository接口,如下所示:

public interface UserDao extends JpaRepository<User,Integer> {
}

4.创建UserController类,在类中声明一个成员属性UserDao,通过UserDao调用方法,实现CRUD
(1)查询 queryAll()
(2)添加 save
(3)修改

 		User user = userDao.getOne(id);
        user.setName(name);
        return userDao.save(user);

(4)删除 deleteById

具体实现代码如下:

package com.boot.bootdemo.controller;

import com.boot.bootdemo.dao.UserDao;
import com.boot.bootdemo.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserDao userDao;

    @RequestMapping("/index")
    public String index(){
        return "/index";
    }
    @RequestMapping("/queryAll")
    @ResponseBody
    public List<User> query(){
      return userDao.findAll();
    }

    @RequestMapping("/update/{id}/{name}")
    @ResponseBody
    public User update(@PathVariable("id") Integer id, @PathVariable("name") String name){
        User user = userDao.getOne(id);
        user.setName(name);
        return userDao.save(user);
    }

    @RequestMapping("/del/{id}")
    @ResponseBody
    public void del(@PathVariable("id") Integer id){
        userDao.deleteById(id);
    }

    @RequestMapping("/add")
    @ResponseBody
    public User add(User user){
        return userDao.save(user);
    }
	//自定义方法
    @RequestMapping("/queryAge/{age}")
    @ResponseBody
    public List<User> findByAge(@PathVariable("age") Integer age){
        return userDao.queryByAge(age);
    }

}

5.UserDao自定义方法
UserDao中代码实现

public interface UserDao extends JpaRepository<User,Integer> {
    public List<User> queryByAge(Integer age);
}

UserController中代码实现

//自定义方法
    @RequestMapping("/queryAge/{age}")
    @ResponseBody
    public List<User> findByAge(@PathVariable("age") Integer age){
        return userDao.queryByAge(age);
    }

猜你喜欢

转载自blog.csdn.net/qq_42800961/article/details/83626779