Spring Boot 数据库操作

Spring-Data-Jpa

JPA(Java Persistence API)定义了一系列对象持久化的标准,目前实现这以规范的产品有Hibernate,TopLink等

@Entity 注解表示数据库 映射实体

链接mysql 需要在pom文件中增加2个依赖

<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配置文件中增加数据库链接配置
spring:
  profiles:
    active: dev
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/dbuser
    username: root
    password: 123456
  jpa:
    hibernate:
       ddl-auto: create
    show-sql: true

如果出现插入数据库的中文乱,指定链接的编码:

url: jdbc:mysql://127.0.0.1:3306/dbuser?seUnicode=true&characterEncoding=UTF8

声明模型:

package com.asange.demo.model;


import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class User {

    @Id
    @GeneratedValue //自动生成
    private Integer id;

    private String name;
    private int age;

    public Integer getId() {
        return id;
    }

    public void setId(Integer 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;
    }

    public User() {
    }
}


这里的主键自动生成@GenerateValue

⚠️一定要显示声明默认无参构造函数,否则会编译报错!

第二步 需要建立jpa orm操作仓库服务

package com.asange.demo.repository;

import com.asange.demo.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.Repository;

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


现在就可以用userRepository进行crud操作啦

package com.asange.demo.controller;

import com.asange.demo.model.User;
import com.asange.demo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
public class UserController {

    @Autowired
    UserRepository userRepository;

    /**
     * 查询所有用户
     *
     * @return
     */
    @GetMapping("/users")
    public List<User> users() {
        return userRepository.findAll();
    }

    /**
     * 增加
     *
     * @param name
     * @param age
     * @return
     */
    @PostMapping("/user/add")
    public User userAdd(@RequestParam("name") String name, @RequestParam("age") int age) {
        User user = new User();
        user.setName(name);
        user.setAge(age);
        return userRepository.save(user);
    }

    /**
     * 删除
     *
     * @param id
     */
    @DeleteMapping("/user/del/{id}")
    public void userDel(@PathVariable("id") Integer id) {
        userRepository.deleteById(id);
    }

    /**
     * 更新
     *
     * @param id
     * @return
     */
    @PutMapping("user/update")
    public User userUpdate(@RequestParam("id") Integer id) {
        User one = userRepository.getOne(id);
        one.setAge(one.getAge() + 1);
        return userRepository.save(one);
    }

}

猜你喜欢

转载自blog.csdn.net/axuanqq/article/details/79811148