Mybatis面试题

《林老师带你学编程》知识星球是由多个工作10年以上的一线大厂开发人员联合创建,希望通过我们的分享,帮助大家少走弯路,可以在技术的领域不断突破和发展。

🔥 具体的加入方式:

1.什么是Mybatis?

MyBatis 是一款优秀的支持自定义 SQL 查询、存储过程和高级映射的持久层框架,消除了 几乎所有的 JDBC 代码和参数的手动设置以及结果集的检索 。 MyBatis 可以使用 XML 或注解进 行配置和映射,

MyBatis 通过将参数映射到配置的 SQL 形成最终执行的 SQL 语句 ,最后将执行 SQL 的结果映射成 Java对象返回。

2.Hibernate优点?

Hibernate建立在POJO和数据库表模型的直接映射关系上。通过xml或注解即可和数据库表做映射。通 过pojo直接可以操作数据库的数据。它提供的是全表的映射模型。

   消除代码映射规则,被分离到xml或注解里配置。

  无需在管理数据库连接,配置在xml中即可。

  一个会话中,不要操作多个对象,只要操作Session对象即可。

  关闭资源只需关闭Session即可。

3.Hibernate缺点?

  全表映射带来的不便,比如更新需要发送所有的字段。

  无法根据不同的条件组装不同的sql。

  对多表关联和复杂的sql查询支持较差,需要自己写sql,返回后,需要自己将数据组成pojo。   不能有效支持存储过程。

  虽然有hql,但是性能较差,大型互联网需要优化sql,而hibernate做不到。

4.Mybatis优点?

1.  小巧,学习成本低,会写sql上手就很快了。

2.  比jdbc,基本上配置好了,大部分的工作量就专注在sql的部分。

3.  方便维护管理,  sql不需要在Java代码中找,  sql代码可以分离出来,重用。

4.  接近jdbc,灵活,支持动态sql。

5.  支持对象与数据库orm字段关系映射。

5.Mybatis缺点?

   由于工作量在sql上,需要 sql的熟练度高。

  移植性差。  sql语法依赖数据库。不同数据库的切换会因语法差异,会报错。

6.什么时候用Mybatis?

如果你需要一个灵活的、可以动态生成映射关系的框架。目前来说,因为适合,互联网项目用Mybatis 的比例还是很高滴。

7.Mybatis的核心组件有哪些?分别是?

SqlSessionFactoryBuilder(构造器) :它会根据配置信息或者代码来生成SqlSessionFactory。

SqlSessionFactory  (工厂接口)  :依靠工厂来生成SqlSession。

SqlSession  (会话):是一个既可以发送 sql去执行返回结果,也可以获取Mapper接口。

SQL Mapper:它是新设计的组件,是由一个Java接口和XML文件(或注解)构成的。需要给出对象的 SQl和映射规则。它负责发送SQL去执行,并返回结果。

8.#{}${}的区别是什么?

${}是字符串替换,  #{}是预编译处理。  一般用#{}防止 sql注入问题。

9.Mybatis9个动态标签是?

  •    if
  •    c h o o s e (when 、 oterwise)
  •    trim (where 、 set)
  •    foreach
  •    bind

10.xml映射文件中,有哪些标签?

查看更多

滚动至顶部