模板
id, username, password, create_time as createTime
insert into tb_user(username, password, create_time) values (#{username}, md5(#{password}), now())
insert into tb_goods(goods_name, goods_price, create_time) values
(#{goodsName}, #{goodsPrice}, now())
select last_insert_id()
update tb_user set
username = #{username} ,
password = md5(#{password}) ,
create_time = #{createTime} ,
update_time = now()
where id = #{id}
delete from tb_user where id = #{id}
update tb_user set
username = #{username} ,
password = md5(#{password}) ,
create_time = #{createTime} ,
update_time = now()
where id = #{id}
insert into tb_user(username, password, create_time) values
( #{user.username} , md5(#{user.password}) , now() )
模糊查询 ,需要通过 concat 函数 拼接 % ,
在 MySQL数据库中,如果查询的条件 使用了 函数,那么 会导致索引失效
在 mybatis 中, 可以 通过 bind 标签, 来绑定变量 ,
name 是设置的变量名, value 是 要设置的变量值
‘#{}’ 是一个占位符 ,主要应用于 SQL中 值 的占位, 在执行的时候,会被自定替换成 ? ,
在底层进行拼接的时候,会自动 在值的前后 添加引号,也可以对值进行转义, 可以用来防止SQL注入
‘${}’ 是一个占位符, 主要应用于 SQL中的 结构上(非值), 在执行的时候,不会被替换成 ?
会将值 原义 输出,作为SQL结构的一部分
‘${}’ 不能滥用,因为会产生SQL注入的风险, 能用 #{} 就绝对不要使用 ${} 进行占位