1、Mybatis 都有哪些Executor执行器?它们之间的区别是什么?
Mybatis 有三种基本的Executor 执行器,SimpleExecutor、ReuseExecutor、BatchExecutor。 1)SimpleExecutor:每执行一次update或select,就开启一个Statement对象,用完立刻关闭Statement对象。
2)ReuseExecutor:执行update或select,以sql作为key 查找 Statement对象,存在就使用,不存在就创建,用完后,不关闭Statement对象,而是放置于Map。
3)BatchExecutor:完成批处理。
2、Mybatis中如何指定使用哪一种Executor执行器?
在Mybatis配置文件中,可以指定默认的ExecutorType执行器类型,也可以手动给DefaultSqlSessionFactory的创建 SqlSession的方法传递ExecutorType类型参数。
3、如何获取自动生成的(主)键值?
配置文件设置usegeneratedkeys为true。
4、resultType与resultMap的区别
(1)类的名字和数据库相同时,可以直接设置resultType参数为Pojo类。
(2)若不同,需要设置resultMap将结果名字和Pojo名字进行转换。
5、使用MyBatis的mapper接口调用时的要求
(1)Mapper接口方法名和mapper.xml中定义的每个sql的id相同。
(2) Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的parameterType的类型相同。
(3)Mapper 接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同。
(4)Mapper.xml文件中的namespace即是mapper接口的类路径。
6、IBatis和MyBatis在核心处理类分别叫什么?
IBatis 在核心处理类叫做SqlMapClient,MyBatis 在核心处理类叫做SqlSession。
7、IBatis和MyBatis在细节上的不同有哪些?
1)在sql里面变量命名有原来的#
变量#变成了#{变量}
。
2)原来的$
变量$
变成了${变量}
。
3)原来在sql节点里面的class都换名字交type。
4)原来的queryForObject queryForList 变成了selectOne、selectList。
5)原来的别名设置在映射文件里面放在了核心配置文件里。