Spring Data JPA的一对一多表查询

本文介绍了如何使用Spring Data JPA进行一对一的多表查询。通过讲解JPA的基本概念,环境搭建,数据库表创建,实体类和持久层接口的建立,以及测试案例,展示了在Java Spring Boot项目中,如何实现表的一一关联,简化数据库操作。
摘要由CSDN通过智能技术生成

一、简单聊聊

        我在写自己的课程设计的时候,用的持久层API就是JPA。整个项目给我带来的感受就是:低SQL语句开发,甚至是零SQL语句开发,使得我在开发过程中,不再关注SQL语句的书写问题与逻辑问题。这使得我在开发过程中,更加专注于自己的业务逻辑,而不在拘泥于SQL表和Java实体之间的映射。尤其在多表查询这一块,JPA以其超简洁的语法规则,给我们实现了表一对一乃至一对多的关系。那么今天想给大家分享的是,一对一的多表查询。

二、简单认识JPA

以下引用了网上对JPA的介绍:

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

        Spring Data Common是Spring Data所有模块的公用部分,该项目提供跨Spring数据项目的共享基础设施。它包含了技术中立的库接口以及一个坚持java类的元数据模型。

  Spring Data不仅对传统的数据库访问技术JDBC、Hibernate、JDO、TopLick、JPA、Mybitas做了很好的支持、扩展、抽象、提供方便的API,还对NoSQL等非关系数据做了很好的支持,包括MongoDB、Redis、Apache Solr等。

三、Spring Data JPA的环境搭建

        首先我们使用的环境是Spring Boot环境。相信读者都应该会新建一个springboot的项目了,因此以下进行简单的环境搭建截图:

        

 这里需要注意一下,我用的版本是2.6.0版本。

 四、使用MYSQL数据库创建student和teacher表

         创建表的SQL语句如下所示:

         值得注意的是,这里的students表的外键是teacher_id,它关联的是teacher表的teacher_id。

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `stu_no` varchar(20) NOT NULL,
  `stu_name` varchar(50) DEFAULT NULL,
  `teacher_id` int(10) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `teacher_id` (`teacher_id`),
  CONSTRAINT `student_ibfk_1` FOREIGN KEY (`teacher_id`) REFERENCES `teacher` (`teacher_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('1', 'stu01', '柏拉图', '1');
INSERT INTO `student` VALUES ('2', 'stu01', '亚里士多德', '1'
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值