springboot之jpa支持


建项目时所需要的插件
在这里插入图片描述

一、导入相关pom依赖

降低mysql版本和pom依赖

<mysql.version>5.1.44</mysql.version>
<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
            <scope>runtime</scope>
 </dependency>
        
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

二、application.yml文件配置

spring:
jpa:
hibernate:
ddl-auto: update
show-sql: true

三、自动建表entity

package com.chendongyang.springboot03.entity;

import lombok.Data;

import javax.persistence.*;
@Data
@Table(name = "t_springboot_book_2019")
@Entity
public class Book {
//  主键
    @Id
//  自动增长
    @GeneratedValue
    private Integer bid;
//  列指定长度
    @Column(length = 100)
    private String bname;
    @Column
    private Float price;
}

四、自动建表截图

在这里插入图片描述

五、jpa值增删改

repository包下只要继承jpaRepository,通常所有的增删改方法都有

package com.chendongyang.springboot03.repository;

import com.chendongyang.springboot03.entity.Book;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface BookRepostitory extends JpaRepository<Book,Integer> {
}

controller层

package com.chendongyang.springboot03.controller;

import com.chendongyang.springboot03.entity.Book;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
@RestController
@RequestMapping("/book")
public class BookController {
    @Autowired
    private JpaRepository jpaDao;

    @RequestMapping("/add")
    public String add(Book book){
        jpaDao.save(book);
        return "success";
    }

    @RequestMapping("/edit")
    public String edit(Book book){
        jpaDao.save(book);
        return "success";
    }

    @RequestMapping("/del")
    public String del(Book book){
        jpaDao.delete(book);
        return "success";
    }

    @RequestMapping("/getOne")
    public Book getOne(Integer bid){
//        会出现懒加载问题:org.hibernate.LazyInitializationException: could not initialize proxy - no Session
//        return jpaDao.getOne(bid);
        return (Book) jpaDao.findById(bid).get();
    }

    @RequestMapping("/getAll")
    public List<Book> getAll(){
        return jpaDao.findAll();
    }
}

浏览器输入请求测试
http://localhost:8080/springboot/jpa/getOne?bid=11
http://localhost:8080/springboot/jpa/getAll
http://localhost:8080/springboot/jpa/add?bname=不死不灭&price=234
http://localhost:8080/springboot/jpa/add?bname=斗破苍穹&price=234&bid=11
http://localhost:8080/springboot/jpa/del?bid=11

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值