0.什么是Mybatis,优点,适用场合
是一个半自动化的持久层框架,内部封装了的jdbc,开发时候只需要关注sql,不用去浪费时间处理驱动连接等复杂的过程
优点:灵活,sql和java代码分开,便于管理,一个专注业务、一个专注数据,提供映射标签,支持编写动态sql,简单易学
对性能要求高,需求变化多的项目可以选择
1.Mybatis 中 #{}和 ${}的区别是什么?
#{}是预编译处理,${}是字符串替换。在处理#时候会将#{}替换为?将$替换为变量的值
#{}可以防止sql注入 提高安全性
既然${}会引起sql注入,为什么有了#{}还需要有${}呢?那其存在的意义是什么?
原生jdbc不支持占位符的地方可以使用${}进行取值
比如分表:按照年份分表
Select * from ${year}_salary
Select * from xx order by ${name} ${order}
#{}主要用于预编译,而预编译的场景其实非常受限,而${}用于替换,很多场景会出现替换,而这种场景可不是预编译