简单的动态sql
下面是代码:
package com.hp.springboot_video_project.provider;
import com.hp.springboot_video_project.entity.Video;
import org.apache.ibatis.jdbc.SQL;
/**
* 配置动态sql
*/
public class VideoSqlProvider {
public String updateVideo(final Video video) {
return new SQL() {
{
UPDATE("video");
if(video.getTitle() != null){
SET("title=#{title}");
}
if(video.getSummary() != null){
SET("summary=#{summary}");
}
if(video.getCoverImg() != null){
SET("cover_img=#{coverImg}");
}
if(video.getViewNum() != null){
SET("view_num=#{viewNum}");
}
if(video.getPrice() != null){
SET("price=#{price}");
}
if(video.getCreateTime() != null){
SET("create_time=#{createTime}");
}
if(video.getOnline() != null){
SET("online=#{online}");
}
if(video.getPoint() != null){
SET("point=#{point}");
}
WHERE("id=#{id}");
}
}.toString();
}
}
持久层:
package com.hp.springboot_video_project.dao;
import com.hp.springboot_video_project.entity.Video;
import com.hp.springboot_video_project.provider.VideoSqlProvider;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* 持久层
*/
@Repository
public interface VideoDao {
/**
* 编辑信息
*
* @param video
* @return
*/
@UpdateProvider(type = VideoSqlProvider.class, method = "updateVideo")
public Integer update(Video video);
}