If test标签介绍
if 标签可以通过判断传入的值来确定查询条件,test 指定一个OGNL表达式
常见写法
/当前字段符合条件才更新这个字段的值
/当前字段符合条件才更新这个字段的值
<if test='title != null and id == 87 '> title = #{title}, </if>
<if test="title!=null"> title = #{title}, </if>
注意点:
代码:
VideoMapper.java
public interface VideoMapper {
/**
* 选择性更行
*/
int upDate(Video video);
}
VideoMapper.xml:
<update id="upDate" parameterType="work.yspan.online_class.domain.Video">
update video
<trim prefix="set" suffixOverrides=",">
<if test="title != null">title=#{title,jdbcType=VARCHAR},</if>
<if test="summary != null">summary=#{summary,jdbcType=VARCHAR},</if>
<if test="coverImg != null">cover_img=#{coverImg,jdbcType=VARCHAR},</if>
<if test="price != 0">price=#{price,jdbcType=INTEGER},</if>
<if test="createTime != null">create_time=#{create_Time,jdbcType=TIMESTAMP},</if>
<if test="point != 0">point=#{point,jdbcType=DOUBLE},</if>
</trim>
where id=#{id,jdbcType=INTEGER}
</update>
测试代码:
public class SqlSessionDemo {
public static void main(String [] args) throws IOException {
//读取配置文件
String resouce="config/mybatis-config.xml";
InputStream inputStream= Resources.getResourceAsStream(resouce);
//构建Session工厂
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
//获取Session
try(SqlSession sqlSession=sqlSessionFactory.openSession()){
VideoMapper videoMapper=sqlSession.getMapper(VideoMapper.class);
Video video3=new Video();
video3.setTitle("update后的结果");
video3.setSummary("这是ssm课程2022");
video3.setCoverImg("http://yspan.work:8232/666.png");
video3.setId(50);
videoMapper.upDate(video3);
}
}
}
测试截图:
更新前:
更新后: