31. 谈谈你对MyBatis的理解?主配置文件是什么?
1.Mybatis是一个半ORM框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动,创建连接,创建Statement等繁杂的过程。程序员直接编写原生态SQL,可以严格控制SQL执行性能,灵活度高。
2.Mybatis可以使用XML或注解来配置和映射原生信息,将POJO映射成数据库的记录,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。
3.通过XML文件或注解的方式将要执行的各种Statement配置起来,并通过Java对象和Statement中SQL的动态参数进行映射生成最终执行的SQL语句,最后由Mybatis框架执行SQL并将结果映射为Java对象并返回。
主配置文件:mybatis-config.xml
32. Mapper文件的SQL组的返回值有几种?
两种,resultMap和resultType
33. ORM是什么?
ORM,即Object-Relational Mapping(对象映射关系),他的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。
34. 什么是动态SQL?
动态SQL就是根据不同的条件生成不同的sql语句。所谓的动态sql,本质还是sql语句,只是我们在sql层面,去执行一个逻辑代码。动态sql就是拼接sql语句,我们只有保证sql正确性,按照sql的格式,去排列组合就可以了。
35. MyBatis如何开启缓存?
在mybatis-config.xml中设置
在Mapper.xml启用缓存功能
实体类实现Serializable接口
将实体类序列化
开启debug日志级别,在控制台查看
36. MyBatis的核心对象有哪些?
SqlSessionFactory,
Mapper,
SqlSession,
SqlSessionFactoryBuiler
37. Association 和 Collection 是什么?
Association是用于一对一和多对一,而collection是用于一对多的关系。
38. resultType="java.util.Map" 有什么特点?
将返回值装到Map集合,Map集合中定义了翻译规则,把数据库的标准命名改为Java的标准命名
39. Spring的主要功能有哪些?
为代码解耦,降低代码间的耦合度,就是让对象和对象之间关系不是使用代码关联,而是通过配置来说明。
控制反转和面向切面。
40. 自行new创建的对象,可以被Spring管理到吗?
不可以,new对象与Spring管理的对象没有关联,new对象并没有spring参与管理,它的属性不存在依赖注入,它的属性要手动实例化。Spring管理的对象与它的属性存在依赖关系。