myBatis动态sql if when choose set
动态sql if when choose set
本质就是在xml进行sql语句的拼接
在blogMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
insert into mybatis.blog(id, title, author, create_time, views) value (#{id},#{title}, #{author}, #{createTime}, #{views});
update myBatis.blog
title=#{title},
author=#{author},
views=#{views}
where id=#{id}
接口
package dao;
import pojo.Blog;
import java.util.List;
import java.util.Map;
public interface BlogMapper {
int addBlog(Blog blog);
//if查询,全部if判断
List QueryBlog(Map map);
//when、choose查询,只选择choose条件的其中一个,其他无效
List QueryChooseBlog(Map map);
//set 用于update语句 update table set
int updateSetBlog(Map map);
测试
import dao.BlogMapper;
import org.apache.ibatis.session.SqlSession;
import pojo.Blog;
import pojo.IDtiles;
import utils.myBatisUtils;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Test {
@org.junit.Test
public void addBlog() {
//添加用户
SqlSession sqlSession = myBatisUtils.getSqlSession();
BlogMapper mapper = sqlSession.getMapper(BlogMapper.class);
Blog blog = new Blog();
blog.setId(IDtiles.getBlogID());
blog.setAuthor("作者1");
blog.setTitle("标题1");
blog.setViews(99);
blog.setCreateTime(new Date());
mapper.addBlog(blog);
blog.setId(IDtiles.getBlogID());
blog.setTitle("标题2");
mapper.addBlog(blog);
blog.setId(IDtiles.getBlogID());
blog.setTitle("标题3");
mapper.addBlog(blog);
blog.setId(IDtiles.getBlogID());
blog.setTitle("标题4");
mapper.addBlog(blog);
sqlSession.commit();
sqlSession.close();
}
@org.junit.Test
public void QueryBlog() {
//if某字段查询
SqlSession sqlSession = myBatisUtils.getSqlSession();
BlogMapper mapper = sqlSession.getMapper(BlogMapper.class);
Map map = new HashMap<>();
map.put("title","标题1");
map.put("author","作者1");
List blogs = mapper.QueryBlog(map);
for (Blog blog : blogs) {
System.out.println(blog);
}
sqlSession.close();
}
@org.junit.Test
public void QueryChooseBlog() {
//choose when某字段查询
SqlSession sqlSession = myBatisUtils.getSqlSession();
BlogMapper mapper = sqlSession.getMapper(BlogMapper.class);
Map map = new HashMap<>();
//只选择一个条件查询,顺序以xml文件为准
map.put("title","标题1");
map.put("author","作者1");
List blogs = mapper.QueryChooseBlog(map);
for (Blog blog : blogs) {
System.out.println(blog);
}
sqlSession.close();
}
@org.junit.Test
public void updateSetBlog() {
//choose when某字段查询
SqlSession sqlSession = myBatisUtils.getSqlSession();
BlogMapper mapper = sqlSession.getMapper(BlogMapper.class);
Map map = new HashMap<>();
//只选择一个条件查询,顺序以xml文件为准
map.put("title","标题2");
map.put("id","22aa25b5932947f788bada74516bfb3d");
int blogs = mapper.updateSetBlog(map);
System.out.println(blogs);
sqlSession.close();
}
}