首页 > 编程语言 > 详细

SpringBoot整合SpringDataJPA

时间:2021-07-21 17:02:25      阅读:23      评论:0      收藏:0      [点我收藏+]

[SpringBoot整合SpringDataJPA ]

准备工作:

1安装好idea
2安装maven 并配置环境
Springboot搭建零基础教程:https://blog.csdn.net/baidu_39298625/article/details/98102453

需要用到的三方库

这里创建springboot项目时候勾选相关的功能即可

技术分享图片

      <!--java  web 服务依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
      <!--springboot data 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>

application.ymal 的配置 如下图:

spring:
  datasource:
    url: jdbc:mysql://106.15.11.20:3306/union_db?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
    username: root
    password: root1234
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true

我们看到项目正常的启动了我们打开postman工具访问一下 测试类

package com.imooc.luckymoney;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.Map;
/**
 * Created by xuqing
 * 2020年7月12日10:40:43
 * @Controller + @ResponseBody = @RestController
 *
 *
 */
@RestController
@RequestMapping("/hello")
public class HelloController {

	@Autowired
	private LimitConfig limitConfig;

	@PostMapping("/say")
	public String say(@RequestParam(value = "id", required = false, defaultValue = "0") Integer myId) {
	//	return "说明:" + limitConfig.getDescription();
	return "id:" + myId;
	}

    @GetMapping("/index")
	public  Object index(){
		Map<String,Object> map=new HashMap<>();
		map.put("msg","部署成功");
		return  map;
	}

    @GetMapping("/getsay")
	public  String say(){
		return "说明:" + limitConfig.getDescription();
	}

}

我们访问 index 这个方法 请求的接口地址就是 :http://localhost:8081/luckymoney/hello/index
技术分享图片
我们看到有json数据返回,项目整个算是正常启动成功我们需要加入一些业务逻辑代码来配合SpringDataJPA框架 来实现我们的业务需求

具体实现:

1 创建bean类(数据模型)

package com.imooc.luckymoney;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.math.BigDecimal;

/**
 * Created by xuqing
 * 2020年7月12日10:40:18
 */
@Entity
public class Luckymoney {

	@Id
	@GeneratedValue
	private Integer id;

	private BigDecimal money;

	/**
	 * 发送方
	 */
	private String producer;

	/**
	 * 接收方
	 */
	private String consumer;

	public Luckymoney() {
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public BigDecimal getMoney() {
		return money;
	}

	public void setMoney(BigDecimal money) {
		this.money = money;
	}

	public String getProducer() {
		return producer;
	}

	public void setProducer(String producer) {
		this.producer = producer;
	}

	public String getConsumer() {
		return consumer;
	}

	public void setConsumer(String consumer) {
		this.consumer = consumer;
	}
}

类名上面我们要加上 @Entity 注解这样一来代码会自动帮我在MySQL里面创建 Luckymoney
然后我们要在表的头ID上面加上

@Id 
@GeneratedValue 

这个两行注解这样在MySQL创建的表里面就会是头ID是主键非空并且自增的

2 继承jpa

package com.imooc.luckymoney;

import org.springframework.data.jpa.repository.JpaRepository;

/**
* Created by xuqing
* 2020年7月12日10:40:31
*/
public interface LuckmoneyRepository extends JpaRepository<Luckymoney, Integer> {


  }

我们只需要写一个类继承JpaRepository 然后在<>中传入我们数据模型bean类(对应是数据库的表)就可以对数据库进行增删改查的操作,不用在写sql语句了 是不是很方便很爽 哈哈哈

3 controller 层具体业务逻辑实现:

首先我们需要用@Autowired注解将我们集成JpaRepository 的LuckmoneyRepository 类 注入进来

@Autowired
private LuckmoneyRepository repository;

然后我们就可以调用里面LuckmoneyRepository 父类里面的一些方法对数据库进行操作了 。
1查询数据库调用 finaAll();方法查询整张表的数据

/**
* 获取红包列表
*/
@GetMapping("/luckymoneys")
public List<Luckymoney> list() {
   return repository.findAll();
}

请求效果:
技术分享图片

2 增加数据 调用save方法传入对象即可

/**
 * 创建红包(发红包)
 */
@PostMapping("/luckymoneys")
public Luckymoney create(@RequestParam("producer") String producer,
							 @RequestParam("money") BigDecimal money) {
		Luckymoney luckymoney = new Luckymoney();
		luckymoney.setProducer(producer);
		luckymoney.setMoney(money);
		return repository.save(luckymoney);
}

请求效果:
技术分享图片
数据库查看
技术分享图片
我们看到数据库有
3 更新数据 先通过查询方法查询然后 bean类中的set方法然后 再调用save方法即可完成数据更新操作

/**
 * 更新红包(领红包)
 */
@PutMapping("/luckymoneys/{id}")
public Luckymoney update(@PathVariable("id") Integer id,
							 @RequestParam("consumer") String consumer) {
		Optional<Luckymoney> optional = repository.findById(id);
		if (optional.isPresent()) {
			Luckymoney luckymoney = optional.get();
			luckymoney.setConsumer(consumer);
			return repository.save(luckymoney);
		}
		return null;
	}

请求效果:
技术分享图片

操作更新前的数据

技术分享图片

操作更新后的数据

技术分享图片

项目地址

GitHub : https://github.com/xq19930522/springbootjpa
码云地址 :https://gitee.com/qiuyu123/springbootjpa.git

SpringBoot整合SpringDataJPA

原文:https://www.cnblogs.com/paimianbaobao/p/15039078.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!