当前位置:   article > 正文

Mybatis注解开发(超详细),超详细_注解开发mybatis

注解开发mybatis

@Results({@Result(),@Result()})或@Results(@Result())**

**@Resutl 注解

代替了<id> 标签和<result>标签

@Result 中的属性介绍:**

| @Result 中的属性 | 介绍 |

| — | — |

| id | 是否是主键字段 |

| column | 数据库的列名 |

| property | 需要装配的属性名 |

| one | 需要使用的@One 注解(@Result(one=@One)())) |

| many | 需要使用的@Many 注解(@Result(many=@many)())) |

**@One 注解(一对一

代替了<assocation>标签,是多表查询的关键,在注解中用来指定子查询返回单一对象。

@One 注解属性介绍:

select 指定用来多表查询的 sqlmapper

fetchType 会覆盖全局的配置参数 lazyLoadingEnabled。

使用格式:@Result(column=" “,property=”“,one=@One(select=”"))**

**@Many 注解(多对一)

代替了<collection>标签,是是多表查询的关键,在注解中用来指定子查询返回对象集合。

注意:聚集元素用来处理“一对多”的关系。需要指定映射的 Java 实体类的属性,属性的 javaType(一般为 ArrayList)但是注解中可以不定义。

使用格式:@Result(property=“”,column=“”,many=@Many(select=“”))**

项目目录


在这里插入图片描述

使用注解实现一对一复杂关系映射及立即加载


需求:加载账户信息时并且加载该账户的用户信息,根据情况可实现立即加载。(注解方式实现)

添加 User 实体类及 Account 实体类

User:

package com.keafmd.domain;

import java.io.Serializable;

import java.util.Date;

import java.util.List;

/**

  • Keafmd

  • @ClassName: User

  • @Description: User实体类

  • @author: 牛哄哄的柯南

  • @date: 2021-02-16 20:28

*/

public class User implements Serializable {

private Integer userId;

private String userName;

private String userAddress;

private String userSex;

private Date userBirthday;

public Integer getUserId() {

return userId;

}

public void setUserId(Integer userId) {

this.userId = userId;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public String getUserAddress() {

return userAddress;

}

public void setUserAddress(String userAddress) {

this.userAddress = userAddress;

}

public String getUserSex() {

return userSex;

}

public void setUserSex(String userSex) {

this.userSex = userSex;

}

public Date getUserBirthday() {

return userBirthday;

}

public void setUserBirthday(Date userBirthday) {

this.userBirthday = userBirthday;

}

@Override

public String toString() {

return “User{” +

“userId=” + userId +

“, userName='” + userName + ‘’’ +

“, userAddress='” + userAddress + ‘’’ +

“, userSex='” + userSex + ‘’’ +

“, userBirthday=” + userBirthday +

‘}’;

}

}

Account:

package com.keafmd.domain;

import java.io.Serializable;

/**

  • Keafmd

  • @ClassName: Account

  • @Description: 账户实体类

  • @author: 牛哄哄的柯南

  • @date: 2021-02-16 22:51

*/

public class Account implements Serializable {

private Integer id;

private Integer uid;

private Double money;

//多对一(mybatis中称之为一对一)的映射,一个账户只能属于一个用户 *

private User user;

public User getUser() {

return user;

}

public void setUser(User user) {

this.user = user;

}

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public Integer getUid() {

return uid;

}

public void setUid(Integer uid) {

this.uid = uid;

}

public Double getMoney() {

return money;

}

public void setMoney(Double money) {

this.money = money;

}

@Override

public String toString() {

return “Account{” +

“id=” + id +

“, uid=” + uid +

“, money=” + money +

‘}’;

}

}

添加账户的持久层接口并使用注解配置

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/922002
推荐阅读
相关标签
  

闽ICP备14008679号