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合在一起的作用
-
如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
-
如果需要返回到指定页面,则需要用 @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); } }
相关文章推荐
- 转载:Spring Boot (十五):springboot+jpa+thymeleaf增删改查示例
- springboot+jpa+thymeleaf增删改查的示例(转)
- 使用spring-data-jpa+spirngboot整合swagger+vuejs实现一套简单的增删改查demo
- idea+HBuilderX实现springboot+springdata-jpa+vue+axios前后端分离增删改查,分页+解决跨域问题的idea页面
- Spring Boot中使用Spring-data-jpa实现数据库增删查改
- SpringBoot+Jpa实现增删改查以及分页查询
- springboot(十五):springboot+jpa+thymeleaf增删改查示例
- springboot(十五):springboot+jpa+thymeleaf增删改查示例
- 文章标题spring-boot + spring-data-jpa 实现简单的增删改查
- 使用springboot+springdata-jpa+前台Html页面实现增删改查
- SpringBoot JPA实现增删改查、分页、排序、事务操作等功能
- springboot(十五):springboot+jpa+thymeleaf增删改查示例
- springboot+springdata-jpa+vue+swagger ui2+axios实现前后端分离一套增删改查,分页+解决跨域问题
- 使用spring boot 整合spring jpa做基于restful风格的增删改查(maven ,mysql)
- spring boot + jpa + thymeleaf 增删改查示例
- SpringBoot+Jpa进行简单的增删改查
- SpringBoot2.0使用Spring Data-JPA实现增删改查
- springboot+springdata-jpa+vue+swagger ui2+axios实现前后端分离一套增删改查,分页+解决跨域问题
- springboot+maven+springdata jpa +querydsl快速实现增删改查分页
- springboot(十五):springboot+jpa+thymeleaf增删改查示例