Mybatis学习之路-Day4

Mybatis学习之路-Day4

1、Mybatis中的延迟加载

问题:在一对多中,当我们有一个用户,他有100个账户
在查询用户的时候,要不要把关联的账户查出来
在查询账户的时候,要不要把关联的用户查出来
在查询用户时,用户下的账户信息应该是,什么时候使用,什么时候查询的
在查询账号时,账户的所属用户信息应该随着账户查询一块出来
什么是延迟加载
在真正使用数据时才发起查询,不用的时候不查询,按需查询(懒加载)
什么是立即加载
不管用不用只要一调用方法就马上发起查询
多对一、一对一:通常使用立即加载
多对多、一对多:通常使用延迟加载

2、Mybatis中的缓存

什么是缓存
存在于内存中的临时数据
为什么使用缓存
减少和数据库的交互次数、提高执行效率
什么样的数据能使用缓存,什么样的数据不能使用缓存
适用于缓存:经常查询并且不经常改变、数据的正确与否对最终结果影响不大
不适用于缓存:数据经常改变、数据的正确与否对最终结果影响很大
例如:银行的汇率,股市的牌价
Mabatis中的一级缓存和二级缓存
在这里插入图片描述

3、Mybatis中的注解开发

环境搭建
单标CRUD操作(代理dao方式)

package com.kingniu.dao;

import com.kingniu.domain.User;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
 * 在mybatis中针对CRUD一共有四个注解
 * 分别是@SELECT @INSETR @UPDATE @DELETE
 */

public interface IUserDao {

    /**
     * 查询所有
     * @return
     */
    @Select("select * from user")
    List<User> findAll();

    /**
     * 保存用户
     * @param user
     */
    @Insert("insert into user(username,address,sex,birthday)values(#{username},#{address},#{sex},#{birthday})")
    void saveUser(User user);

    /**
     *
     */
    @Update("update user set username = #{username},sex=#{sex},birthday=#{birthday},address=#{address} where id = #{id}")
    void updateUser(User user);

    /**
     * 删除用户
     * @param userId
     */
    @Delete("delete from user where id = #{id}")
    void deleteUser(Integer userId);

    /**
     * 根据id查询用户
     * @param userId
     * @return
     */
    @Select("select * from user where id = #{id}")
    User findById(Integer userId);

    /**
     * 模糊查询
     * @param username
     * @return
     */
    @Select("select * from user where username like #{username}")
    List<User> findUserByName(String username);

    /**
     * 查询用户数量
     * @return
     */
    @Select("select count(*) from user")
    int findTotal();
}

类名和数据库名对不起来的时候,需要借助Results注解

多表查询操作

多对一和一对多
在这里插入图片描述
缓存的配置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5tX40q2V-1649037394326)(C:\Users\15833\AppData\Roaming\Typora\typora-user-images\image-20220310202446277.png)]
开启二级缓存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值