1、基于注解的简单操作


我们可以不用xxxMapper.xml了
把sqlMapConfig.xml的

换成这个:

2.基于注解的多表操作,一对一、一对多、多对多


代码的注释可参考xml的博客:https://blog.youkuaiyun.com/GLOAL_COOK/article/details/113523359
2.1一对一


之前是在xml这样写:

现在不要xxxMapper.xml,直接在xxxMapper接口写:
package com.itheima.mapper;
import com.itheima.domain.Order;
import com.itheima.domain.Sys_user;
import org.apache.ibatis.annotations.One;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* @author QLBF
* @version 1.0
* @date 2021/2/1 23:12
*/
public interface OrderMapper {
@Select("select * from orders")
@Results({
@Result(column = "id",property = "id"),
@Result(column = "ordertime",property = "ordertime"),
@Result(column = "total",property = "total"),
@Result(column = "uid",property = "uid"),
@Result(
property = "sys_user", //写你下面要封装实体(Order)的属性名称(private Sys_user sys_user)
column = "uid", //写根据哪个字段去查询sys_user表的数据,就表示这里是select * from orders查到的uid再去请求下面的findById的意思
javaType = Sys_user.class, //写你这个Result要封装的实体类型
//select属性 代表查询哪个接口的方法获得数据,前提是findById是真的的存在的方法
one = @One(select = "com.itheima.mapper.UserMapper.findById")
)
})
public List<Order> findAll(); //演示一对一,一个订单对应一个用户,全部查出来而已
}

2.2 一对多


之前这样写:
现在这样:


2.3多对多

跟1对多差不多,多个中间表而已(不用建实体类)


之前xml是这样的:
现在是这样的:


3.代码:

domain:
package com.itheima.domain;
import java.util.Date;
/**
* @author QLBF
* @version 1.0
* @date 2021/2/1 16:32
*/
public class Order {
private int id;
private Date ordertime;
private double total;
private int uid;
@Override
public String toString() {
return "Order{" +
"id=" + id +
", ordertime=" + ordertime +
", total=" + total +
", uid=" + uid +
", sys_user=" + sys_user +
'}';
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
//当前订单属于哪个用户(外键在实体类得用对象或者对象集合岚表示),1.演示一对一
private Sys_user sys_user;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Date getOrdertime() {
return ordertime;
}
public void setOrdertime(Date ordertime) {
this.ordertime = ordertime;
}
public double getTotal() {
return total;
}
public void setTotal(double total) {
this.total = total;
}
public Sys_user getSys_user() {
return sys_user;
}
public void setSys_user(Sys_user sys_user) {
this.sys_user = sys_user;
}
}
package com.itheima.domain;
/**
* @author QLBF
* @version 1.0
* @date 2021/2/1 18:22
*/
public class Role {
private int id;
private String roleName;
private String roleDesc;
@Override
public String toString() {
return "Role{" +
"id=" + id +
", roleName='" + roleName + '\'' +
", roleDesc='" + roleDesc + '\'' +
'}'

本文介绍了如何使用Mybatis的注解进行开发,包括基于注解的简单操作,不再需要xml配置。重点讲解了一对一、一对多和多对多的注解实现,提供了详细的代码示例和关键配置,帮助理解如何在接口中直接定义SQL操作。
最低0.47元/天 解锁文章
4926

被折叠的 条评论
为什么被折叠?



