mybatis缓存机制面试都问些什么?mybatis缓存面试题及答案整理!

KLQ 2020-06-04 11:36:09 java常见问答 7433

下面要给大家分享的是mybatis缓存面试题,那么一般mybatis面试题都有哪些内容呢?有哪些面试题是经常会问到的?下面一起来看看吧。

面试题

1、mybatis是什么?

答案:mybatis是一个半ORM框架,内部封装了JDBC,开发的时候,只要关注SQL语句/java/post/854.html本身,不要花费多余的精力去处理加载驱动、创建连接、创建statement等过程。

直接编写原生态sql,能够严格控制sql执行性能,灵活度高。

关于mybatis是什么的内容,大家可以通过以下的文章来进行更加详细的了解-mybatis原理都有哪些?mybatis是什么?

2、mybatis的优点有哪些?MyBatis框架的缺点有哪些?

答案:优点:基于SQL语句编程,非常的灵活,不会对应用程序或者是数据库的现有设计造成影响,SQL写在XML里面,解除sql和程序代码的耦合,有助于统一管理;提供XML标签,支持编写动态SQL语句,并可重用;和JDBC比较起来,减少了50%以上的代码量,消除了JDBC大量冗余的代码,不需要去手动开关连接;可以很好的和各种数据库兼容;可以很好的和Spring集成;提供映射标签,支持对象和数据库的ORM字段关系映射;提供对象关系映射标签,支持对象关系组件维护。

缺点:编写工作量大,SQL语句依赖于数据库,数据库移植性差,不可以随意的去更换数据库。

推荐阅读:mybatis优缺点是什么?有哪些优点和缺点?

3、MyBatis和Hibernate的区别有哪些?

答案:不完全是一个ORM框架;Mybatis直接编写原生态sql,能够严格控制sql执行性能,灵活度高,但是,假如要实现支持多种数据库的软件,那么就要自定义多套sql映射文件,工作量比较大;Hibernate对象和关系映射能力强,数据库无关性好,对于关系模型要求高的软件,假如要用hibernate开发,能够节省很多的代码,提高效率。

4、#{}和${}的有什么区别?

答案:#{}是预编译处理,${}是字符串替换;Mybatis在处理#{}的时候,会把sql当中的#{}替换成为?号,调用PreparedStatement的set方法来赋值;Mybatis在处理${}的时候,会将${}替换成变量的值;使用#{}能够有效的防止SQL注入,提高系统安全性。

推荐阅读:mybatis中$#的区别是什么?有什么区别?

5、怎样批量插入?

创建一个insert语句

<insert id=”insertname”>
2          insert into names (name) values (#{value})
3     </insert>

在java代码中执行批处理插入

list < string > names = new arraylist();
names.add(“fred”);
names.add(“barney”);
names.add(“betty”);
names.add(“wilma”);
// 注意这里 executortype.batch
sqlsession sqlsession = sqlsessionfactory.opensession(executortype.batch);
try
{
    namemapper mapper = sqlsession.getmapper(namemapper.class);
    for (string name: names)
    {
        mapper.insertname(name);
    }
    sqlsession.commit();
}
catch (Exception e)
{
    e.printStackTrace();
    sqlSession.rollback();
    throw e;
}
finally
{
    sqlsession.close();
}

推荐阅读:mybatis批量插入数据如何实现?实现方式有哪些?

6、mybatis动态sql有什么用?执行原理是什么?有哪些动态sql?

答案:能够在Xml映射文件当中,用标签的形式编写动态sql,执行原理是根据表达式的值 完成逻辑判断并动态拼接sql的功能;提供了九种动态sql标签:trim | where | set | foreach | if | choose | when | otherwise | bind。

7、ybatis是半自动ORM映射工具为什么要这样说?和全自动的区别是什么?

答案:Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象或者是关联集合对象的时候,能够依据对象关系模型直接获取,所以说,它是全自动的;而Mybatis在查询关联对象或关联集合对象的时候,则要手动编写sql来完成,所以,就叫做半自动ORM映射工具。

mybatis面试题就暂时给大家分享到这里了,还想了解更多的面试题,可以继续通过奇Q工具网的面试题栏目来了解。

推荐阅读:

微服务面试一般问什么?java微服务面试题以及答案整理

java springboot框架面试题,springboot常见面试题整理

redis常见面试题有哪些?redis集群面试题及答案整理