Spring框架一对多 和 一对一

  今日萌新学习框架 想整理一下学到的东西 不对的请大佬指正

   1.首先创建框架要先配置你的pom.xml文件

      导入依赖 pom.xml文件下的依赖有

<dependencies>
//这个是使用Spring-Context的注解实现依赖注入功能.
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.23</version>
    </dependency>
 //这个是测试注解的依赖
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
 //TestNG支持用例或者组之间的依赖。
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>RELEASE</version>
        <scope>test</scope>
    </dependency>

//lombok插件可以让实体类快速生成set get方法
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.24</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

2.main.java下面创建实体类进行测试

 先创建三个实体类

这些在数据库中都有表 表结构为

 

 

school里面的属性分别是 teacher 和 student

 

 然后在student 和 teacher里面分别运用@Data注解 

@Data注解在类上时,简化java代码编写,为该类提供读写属性,还提供了equals(),hashCode(),toString()方法

然后再分别写两个show方法

 然后再resources下配置你的xml文件

首先编写student 和 teacher的bean组件

例:

id是bean组件的id  class 是bean组件的类别 

name就是你class后面类的属性名   value是给该属性赋的值

 

 然后是测试

在test的java文件下创建你的测试类 然后在类中写测试方法

记得测试类上要加注解@Test 然后自己创建对象用set赋值 并输出

这是测试方法一 

这是spring的一对一 

输出结果为

 

测试方法二

测试方法二创建spring容器 

 

 读取之前在resources下创建的xml文件

然后通过通过ApplicationContext的getBean方法来获取Spring容器中已初始化的bean

在实体类school里写show方法 来调用student 和 teacher的show方法

输出结果为

为何与上面的结果不同呢

因为一对多首先是先读取bean组件的赋的值

如果你用set赋值的话就先输出set赋的值

然后返回school对象 

 然后输出 这就是spring的一对多

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: Spring Boot MyBatis一对多是指在Spring Boot框架下使用MyBatis实现一对多关系的数据操作。一对多关系是指一个实体类对应多个子实体类的关系,例如一个班级对应多个学生。在MyBatis中,可以使用嵌套查询或者关联查询来实现一对多关系的数据操作。在Spring Boot中,可以使用MyBatis-Plus等工具来简化MyBatis的操作,提高开发效率。 ### 回答2: Spring Boot是一种开源的Java框架,用于构建微服务、RESTful API等。MyBatis是一个优秀的基于Java的持久层框架,可以方便地访问关系数据库。一对多是指,一个主表中的一个记录对应于多个从表中的记录,这种关系可以用外键来实现。 在Spring Boot中使用MyBatis实现一对多,首先需要创建实体类和数据库表结构。主表和从表之间需要用外键进行关联。接下来可以使用MyBatis的映射文件为实体类和数据库表进行映射。对于一对多的关系,可以在主表的映射文件中使用"collection"来引用从表的映射文件,具体实现如下: ``` <resultMap id="userMap" type="User"> <id column="id" property="id"/> <result column="name" property="name"/> <result column="age" property="age"/> <collection property="orders" ofType="Order"> <id column="id" property="id"/> <result column="order_number" property="orderNumber"/> <result column="address" property="address"/> </collection> </resultMap> ``` 在映射文件中,使用"collection"标签定义从表的映射信息,并指定对应的实体类和数据库表名。在"collection"标签中,可以通过"ofType"属性指定从表的实体类类型。处理完映射文件之后,可以通过MyBatis的Mapper接口进行CRUD操作,实现一对多的关系。 总之,Spring Boot和MyBatis可以很好地集成,用于创建具有高可维护性和可扩展性的应用程序。利用MyBatis一对多操作,可以轻松地处理主从表之间的关系,从而满足复杂业务需求。 ### 回答3: Spring Boot是一个基于Spring框架的开发框架,它能够简化Spring项目的开发和配置过程,提供了许多常用的功能和插件。MyBatis是一个基于Java语言的持久化框架,它实现了SQL的自动映射和参数设置等功能,能够简化Java开发中与数据库的交互。 在Spring Boot项目中使用MyBatis实现一对多关系,需要完成如下步骤: 1. 在pom.xml中引入MyBatisMyBatis-Spring的依赖,例如: ``` <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> ``` 2. 在配置文件中配置MyBatis的连接参数和Mapper文件的扫描路径,例如: ``` mybatis: mapper-locations: classpath:/mapper/*.xml configuration: map-underscore-to-camel-case: true type-aliases-package: com.example.model spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai username: root password: root ``` 3. 在实体类中定义一对多的关系,例如: ``` public class User { private Long id; private String name; private List<Role> roles; // getter 和 setter 方法 } ``` ``` public class Role { private Long id; private String name; private List<User> users; // getter 和 setter 方法 } ``` 4. 定义Mapper的查询语句,利用MyBatis的动态SQL语句来实现一对多查询,例如: ``` <select id="findById" resultMap="userResultMap"> select u.*, r.id as role_id, r.name as role_name from user u left join user_role ur on u.id = ur.user_id left join role r on ur.role_id = r.id where u.id=#{id} </select> ``` ``` <resultMap id="userResultMap" type="User"> <id property="id" column="id"/> <result property="name" column="name"/> <collection property="roles" ofType="Role"> <id property="id" column="role_id"/> <result property="name" column="role_name"/> </collection> </resultMap> ``` 完成以上步骤后,Spring Boot可以通过MyBatis来实现一对多查询,并将结果映射到实体类中的列表属性中,从而方便地操作多个关联的实体对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值