栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mybatis的二级缓存(mybatis一级缓存和二级缓存)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mybatis的二级缓存(mybatis一级缓存和二级缓存)

高级映射注意点

如果实体类属性为另一个对象,或者是另一个对象的集合时,在查询的时候我们就需要使用高级映射,标签:

association  -- 属性为对象时使用

collection -- 属性为集合时使用

这里就以员工和部门为例。

部门对象包含员工集合类,这里使用了 lombok 插件。代码如下:

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Department implements Serializable {
    
    private int pid;
    
    private String name;
    
    private List employeeList;
}

员工对象中所属部门使用的是部门对象,代码如下:

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Employee implements Serializable {
    
    private String eid;
    
    private String name;
    
    private Department department;
    
    private String telPhone;
    
    private int age;
}

两个实体类对应的 Mapper 接口我只实现了一个 Add 和 Get 方法,如下:

public interface EmployeeMapper {
    int addEmployee(Employee employee);
    Employee getEmployeeByEid(String eId);
}
public interface DepartmentMapper {
    int addDepartment(Department dep);
    Department getDepById(int pid);
}

Mapper 接口对应的 xml 文件内容如下:




    
        
        
        
        
        
            
            
        
    
    
        select a.*,b.* from mybatis_employee a,mybatis_department b
        where a.pid=b.pid and a.eid=#{eid}
    
    
        insert into mybatis_employee (eid,name,pid,telphone,age)
        values (#{eid},#{name},#{department.pid},#{telPhone},#{age})