插入一条user的数据,可以直接根据username和password插入
//insert into user(username,password) values(?,?)
@Insert("insert into user(username,password) values(#{username},#{password})")
void save(User user);
但是如果有一个需求,要求传入username和password能正常输入,传入username、password、id也能够正常插入,这个时候就可以使用Provider注解。这个的用法就是可以创建一个方法类,在类里面做判断,让mapper里面的查询方法根据写的方法来选择需要的sql语句。
Userprovider类
import com.sikiedu.springbootssm.entity.User;
public class Userprovider {
public String saveUser(User user)
{
if(user.getId()==null)
{
return "insert into user(username,password) values(#{username},#{password}) ";
}
else
{
return "insert into user values(#{id},#{username},#{password})";
}
}
}
在这个类里面我们做判断,选择需要的sql语句。
mapper的书写
@InsertProvider(type = Userprovider.class,method="saveUser")
void save (User user);