0%

like与通配符搭配使用进行模糊查询

通配符

  • % 表示任意多个字符
  • _ 表示任意单个字符
1
2
3
4
5
6
#用户名中包含a的
select * from user where name like '%a%'
#用户名中第二个字符为a的
select * from user where name like '_a%'
#用户名中第二个字符为_的(需要使用转义字符)
select * from user where name like '_\_%'

LinkedList详解

LinkedList是List接口的一个主要的实现类之一,基于链表的实现。以java8为例来了解一下LinkedList的源码实现

阅读全文 »

ArrayList详解

List中使用最多的就是ArrayList,基本上大家在实例化一个List的时候都是

1
List list = new ArrayList();

所以在这里了解一下ArrayList的实现过程(以java8为例)

主要特点

  • 有序存储元素
  • 允许元素重复,允许存储null值
  • 支持动态扩容,相当于一个动态的数组
  • 非线程安全
阅读全文 »

bean的生命周期

  • 如果有BeanFactoryPostProcessor实现类,调用postProcessBeanFactory方法
  • bean的构造实例化
  • 调用set方法设置bean的属性,填充属性
  • 如果bean实现了BeanNameAware接口,调用BeanNameAware的setBeanName()方法,此处传递的是spring配置文件中bean的id值
  • 如果bean实现了BeanFactoryAware接口,调用BeanFactoryAware的setBeanFactory()方法,传递的是spring工厂本身,可以用该方式来获取其他bean
  • 如果bean实现了ApplicationContextAware接口,调用setApplicationContext()方法,与上述类似
  • 如果bean关联了BeanPostProcessor接口,调用BeanPostProcessor的postProcessBeforeInitialization()方法,被用作bean内容的修改
  • 如果bean中有@PostConstruct注解标注的方法,则调用该方法
  • 如果bean实现InitializingBean接口,调用InitializingBean的afterPropertiesSet()方法,
  • 调用自定义的初始化方法(init-method属性指定该方法)
  • 如果bean关联了BeanPostProcessor接口,调用BeanPostProcessor类的postProcessAfterInitialization()方法

此时容器初始化完成

容器进行销毁时

  • 如果bean中有@PreDestroy标注的方法,则调用该方法
  • 如果bean实现了DisposableBean接口,调用destory()方法
  • 调用自定义的销毁方法(destory-method属性指定该方法)
阅读全文 »

关系分类

SQL区分为三类关系

  • 表 在数据库中存储,可以对其进行增删改查
  • 视图 通过计算定义的关系,并不在数据库中存储,只在需要的使用进行构造
  • 临时表 在执行查询或更新时由SQL程序临时构造的,处理结束后就会删除

语言分类

  • 数据查询语言DQL

    select语句

  • 数据操作语言DML(Data Manipulation Language)

    insert、update、delete语句

  • 数据定义语言DDL(Data Definition Language)

    SQL 语言集中负责数据结构定义与数据库对象定义的语言,主要功能是定义数据对象,create、drop、alter语句,属于隐式提交,不能回滚

  • 数据控制语言DCL(Data Control Language)

    grant授权、revoke

  • 事务控制语言TCL(Transaction Control Language)

    rollback回滚、commit提交