mybatis

1.mybatis常用注解

      @MapperScan 该注解扫描某个包下的mapper,将mapper交给spring进行管理

      @Mapper 用于告诉spring框架此接口的实现类由mybatis负责创建 ,并将实现类对象存入spring容器管理

        @select     @update     @delete    @insert

2.Mybatis框架的理解

        Mybatis是一款优秀的持久层框架,mybatis几乎避免了所有的JDBC代码和手动设置参数以及获取结果集。可以使用简单的xml或注解来配置和映射原生类型、接口、java类。

3.在mybatis中,¥{}和#{}的区别?

        #{}是占位符,是预编译处理;${} 是字符替换

       Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的 set

方法来赋值;
        
        Mybatis 在处理${}时,就是把${}替换成变量的值。 使用#{}可以有效的防止 SQL 注入,
提高系统安全性。
4.mybatis的编程步骤
        1.创建SQLSessionFactory
        
        2.通过SQLSessionFactory创建SqlSession
        3.通过SqlSession执行数据库操作
        4. 调用 session.commit()提交事务
        
        5. 调用 session.close()关闭会话
5、在mybatis中,resulttype和resultMap的区别
        
        数据库中的属性名与实体类中的属性名完全一致,用resultType;
        
        数据中的属性名与实体类中的属性名不一致,需要用resultMap来手动映射关系
6、mybatis中的动态标签有哪些?
        
        1.<if>:if判断传入的值是否符合某种规则,如是否不为空
        
        2.<where> :标签可以用来动态拼接条件查询语句
        3.《foreach》: 可以把传入的集合对象进行遍历,然后把每一项的内容 作为参数传到 sql 语句中.
        4.<include>: 可以把大量的重复代码整理起来,当使用的时候直接 include 即可,减少重复代码的编写;
        
        5.<set>适用于更新中,当匹配某个条件后,才会对该字段进行跟新操作
7、mybatis缓存机制的理解?
        mybatis有两级缓存,一级缓存是sqlsession级别的,默认开启,二级缓存是mapper级别的默认关闭。可以手动打开。
         
        1.一级缓存:基于PerpetualCache的hashmap本地缓存,存储作用域为session,当session被flush或close后,session中的缓存就被清空,保存在内存中,不适合持久化存储。
        
        2.二级缓存:作用域为mapper,使用二级缓存属性类需要实现序列化接口
        3.  对于缓存数据更新机制,当某一个作用域(一级缓存 Session/二级缓存 Namespaces)
的进行了 C(增加)/U(更新)/D(删除)操作后,默认该作用域下所有 select 中的缓存将被 clear.
需要在 setting 全局参数中配置开启二级缓存。
        
         当我们的配置文件配置了 cacheEnabled=true 时,就会开启二级缓存,二级缓存是
mapper 级别的,如果你配置了二级缓存,那么查询数据的顺序应该为:二级缓存→一级
缓存→数据库。

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值