您的位置:首页 > 编程语言 > Java开发

Springboot+jpa单表增删改查

2019-06-17 17:36 871 查看
版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

前言

今天给大家分享一个springboot+jpa+maven的单表增删改查,开发工具idea,网上新建项目的流程很多这里就不多赘述了,主要跟大家讲讲代码的核心部分。

Maven依赖

<!--springboot包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--jpa包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<!--mysql包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>

<!-- lombok插件 实体注解省略get set -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
<scope>provided</scope>
</dependency>

配置文件

spring:
datasource:
# mysql
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/exe?useUnicode=true&allowMultiQueries=true&characterEncoding=utf8
username: root
password: 123456

jpa:
database: mysql
database-platform: com.example.student.MySQLDialect # mysql
hibernate:
ddl-auto: update # 自动生成表
show-sql: false # 不显示sql(false)

# Server HTTP port.
server:
port: 9004
tomcat:
uri-encoding: utf-8

项目结构

controller层

这里主要讲一下RestController 和Controller的区别:
知识点:@RestController注解相当于@ResponseBody + @Controller合在一起的作用

  1. 如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。

  2. 如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
    如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解

package com.example.student.controller;
import com.example.student.entity.Student;
import com.example.student.response.BaseEntity;
import com.example.student.service.StudentServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Collection;

/**
*  controller层
*/
@RestController
@RequestMapping("/api/student")
public class StudentController {
@Autowired
private StudentServiceImpl studentService;

/**
* 查找一条
*
* @param id
* @return
*/
@GetMapping("/{id}")
public Object findOne(@PathVariable Integer id) {
return BaseEntity.success(studentService.findOne(id));
}

/**
* 新增或者修改
*
* @param student
* @return
*/
@PostMapping("")
public Object create(Student student) {
return BaseEntity.success(studentService.createOrUpdate(student));
}

/**
* 批量删除
*
* @param ids
* @return
*/
@DeleteMapping("")
public Object delete(Collection<Integer> ids) {
return BaseEntity.success(studentService.delete(ids));
}
}

service层

需要注意的是:@Service不要掉了

package com.example.student.service;
import com.example.student.entity.Student;
import com.example.student.repository.StudentRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Collection;

/**
* 业务层
*/
@Service
public class StudentServiceImpl {
@Autowired
private StudentRepository studentRepository;

/**
* 查一条信息
*
* @param id
* @return
*/
public Student findOne(Integer id) {
return studentRepository.findOne(id);
}

/**
* 新增或修改
*
* @param student
* @return
*/
public Student createOrUpdate(Student student) {
return studentRepository.save(student);
}

public Integer delete(Collection<Integer> ids) {
return studentRepository.deleteAllByIdIn(ids);
}
}

repository层

这里主要是写sql,继承CrudRepository

package com.example.student.repository;

import com.example.student.entity.Student;
import org.springframework.data.repository.CrudRepository;

import java.util.Collection;

/**
* sql语句
*/
public interface StudentRepository extends CrudRepository<Student,Integer> {
Integer deleteAllByIdIn(Collection<Integer> ids);
}

实体

@Entity注解不要掉了

package com.example.student.entity;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Getter;
import lombok.Setter;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;

/**
* @Desc 学生实体类
*/
@Table(name = "student")
@Entity
@Setter
@Getter
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Student implements Serializable {
@Id
@GeneratedValue
private Integer id;
private String name;
private Integer age;
private String grade;
}

启动类

package com.example.student;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class StudentApplication {

public static void main(String[] args) {
SpringApplication.run(StudentApplication.class, args);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: