简介: 以下是某同学面试时,面试官问到的问题,关于面试题答案可以参考以下内容~

上一篇:Java经典面试题整理及答案详解(二)
Java面试真题第三弹接住!相信通过前两节的学习,大家对于Java多少有些了解。学习Java建议还是多动手练习,很多时候你会发现想的和写出来运行的不是一回事儿,本节内容大家可以根据题目自己练习看看~

1.使用MyBatis做模糊查询的时候,在日志中看到执行了sql语句,但是查询不到结果。

面对这样的问题,如果可以看到后台的日志出现有相关的信息显示,那么就表示现在的整体环境搭建是没有任何问题的,但是为什么数据没有呢?
个人经验总结有如下几点:
(1) 你的数据库里没有符合条件的数据,观察你的事务问题,更换一个新的客户端连接;
(2) 你在使用模糊查询的时候,所传递的参数可能就有问题,这个时候最好的解决方案,就是观察数据层里面传入的内容是否正确;
(3) 在使用模糊查询的时候千万要记住在关键字的左右增加一个“%”,如果没有加,那么就不叫模糊查询了;
(4) 你现在所连接的数据库并不是你真正的数据库。

2.在MyBatis的sql语句中使用if判断传递过来的某参数是不是null是有效的,但是却不能判断空字符串“ ’’’’ ”。

动态SQL是依靠配置实现的,它只能够判断null。你可以在业务层的处理上追加一些判断功能,例如:如果发现有内容为空字符串( ’’’’),那么你就为其设置null。
动态SQL很有帮助。

3.MyBatis和Hibernate中的set方法

MyBatis开发里面主要的核心是要求用户自己来定义使用的SQL语句。而Hibernate特点由于其要考虑其可移植性的问题,所以在Hibernate处理之中,它所需要考虑的就是一个自动生成SQL问题。
现在所有问题都放在了POJO类(VO)、Hibernate下,如果该POJO类的对象处于持久态状态,那么每一次调用setter方法都会更新数据(如果你的事务是手工控制,则在若干个setter调用后才会发出更新操作),而MyBatis没有这样的功能,因为Hibernate之中搞的这种对象的状态设计有些糟糕,而且这也是Hibernate本身性能低的原因。追究其起源,主要是因为传统的EJB(EntityBean)影响。

4.Resource与Autowired区别

在使用Spring的自动的Annotation注解的时候经常会见到两类的注解:@Resource(个人常用)、@Autowired ,如果你想要了解这两个的区别,最好的做法是先认真学完了spring依赖注入的时候讲解过的自动配置操作,在spring里面自动配置的模式有两类:按照类型、按照名称。
@Autowired:则表示按照类型进行自动注入,缺点是如果类型相同,则无法注入;
@Resource:具备按照类型自动注入的特点,而后如果现在类型相同,则可以设置一个名称,也就是说你使用@Component、@Service等注解设置自动扫描的时候可以设置一个名字,而这个名字就可在@Resource中使用了;
SpringBoot里面,因为其自动支持一些环境配置,如果使用的是Autowired,那么配置多个相同类型的Bean的话,将无法进行准确的注入操作。必须使用@Resource完成。

5.Hibernate控制反转

现在所说的是Hibernate中针对关系的配置处理,控制反转就是把控制权交给了对方,这种情况一般出现在数据的级联关系配置上:一对多、多对多。
以一个程序的分析为例:一个人有多本书,在Hibernate的世界里充满了神奇,它可以自动将没有的数据进行增加处理。正常的流程,首先要有一个人,这个人会有一个编号,在进行书的信息添加的时候就需要把这个人的编号一起保存进去。
如果不配置控制反转,它的处理:
——增加人的信息;
——增加所有书的信息,但此时人的保存的关联字段内容是null;
——再更新所有书的信息,将人的关系的内容保存进来。
正常的流程(控制反转,将子表与父表关联字段的使用控制权交给子表自己控制)是:
——保存人的信息,同时取得人的编号,将这些编号设置到书的内容里面;
——保存书的信息

