mybatis专场
MyBatis有哪些执行器(Executor)?
mybatis有三种执行器
第一种是不可重复利用的,每次执行都创建一下,用完就自动销毁。
第二种是可以重复利用的,在有这个执行器的时间,他直接使用,在没有这个执行器的时间他才会创建,但他不会自动销毁,可以一直使用
第三种是批量执行sql语句的的,但是他不支持事务
在mybatis中如何批量插入数据
批量插入数据的方式有很多,可以通过java代码的方式进行插入,是通过for循环的方式插入,除了通过java代码方式外还可以通过sql语句来进行批量插入
在使用mybatis中的mapper接口调用时,需要注意什么
第一:要注意路径,不要写错了
第二,要注意接口名和id名对应
第三:要注意动态传参时,参数名或者参数类型不要写错了
在mybatis中如何反回插入时的主键id
在MySQL中还是比较容易的,因为mysql有主键自增的策略,在插入之后就可以直接调用,而order不行,他没有主键自增策略,他需要模拟一大堆的东西才能实现这个插入后id获取的操作(我之前就不知道mysql主键自增的好处,因为不知道,所以我是在插入后,在查询最后一条数据的id)
介绍一下mybatis的缓存机制
mysq默认有两种缓存机制,分别是一级缓存和二级缓存,一级缓存是本地缓存,默认开启,而二级缓存需要自己手动开启
mybatis是否支持延迟加载
mybatis支持延迟加载,但是要想实现延迟加载需要一定的配置才能开启
在mybatis中,id是否可以重复
id不可以重复,因为id重复的话mybatis不知道你要调用哪一个id,但是id也可以重复,比如说在不同的xml文件里,或者给每一个方法起一个名字,名字加id,mybatis就知道你要调用哪一个了,自然id可以重复
mybatis如何实现分页?
在mybatis中有很多种分页方式
比如,一下把数据全部查出来,在list里进行分页取出
或者通过sql的方式,通过limit动态参数来分页
或者通过拦截器的方式进行分页,拦截你要分页的东西进行统一的分页处理
亦或者通过分页插件的方式老进行分页
如何给mybatis里的参数定义别名
可以通过as的方式给每个字段起别名,或者通过resmapper的方式通过实体类的方式来起别名
今天7.27号,天气晴
mybatis中#与$的区别
#是预编译处理,自动的把你所传的参数变为字符串,有效的防止sql注入
而$的方式是直接进行拼接,有可能会被有歹心的人进行sql注入攻击,比如说在你参数的后面加入一个delete 表名什么的