一、简介
本篇博客要讲的是tk.mybatis的一些具体使用,如果想了解简单使用的话,可以去看看我的另外一篇博客:tk.mybatis的使用
二、说明
根据上一篇博客的说明,tk.mybatis可以简单做一些增删改成,但是你点(.)一下看到的各种函数,如下所示
你可以看到很多写好的函数,比如说按主键查询、按给的类的条件查询、按主键删除等等等
那么如果说我不想根据主键进行增删改查,我想要根据自己定义好的条件来增删改查,可不可以呢?
答案肯定是可以的啊!!
你仔细看看你点(.)一下的函数,里面是不是有一些函数名叫XXXByExample(),比如说deleteByExample()、updateByExample()、selectByExample()等等
三、Example说明
1.Example是tk.mybatis提供的类,导包要导入正确!
import tk.mybatis.mapper.entity.Example
2.所谓的ByExample,就是根据你给定的条件,封装在Example类里,作为条件传入,如下图所示
看上图所给的函数,是不是跟你写SQL语句很像?
andLike 就是根据用 and 条件来连接 like XXX
andEqual 就是根据用 and 条件来连接 = XXX
还有or的XXX啊,什么条件啊,应该不用我一一说明了,下面直接进入使用
四、使用
1.我们就增删改查各来一套吧
import org.apache.ibatis.session.RowBounds;
import org.springframework.stereotype.Component;
import tk.mybatis.mapper.entity.Example;
import javax.annotation.Resource;
import java.util.List;
@Component
public class UserDaoImpl{
@Resource
private UserDao userDao;
//增加
public int saveUser(User user){
return userDao.insertSelective(user);
}
//删除
public int removeUser(Long id,Long version){
Example example = new Example(User.class);
example.createCriteria().andEqualTo("id",id).andEqualTo("version",version);
return userDao.deleteByExample(example);
}
//修改(后面这个Selective,是指你传进去的类,如类里的属性为null,那么这个字段就不会被更新,如果没有Selective,那么无论这个字段是什么值,都会在被更新一次,一般更新都不会全部更新吧,所以我使用Selective)
public int updateUser(User user){
Example example = new Example(User.class);
example.createCriteria().andEqualTo("id",user.getId()).andEqualTo("version",user.getVersion());
user.setVersion(user.getVersion()+1);
return userDao.updateByExampleSelective(user,example);
}
//查询(我这里使用了分页查询,等下会在说明)
public List<User> queryUserByPage(String name, String code, String tel, RowBounds rowBounds){
Example example = new Example(User.class);
example.createCriteria().andLike("name",name+"%").andEqualTo("code",code).andEqualTo("tel", tel);
return userDao.selectByExampleAndRowBounds(example,rowBounds);
}
}