springboot整合spring Data jpa

一,添加依赖关系

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

二,构建目录结构

这里写图片描述

1.添加application.yml文件,配置数据源和jpa:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
    username: root
    password: 123
    driver-class-name: com.mysql.jdbc.Driver
  jpa:
    hibernate:
      show-sql: true
      ddl-auto: update

2.添加实体类User,代码如下:

@Entity
@Table(name = "user")
public class User {
    @Id
    @GeneratedValue
    private Long id;

    private String userName;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date date;
    //Alt+Int添加get,set方法

3.创建JPA接口UserRepository

因为接口JpaRepository已经提供了一些增删改查的方法,所以直接继承这个接口就可以了,也可以另外自定义增删改查的方法

@Repository
public interface UserRepository extends JpaRepository<User,Long> {
}

4.业务层service

编写接口UserService

public interface UserService {
    User addUser(User user);
    User update(User user);
    int delete(Long id);
    User findUserById(Long id);
    List<User> findUsers();
}

接口实现类UserServiceImp

@Component     //允许自动注入
public class UserServiceImp implements UserService {
    @Autowired
    private UserRepository userRepository;

    @Override
    public User addUser(User user) {

        return userRepository.save(user);
    }

    @Override
    public User update(User user) {
        return userRepository.saveAndFlush(user);
    }

    @Override
    public int delete(Long id) {
         userRepository.deleteById(id);
        return 0;
    }

    @Override
    public User findUserById(Long id) {
        Optional<User> user= userRepository.findById(id);
        if(user!=null)
            return user.get();
        return null;
    }

    @Override
    public List<User> findUsers() {
        return userRepository.findAll();
    }
}

5.编写控制器UserController

@RestController
@RequestMapping("/user")
public class UserController {
    @Resource
    private UserService userService;

    @RequestMapping( "/add/{name}")
    public String addUser(@PathVariable String name){
        User user=new User();
        user.setUserName(name);
        user.setDate(new Date());
        return userService.addUser(user).toString();
    }

    @RequestMapping("/find/{id}")
    public User findUser(@PathVariable Long id){
        return userService.findUserById(id);
    }
    @RequestMapping("list")
    public List<User> list(){
        return userService.findUsers();
    }

    @RequestMapping("/update/{name}")

    public String updateUser(User user){
        return userService.update(user).toString();
    }

}

三,测试项目


运行项目,添加用户信息,输入请求地址:http://localhost:8080/user/add/小明,得到结果:

这里写图片描述


查看数据库表

这里写图片描述


查看用户信息,请求地址:http://localhost:8080/user/find/1

这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42870683/article/details/82719990