1. #{}和${}的区别
#{}:底层使用PreparedStatement。特点:先进行SQL语句的编译,然后给SQL语句的占位符问号?传值。可以避免SQL注入的风险。 ${}:底层使用Statement。特点:先进行SQL语句的拼接。然后再对SQL语句进行编译。存在SQL注入的风险。
2. 向SQL语句中拼接表名,就需要使用${}
现实业务当中,可能存在分表存储的情况。因为一张表存的话,数据量太大,查询效率比较低,可以分表存储。
3. 批量删除:一次删除多条记录
批量删除的SQL语句有两种写法
delete from t_car where id = 1 or id = 2 or id =3;
delete from t_car where id in(1,2,3);
4. 模糊查询:Like
%${brand}$%
concat('%',#{brand},'%')
concat('%','${brand}','%')
"$"#{brand}"$"
5. mybatis-config.xml文件中的mappers标签
<mapper resource="CarMapper.xml"/>要求类的根路径下必须有:CarMapper.xml文件
<mapper class="全限定接口名,带有包名"/>要求mapper.xml文件必须和接口放一起,且名字必须一致。