springboot整合jpa

1、Jpa简介:

JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

2.springboot整合jpa

 

å¨è¿éæå¥å¾çæè¿°

1.导入相关pom依赖(新建已有)

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

2.application.yml文件配置

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


ddl-auto: create 无论数据库有无你要创建的表  每次启动都是一个新的数据库,也是导致数据丢失的重要原因。
ddl-auto: update 最常用的属性值  已有你要创建的表就不动  没有就新建

3、使用jpa完成自动建表功能
 

    3-1:实体类示例:

package com.zking.springbootxxx.entity;

import javax.persistence.*;

/**
 * @author HYT
 * @site
 * @company
 * @create  2019-02-23 14:06
 */
@Entity  //实体类注解
@Table(name="t_springboot_order")  //数据库表明
public class Order {
    @Id   //主键id
    @GeneratedValue  //自动增长
    private Integer oid;
    @Column(length = 18) //表中字段,长度18
    private String oname;
    @Column
    private Float oprice;

    public Integer getOid() {
        return oid;
    }

    public void setOid(Integer oid) {
        this.oid = oid;
    }

    public String getOname() {
        return oname;
    }

    public void setOname(String oname) {
        this.oname = oname;
    }

    public Float getOprice() {
        return oprice;
    }

    public void setOprice(Float oprice) {
        this.oprice = oprice;
    }
}

 

自动生成后,数据库会产生两个表,一个是 t_hibernate_sequence和你自己生成的表t_springboot_order
t_hibernate_sequence是用来生成id的,存放id,如果一个数据库生成多个数据表,共用一个hibernate_sequence表;
 

4.增删改查

     dao

 

package com.zking.springbootxxx.dao;

import com.zking.springbootxxx.entity.Order;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;

import java.awt.print.Book;

/**
 * @author HYT
 * @site
 * @company
 * @create  2019-02-23 14:21
 * JpaRepository:继成后,可实现简单的增删改查
 *    第一个参数:操作的实体类
 *    第二个参数:实体类对应数据表的主键
 * JpaSpecificationExecutor :继承后,能执行复杂的sql查询
 *
 */
public interface OrderDao extends JpaRepository<Order,Integer>,JpaSpecificationExecutor<Order>{
}

 

controller层

 

@Autowired
    private OrderDao orderDao;

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

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

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

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

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

 

浏览器访问:

     

    



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值