这个就比较厉害了 , 也是Mybatis的突出特点
有一说一,坚持写了5个月Blog(搬运课堂笔记),跟别人说话时候的思路都很清晰
一.基本概念
这里最重要的还是 #{} 与 ${}的区别
共性 : 都是为了取数据
特性 : #{}的底层是预处理对象(防注入,速度快) , 关于啥是预处理对象 , 可参照前面讲JDBC的文章
${}底层是拼接string , 不能防注入 , 但是很明显,在需要动态拼接SQL的时候非常方便
说到这里 , 那什么是动态拼接SQL呢? 就是通过传参的方式 , 写入除SQL关键字以外的内容
SELECT * FROM goods;
↑ ↑
如何使用? : 在传参的时候使用#{}
, 在传SQL结构的时候使用${}
二.代码
[先发]
1.动态查询
<!-- 动态查询 -->
<select id="selecttive" resultType="goods" parameterType="goods">
select * from goods
<where>
<if test="id!=null and id!=''">
and id=#{id}
</if>
<if test="name!=null and name!=''">
and name=#{name}
</if>
</where>
</select>
2.动态更新
<update id="updatetive" parameterType="goods">
update goods
<set>
<if test="id != null and id != ''">
id=#{id},
</if>
<if test="name != null and name != ''">
name=#{name},
</if>
</set>
where id=#{id}
</update>
3.集合查询
<select id="selectByName" parameterType="java.util.List"
resultType="goods">
select * from goods where name
in
<foreach item="one" collection="list"
separator="," open="(" close=")">
#{one}
</foreach>
</select>
4.模糊查询
<select id="selectByLike" parameterType="string" resultType="goods">
select * from goods where name
like
CONCAT('',#{value},'%')
</select>
三.如何打印日志
这里的日志是关于查询数据库操作的日志
这五个包拷到webcontent下
这个包拷到src下
最后build path即可