Springboot 整合 JPA

本文详细介绍了如何在Springboot中整合JPA,包括建表、配置pom.xml、application.yml,创建Entity、DAO、Service、ServiceImpl、VO类,并展示了分页、保存和查询操作的实现。虽然JPA简化了数据库操作,但复杂SQL仍建议使用mybatis等框架。
摘要由CSDN通过智能技术生成

Springboot 整合 JPA

简介

JPAJAVA Persistance API 是一种官方提出的ORM规范。

什么是ORM?

ORMObject-Relational Mapping。他的作用是在关系型数据库和对象之间作一个映射,这样我们就不需要使用具体的sql语句 ,而是像平常一样操作对象即可。例如Hibernate就是很著名的ORM框架

spring-data-jpa便是spring基于Hibernate开发的一个JPA框架。极大的简化了JPA的写法,可以非常简单的实现CRUD和分页操作。

复杂的sql操作也可以使用@Query("SELECT * FROM TABLE WHERE user_name = :name"),不过复杂的sql操作还是建议整合mybatis或者mybatis-plus。

使用示例

程序源码

建表

我们这里首先简单构建customer表,该表有id,name,age,create_time,modify_time属性,其中主键为id,递增。

DROP TABLE IF EXISTS `customer`;
CREATE TABLE `customer`(
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` VARCHAR(64) DEFAULT NULL COMMENT '姓名',
`age` SMALLINT(3)  DEFAULT NULL COMMENT '年龄' ,
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modify_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;
pom.xml

因为要连接数据库,并且使用spring data jpa,所以添加如下依赖

    <!-- 数据库连接 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </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>
application.yml

Springboot参数配置

#端口设置
server:
  port: 8090

#数据源设置
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    #设置编码和时区
    url: jdbc:mysql://localhost:3306/springboot?characterEncoding=utf-8&serverTimezone=GMT%2B8
    username: root
    password: 1234

   #jpa设置
  jpa:
    #显示sql语句
    show-sql: true
    #format sql 语句
    hibernate:
      naming:
        #驼峰匹配
        physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
        #根据实体类自动更新表结构
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值