MyBatis面试题
原创 集合框架

MyBatis面试题

@$MyBatis是什么? MyBatis 是一款优秀的持久层框架,一个半 ORM(对象关系映射)框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里? ORM(Object Relational Mapping),对象关系映射,是一种为了解
阅读全文
Spring中Bean的生命周期
原创 集合框架

Spring中Bean的生命周期

1、实例化bean:反射的方式生成对象 2、填充bean的属性:populateBean(),进行依赖注入,这里可以扩展出循环依赖问题(三级缓存) 3、调用aware接口相关的方法:invokeAwareMethod(完成BeanName、BeanFactory、BeanClassLoader对象的属性设置) 4、调用BeanPostProcessor中的前置方法:使用的比较多的有(Appl
阅读全文
LinkedHashMap 的实现原理
原创 集合框架

LinkedHashMap 的实现原理

LinkedHashMap 也是基于 HashMap 实现的,不同的是它定义了一个 Entry header,这个 header 不是放在 Table 里,它是额外独立出来的。 LinkedHashMap 通过继承 hashMap 中的 Entry, 并添加两个属性 Entry before,after, 和 header 结合起来组成一个双向链表,来实现按插入顺序或访问顺序 排序。Linked
阅读全文
HashMap 的工作原理
原创 集合框架

HashMap 的工作原理

Java 中的 HashMap 是以键值对 (key-value) 的形式存储元素的。HashMap 需要 一个 hash 函数,它使用 hashCode()和 equals()方法来向集合 / 从集合添加和检 索元素。当调用 put() 方法的时候,HashMap 会计算 key 的 hash 值,然后把键 值对存储在集合中合适的索引上。 如果 key 已经存在了,value 会被更新成新值。
阅读全文
ArrayList 和 Vector 的区别
原创 集合框架

ArrayList 和 Vector 的区别

这两个类都实现了 List 接口(List 接口继承了 Collection 接口),他们都是有序集 合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我 们以后可以按位置索引号取出某个元素,并且其中的数据是允许重复的,这是 HashSet 之类的集合的最大不同处,HashSet 之类的集合不可以按索引号去检索其 中的元素,也不允许有重复的元素(本来题目问的与 hashset
阅读全文
Mybatis动态SQL
原创 集合框架

Mybatis动态SQL

在实际开发中,我们往往需要写复杂的sql语句,需要拼接,而稍微一个不注意,由于引号,空格等缺失可能都会导致错误。MyBatis提供了动态SQL,也就是可以根据用户提供的参数,动态决定查询语句依赖的查询条件或SQL语句的内容。那么好,我们就来说说MyBatis一些常见的dongtaiSQL。 if 和 where 标签 select id,name
阅读全文
MyBatis占位符#{}和拼接符${}的区别
原创 集合框架

MyBatis占位符#{}和拼接符${}的区别

有没有发现,我们去面试时偶尔会问到MyBatis占位符#{}和拼接符${}的区别,那么我就给大家总结一下,以下纯属个人见解。 现象和展示 Mybatis 的Mapper.xml语句中parameterType向SQL语句传参有两种方式:#{}和${} 我们经常使用的是#{},一般解说是因为这种方式可以防止SQL注入,简单的说#{}这种方式SQL语句是经过预编译的,它是把#{}中间的参数转义成
阅读全文
本文目录
    Loading...