java工作三年面试题系列---mybatis

前言:虽然工作中可以百度,但是面试不能,可能你会,但是面试不一定会,总结一下相关的知识,让知识更加清楚吧

1.mybatis是怎样的框架,如何连接数据库,如何配置?

mybatis 是一种orm框架,对jdbc的封装,保留了使用sql的方式,dao层使用,一个接口对用一个xml文件的方式,接口中的方法有xml对应的方法进行实现并返回结果,xml里面可以直接使用原生的sql对数据库进行相关的操作,并添加不止于select/update/delete/insert 等标签

2.mybatis批量是如何实现的?

mybatis映射中可以通过标签来实现Oracle的批量插入、更新和删除
标签中主要有以下属性:
collection、item、index、open、separate、close
collection:该属性必须指定,指代Dao层接口传递的数据类型,主要有三种:
①:list集合类型;collection=”list“
②:array数组类型;collection=”array“
③:map映射类型;collection=”map“
item:别名,表示集合中每一个元素迭代时的别名,获取数据时必须指定用别名来指定,不然会报错。
index:迭代下标,即迭代过程中的位置。
open:表示语句以什么开始。
separate:表示每次迭代之间以什么符号作为分割。

close:表示语句以什么结束。

3.mybatis如何实现分页
实现的方式主要使用mybatis自带的相关的插件,插件的左右就是拦截mybatis select 相关的操作,对查询相关的操作,当做一个子查询,例如oracle 就是 封装一个查询返回具体总数,分页数量等信息,查询的格式为 select * from (子查询) where rowNum <10

<typeAliases>
	<typeAlias alias="Page" type="com.wds.site.common.persistence.Page" /><!--分页  -->
</typeAliases>

<!-- 插件配置 -->
<plugins>
	<plugin interceptor="com.wds.site.common.persistence.interceptor.PaginationInterceptor" />
</plugins>

4.#{}和${}的区别是什么?
1.#{}实际上传的参数,经过预编译处理,可以有效的防止sql注入
2. ${}使用的占位符,直接将参数传到拼接的sql语句中,在分表操作中使用的多

猜你喜欢

转载自blog.csdn.net/jiangwudidebaba/article/details/105688118