Spring Boot JPA如何把ORM统一起来

作者:张占岭 时间:2023-04-12 21:26:14 

JPA介绍

JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。他的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate,TopLink,JDO等ORM框架各自为营的局面。值得注意的是,JPA是在充分吸收了现有Hibernate,TopLink,JDO等ORM框架的基础上发展而来的,具有易于使用,伸缩性强等优点。从目前的开发社区的反应上看,JPA受到了极大的支持和赞扬,其中就包括了Spring与EJB3.0的开发团队。JPA是一套规范,不是一套产品,那么像Hibernate,TopLink,JDO他们是一套产品,如果说这些产品实现了这个JPA规范,那么我们就可以叫他们为JPA的实现产品。

Spring Data JPA

Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring Data JPA 可以极大提高开发效率!spring data jpa让我们解脱了DAO层的操作,基本上所有CRUD都可以依赖于它来实现,自己写个仓储接口后继承JpaRepository即可实现最基本的增删改查功能!

在项目中引用Spring JPA

1 在build.gradle文件中添加包引用


 compile('org.springframework.boot:spring-boot-starter-data-jpa')
 compile('mysql:mysql-connector-java')

2 在source的配置文件中添加mysql和jpa的相关设置


spring:
datasource:
 url: jdbc:mysql://127.0.0.1:3306/test
 username: root
 password: root
 driver-class-name: com.mysql.jdbc.Driver
jpa:
  database: MYSQL
  show-sql: true #显示后台处理的SQL语句
  hibernate:
   ddl-auto: update #自动检查实体和数据库表是否一致,如果不一致则会进行更新数据库表

3 添加数据库表实体,注意一些注解,@Entity表示数据表实体,@Table可以指定数据表名称,@Id表示是主键,@GeneratedValue主键升成规则,@Column表示数据列名称等等。


import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.Data;
@Data
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "Id")
private int id;
@Column(name = "Name")
private String name;
}

4 为数据表实体添加仓储接口,因为JPA已经有了自己的标准实例,所以简单的CURD实例我们不需要写了,如果有个性化的操作,再去定义接口和实现。


import com.example.springdemo.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface SqlUserRepository extends JpaRepository<User, Integer> {
}

5 最后在controller中添加依赖注入的字段,一般使用@Autowired即可


@RestController
@RequestMapping("/mysql")
public class MysqlController {
@Autowired
private SqlUserRepository repository;
/**
 * return list.
 *
 * @return
 */
@RequestMapping("/list")
public List<User> dataList() {
 return repository.findAll();
}
}

总结

以上所述是小编给大家介绍的Spring Boot JPA如何把ORM统一起来网站的支持!

来源:https://www.cnblogs.com/lori/archive/2018/04/18/8874323.html

标签:spring,boot,jpa,orm
0
投稿

猜你喜欢

  • Servlet中/和/*的区别详解

    2022-07-11 03:21:33
  • Android UI控件Switch的使用方法

    2023-01-28 13:41:15
  • IDEA编译报错:Error:java:无效的源发行版:17的解决办法

    2023-08-25 10:38:06
  • springcloud中RabbitMQ死信队列与延迟交换机实现方法

    2023-05-04 04:25:54
  • C#通过反射创建自定义泛型

    2022-12-30 07:12:38
  • SpringBoot配置外部静态资源映射问题

    2021-07-22 00:27:50
  • C#先判断是否存在再创建文件夹或文件与递归计算文件夹大小

    2023-07-29 00:04:58
  • Spring组件开发模式支持SPEL表达式

    2023-09-05 11:53:31
  • Android自定义控件基本原理详解(一)

    2022-05-02 12:29:32
  • Flutter 实现整个App变为灰色的方法示例

    2023-02-21 13:20:39
  • SpringMVC实现上传下载文件

    2022-11-10 03:18:14
  • Android中显示GIF动画的实现代码

    2022-01-26 23:36:50
  • 解决IDEA右键没有创建新的package选项的情况

    2022-08-12 03:45:45
  • c#实现最简洁的快速排序(你绝对可以看懂)

    2022-04-01 22:35:48
  • C# Aspose.Words 删除word中的图片操作

    2023-07-29 12:01:43
  • Android实现简单手电筒功能

    2023-09-17 19:50:27
  • C# 位运算符整理

    2022-12-28 15:59:35
  • java编程实现根据EXCEL列名求其索引的方法

    2022-04-24 03:08:03
  • Java Callable接口实现细节详解

    2023-11-10 05:34:26
  • C# IQueryable及IEnumerable区别解析

    2021-11-27 13:46:36
  • asp之家 软件编程 m.aspxhome.com