tk.mybatis的使用(续)

一、简介

本篇博客要讲的是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);
    }
}    
2.应该一看就懂得使用了吧,这里要说明的.andXXX(“property”,“value”)、.orXXX(“property”,“value”)等函数里面的两个参数问题
2.1 property
property言下之意就是属性的意思,这里放的属性是要对应你写的类里面字段的名字,比如说我要匹配的用户的ID,你的User类里写的是userId,那么我这里就写userId
Example简单的说就是要查询的条件要写成你写的Entity(实体)类里一样的名字,这就提到另外一个ByCondition了,你们应该也有看到那些ByCondition的函数了吧,没错,使用Condition的话,对应的字段要写成你数据库字段名字,比如说你要查询用户ID,那么你数据库里写的是user_id,那么你的property就要学“user_id”
2.2 value
我觉得这个并没有什么说明的必要吧,就是查询值而已
3.分页说明
刚刚的代码的函数里我是使用了分页吧,现在就说明一下吧
分页函数selectByExampleAndRowBounds(Example,RowBounds)
Example就不用说明了吧,现在就说说RowBounds(a,b),这里的a就是从第几条开始(从第零条开始),b是几条。言下之意就是从第几条开始几条
我上篇博客里写的BaseMapper里继承的接口没有可以提供selectByExampleAndRowBounds(Example,RowBounds)函数的接口,你们要使用的时候要去继承RowBoundsMapper<T> 接口

五、关于tk.mybatis的API

这里我就不详细说明了,我就提供我看过的一篇好的博客:tk-mybatis使用
去看看里面API介绍,可以知道函数的具体使用
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值