Java经典面试题整理及答案详解(三)相关推荐

  1. Java经典面试题整理及答案详解(八)

    简介: Java经典面试题第八节来啦!本节面试题包含了进程.线程.Object类.虚拟内存等相关内容,希望大家多多练习,早日拿下心仪offer- 了解更多: Java经典面试题整理及答案详解(一) J ...

  2. Java经典面试题整理及答案详解(四)

    简介: Java经典面试题第四弹来啦!本节小编整理了关于Java开发框架常见的面试题,希望大家多多怜惜,一起进步- 1.SpringMVC返回值,使用SpringMVC的时候我看到两种风格的开发,一种 ...

  3. Java经典面试题整理及答案详解(五)

    Java经典面试题第五弹来啦!本节面试题主要是针对Java初级基础提问,看看你还记得多少? 1.String str="hello",这个字符串对象在栈内存中明明有一个引用(str ...

  4. Java经典面试题整理及答案详解(二)

    简介: 现在找工作,背面试题是一方面,但更重要的就是得把这些代码的前后因果关系了解的非常清楚,还是要多写代码多练习. 1. 使用InputStream用什么方法? 答:Read()方法 2. 在JQu ...

  5. 【java】Java经典面试题整理(附答案)

    1.JDK 和 JRE 有什么区别? JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含 ...

  6. 8万字208道Java经典面试题总结(附答案)

    前言 最近有很多粉丝问我,有什么方法能够快速提升自己,通过阿里.腾讯.字节跳动.京东等互联网大厂的面试,我觉得短时间提升自己最快的手段就是背面试题,最近总结了Java常用的面试题,分享给大家,希望大家 ...

  7. Java经典算法四十例编程详解+程序实例

    JAVA经典算法40例 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: ...

  8. 面试题整理01-集合详解

    文章目录 前言 一.集合的整体结构 单列集合接口: 双列集合接口: 二.单列集合详解 1.List接口 1.1 ArrayList集合 特点: 扩容: 添加元素 遍历 1.2 LinkedList集合 ...

  9. Java经典面试题总结(附答案)-java经典面试题大全总结以及整理

    前言  最近总结了Java常用的面试题,分享给大家,希望大家都能圆梦大厂,加油吧. 目录 1.JDK 和 JRE 有什么区别? 2.== 和 equals 的区别是什么? 3.final 在 java ...

最新文章

  1. php 模块指令,php artisan module常用命令
  2. mro python_用python实现MRO算法
  3. php 正则替换url参数,JavaScript正则获取地址栏中参数的方法分享
  4. python语音读取
  5. ubuntu安装时出现11:资源暂时不可用
  6. 华为性格测试挂的原因是什么?这局怎么破?
  7. 面试题(三):高并发编程
  8. IAR for stm8安装破解
  9. 计算机辅助故障树分析法,非常实用的工具和方法:故障树分析法(FTA)
  10. Repeated DNA
  11. 计算机组成原理唐朔飞第二版答案第六章,计算机组成原理第六章部分课后题答案(唐朔飞版)...
  12. 怎么把手机中的照片做成视频?原来这么简单就可以,涨知识了
  13. Java实现字数统计(中文英文韩文日文混合),类似word效果
  14. 面试中的老大难 - MySQL中的锁
  15. java 数字转大写_Java把数字转换成中文大写数字
  16. 未来已经降临,只是先后有别
  17. 登录+增删改查+主题+游客浏览
  18. 报表中如何实现中国地图钻取到各省地图
  19. 云原生数据库的下一次变革发生在哪里?
  20. ap统计学需要什么计算机,AP统计学介绍及备考建议

热门文章

  1. Python-Matplotlib动态曲线图(linechart)绘制
  2. 微软推出 Pylance,改善 VS Code 中的 Python 体验
  3. Python 的 51 个秘密曝光,Github 获 2 万星
  4. python程序一定要有主函数_Python 没有main函数的原因
  5. 广文艺计算机综合美术,广东文艺职业学院2018年第二批合同制人员招聘专业技能考核和试讲题目...
  6. pdfbox 第一页加内容_你用代码做过哪些很酷/有趣的事?
  7. 日常使用计算机工具软件,计算机常用工具软件的使用.doc
  8. python mysql写入速度加快_解决python写入mysql中datetime类型遇到的问题
  9. 用jQuery设置多个css样式
  10. (win10 64位系统中)Visual Studio 2015+OpenCV 3.3.0环境搭建,100%成功