Mybatis 面试

1.如何防止sql注入

占位符,使用#{},不使用${}

2.项目中如何分页的

分页分为内存分页和物理分页,大数据量的时候要注意利用索引覆盖,减少回表

3.是否支持延时加载,实现原理是什么

支持,实现原理是动态代理,默认使用的是javassist

javassist 简解 详解

不同于jdk,cglib 这俩是编译时期动态生成代理类,javassist是跳过编译时代,在即时编译器转成机器码之前,动态生成代理类.

4.一级缓存和二级缓存

一级缓存:基于SQLsession的,也就是基于数据库链接的,默认开启,建议改成statement,实现方式是perpetualCace中的hashMap
二级缓存:基于mapper的,也就是基于namespace的,默认关闭,也是perpetual中的HashMap

5.如何获取自动生成的主键

添加标签 usegeneratedKey,指定key属性和实体类字段就行了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值