栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mybatis面试小结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mybatis面试小结

1、什么是mybatis框架?

持久层框架
支持定制sql
支持存储过程和高级映射orm
封装jdbc
sql和代码分离

2、什么是orm

实体关系映射
先建立实体类和数据库表之间的映射以及表关系映射。
通过映射,将表的操作转为对象的操作。
详细:
对象的操作,通过映射转为表操作的sql;
将结果集,通过映射转为实体对象。

3、什么是数据的持久化?

将程序(内存)中的数据和数据库相互转换,数据在瞬时状态和持久状态之间转换。
通俗,数据库的CURD。

4、#和$区别

#传入的参数在SQL中显示为字符串(当成一个字符串),会对自动传入的数据加一个双引号。(预编译)(PreparedStatement)
$传入的参数在SqL中直接显示为传入的值(Statement)
#可以防止SQL注入的风险(语句的拼接);但$无法防止Sql注入。
$方式一般用于传入数据库对象,例如传入表名

5、resultType和resultMap区别

resultType实体映射
resultMap手动映射

6、什么是数据库连接池?有哪些常见的?

为了避免频繁地创建数据库连接,提出了数据库连接池技术。
数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用现有的数据库连接,而不是重新建立。
数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,当应用程序访问数据库时并不是直接创建Connection,而是向连接池“申请”一个Connection。如果连接池中有空闲的Connection,则将其返回,否则创建新的Connection。使用完毕后,连接池会将该Connection回收,并交付其他的线程使用,以减少创建和断开数据库连接的次数,提高数据库的访问效率。

druid、c3p0,dbcp==

7、什么是动态sql?有哪些常用的标签?使用场景?

根据不同的条件,组合sql语句。
标签:
where
if
when
set
forEach
使用场景:多条件查询

8、多表查询的方式

(1)连接查询
(2)关联查询(嵌套查询)

9、表之间的关系

(1)一对一
(2)一对多
(3)多对多

10、数据库中,多表查询有哪些?

(1)内连接查询
(2)外连接查询
左外连接
右外连接
(3)自查询
(4)子查询
(5)笛卡尔积

11、mybatis的执行流程

读取配置文件,
加载映射,
创建sqlsessionFactory
创建sqlsession
创建Executor
创建mapperdStatement
输入映射
执行sql
输出映射

12、缓存?失效?

原文
一级缓存:session级别
默认开启
二级缓存:sessionFactory级别
手动开启
失效:
(1)、进行增删改操作,清除对应的一级缓存和二级缓存。
(2)、Session flush或close,清除对应的一级缓存。

13、延迟加载(懒加载)策略

关联查询中,assocation,collection
如果没有访问这些数据,先不加载

14、mybatis有哪些常用的注解

@Select
@Update
@Insert
@Delete

@SelectProvider
@UpdateProvider
@InsertProvider
@DeleteProvider

@Param

@Mapper

15、mybatis日志

支持多种日志框架
默认按照顺序查找 slf4j>…
也可以指定

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/976116.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号