Springboot整合Spring-data-jpa用法

本文详细介绍如何在Java项目中使用ORM框架与数据库进行交互,包括在pom.xml中添加依赖,配置数据库连接,创建实体类及Repository,实现数据的增删改查操作。特别关注了实体类的设计,如主键、字段映射等,以及如何通过Repository和Specification进行高效的数据查询。

在pom.xml文件加依赖:

写数据库配置:

在application.properties中加入数据库配置文件:

实体类:

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

import io.swagger.annotations.ApiModelProperty;

@Entity
@Table(name = "trade")
public class Trade implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 6891164356262972567L;


    /**
     * 设备交易流水号,主键
     */
    @Id
    @Column(name = "trade_sn", length = 23)
    private String tradeSN;
    /**
     * 接收流水号
     */
    @Column(name = "receive_sn", length = 10)
    private String receiveSn;
    /**
     * 交易时间
     */
    @Column(name = "trade_date")
    private Date tradeDate;

    /**
     * 传统交易类型,闸机进21,闸机出22
     */
    @Column(name = "trade_type", length = 2)
    private String tradeType;

    /**
     * 运营点
     */
    @Column(name = "trade_address", length = 10)
    private String tradeAddress;

    /**
     * 终端号
     */
    @Column(name = "terminal_id", length = 9)
    private String terminalId;

    /**
     * 设备交易序号
     */
    @Column(name = "terminal_sn", length = 10)
    private String terminalSN;

    /**
     * 设备交易金额累计(后台累计)
     */
    @Column(name = "terminal_sum")
    private Integer terminalSum;

    /**
     * 卡号
     */
    @Column(name = "card_id", length = 20)
    private String cardId;

    /**
     * 卡类型
     */
    @Column(name = "card_type", length = 2)
    private String cardType;

 

    /**
     * 交易金额(分),mallint,出站记录不应为空
     */
    @Column(name = "trade_money")
    private Short tradeMoney;

    

    public String getTradeSN() {
        return tradeSN;
    }

    public String getReceiveSn() {
        return receiveSn;
    }

    public Date getTradeDate() {
        return tradeDate;
    }

    public String getTradeType() {
        return tradeType;
    }

    public Integer getTradeType2() {
        return tradeType2;
    }

    public String getTradeAddress() {
        return tradeAddress;
    }

    public String getTerminalId() {
        return terminalId;
    }

    public String getTerminalSN() {
        return terminalSN;
    }

    public Integer getTerminalSum() {
        return terminalSum;
    }

    public String getCardId() {
        return cardId;
    }

    public String getCardType() {
        return cardType;
    }

public Short getTradeMoney() {
        return tradeMoney;
    }

    public void setTradeMoney(Short tradeMoney) {
        this.tradeMoney = tradeMoney;
    }


}
 

@Entity:映射实体类

@Table(name = "trade"):表名为trade

@Id:主键

@Column(name = "trade_sn", length = 23):表里的字段名为trade_sn,长度为23

项目启动后,会在数据库中自动建表。

Repository类:

Trade是表对应的实体类,String是该实体类中id字段的类型。

TradeRepository的对象有的一些方法:

加一些TradeRepository类无法满足的@Query查询。

现在来看看Specification。当遇到多条件查询,动态查询时,会用到Specification。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值