Java面试宝典每日3题:day28

Posted 闲言_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面试宝典每日3题:day28相关的知识,希望对你有一定的参考价值。

1.为什么需要预编译

  JDBC中 使用对象PreparedStatement来抽象预编译语句,使用预编译。预编译阶段 可以优化SQL的执行,预编译之后SQL大多数情况下都可以直接执行, DBMS不需要再次编译,越复杂SQL,编译复杂度将越大,预编译阶段可以合并多个操作为一个操作。同时预编译语句对象可以重复利用,把一个SQL预编译后产生的PreparedStatement对象缓存下来,下次对于同一个SQL,可以直接使用这个缓存的PreparedStatement对象。 Mybatis默认情况下,将对所有的SQL进行预编译。

2.Mybatis是否支持延迟加载?

  Mybatis仅支持association 关联对象和collection 关联集合对象的延迟加载, association指的就是1对1collection指的是一对多查询。在Mybatis配置文件中,可以配置是否启用延迟加载, lazyLoadingEnable=true|false

3.在mapper中如何传递多个参数?

  1. 顺序传参法
    #{} 里面的 数字代表传入参数的顺序
  2. @Param注解传参法
    #{} 里面的名称对应 注解@Param括号里面定义的名称,这种方法在参数不多的情况比较直观,推荐使用
  3. Map传参法
    #{}里面的名称对应 map里面key的名称,这种方法适用于传递多个参数,且参数易变且灵活传递的情况
  4. Java Bean传参法
    #{}里面的名称对应的是实体 类里面的成员属性

以上是关于Java面试宝典每日3题:day28的主要内容,如果未能解决你的问题,请参考以下文章

Java面试宝典每日3题:day22

Java面试宝典每日3题:day31

Java面试宝典每日3题:day18

Java面试宝典每日3题:day24

Java面试宝典每日3题:day17

Java面试宝典每日3题:day21