#{}与${}的区别
-
#{}是一个占位符,可以防止sql注入,因为占位符中的数据,向sql语句中赋值的时候,都会自动加上双引号
${}是原封不动拼接,不能防止sql注入. -
#{}是预编译,效率高.
${}拼接是每次都编译,效率低. -
如果传递的参数是简单类型的#{}里可以随便写
如果传递的参数是简单类型的${}比必须写value
两者的共同点是如果参数为对象类型,都是些对象的属性.
单例对象跟多例对象的生命周期
单例对象生命周期
出生
容器初始化完成后出生
活着
容器在,对象在
死亡
容器销毁,对象死亡。
多例对象生命周期
出生
使用对象的时候才创建
活着
一直活着
死亡
由java垃圾回收器负责回收