美文网首页java
MyBatis的Mapper接口以及Example的实例函数及详

MyBatis的Mapper接口以及Example的实例函数及详

作者: wvqusrtg | 来源:发表于2017-12-27 10:12 被阅读31次

    资料:http://blog.csdn.net/biandous/article/details/65630783

    一、mapper接口中的方法解析

    mapper接口中的函数及方法

    方法功能说明

    int countByExample(UserExample example) thorws SQLException按条件计数

    int deleteByPrimaryKey(Integer id) thorws SQLException按主键删除

    int deleteByExample(UserExample example) thorws SQLException按条件查询

    String/Integer insert(User record) thorws SQLException插入数据(返回值为ID)

    User selectByPrimaryKey(Integer id) thorws SQLException按主键查询

    ListselectByExample(UserExample example) thorws SQLException按条件查询

    ListselectByExampleWithBLOGs(UserExample example) thorws SQLException按条件查询(包括BLOB字段)。只有当数据表中的字段类型有为二进制的才会产生。

    int updateByPrimaryKey(User record) thorws SQLException按主键更新

    int updateByPrimaryKeySelective(User record) thorws SQLException按主键更新值不为null的字段

    int updateByExample(User record, UserExample example) thorws SQLException按条件更新

    int updateByExampleSelective(User record, UserExample example) thorws SQLException按条件更新值不为null的字段

    二、example实例解析

    mybatis的逆向工程中会生成实例及实例对应的example,example用于添加条件,相当where后面的部分 

    xxxExample example = new xxxExample(); 

    Criteria criteria = new Example().createCriteria();

    方法说明

    example.setOrderByClause(“字段名 ASC”);添加升序排列条件,DESC为降序

    example.setDistinct(false)去除重复,boolean型,true为选择不重复的记录。

    criteria.andXxxIsNull添加字段xxx为null的条件

    criteria.andXxxIsNotNull添加字段xxx不为null的条件

    criteria.andXxxEqualTo(value)添加xxx字段等于value条件

    criteria.andXxxNotEqualTo(value)添加xxx字段不等于value条件

    criteria.andXxxGreaterThan(value)添加xxx字段大于value条件

    criteria.andXxxGreaterThanOrEqualTo(value)添加xxx字段大于等于value条件

    criteria.andXxxLessThan(value)添加xxx字段小于value条件

    criteria.andXxxLessThanOrEqualTo(value)添加xxx字段小于等于value条件

    criteria.andXxxIn(List<?>)添加xxx字段值在List<?>条件

    criteria.andXxxNotIn(List<?>)添加xxx字段值不在List<?>条件

    criteria.andXxxLike(“%”+value+”%”)添加xxx字段值为value的模糊查询条件

    criteria.andXxxNotLike(“%”+value+”%”)添加xxx字段值不为value的模糊查询条件

    criteria.andXxxBetween(value1,value2)添加xxx字段值在value1和value2之间条件

    criteria.andXxxNotBetween(value1,value2)添加xxx字段值不在value1和value2之间条件

    三、应用举例

    1.查询

    ① selectByPrimaryKey()

    User user = XxxMapper.selectByPrimaryKey(100); //相当于select*fromuserwhereid =100

    1

    ② selectByExample() 和 selectByExampleWithBLOGs()

    UserExample example =newUserExample();Criteria criteria = example.createCriteria();criteria.andUsernameEqualTo("wyw");criteria.andUsernameIsNull();example.setOrderByClause("username asc,email desc");Listlist = XxxMapper.selectByExample(example);//相当于:select* from user where username ='wyw'andusernameisnullorder by username asc,email desc

    1

    2

    3

    4

    5

    6

    7

    注:在iBator逆向工程生成的文件XxxExample.java中包含一个static的内部类Criteria,Criteria中的方法是定义SQL 语句where后的查询条件。

    2.插入数据

    ①insert()

    User user = new User();user.setId("dsfgsdfgdsfgds");user.setUsername("admin");user.setPassword("admin")user.setEmail("wyw@163.com");XxxMapper.insert(user);//相当于:insertintouser(ID,username,password,email)values('dsfgsdfgdsfgds','admin','admin','wyw@126.com');

    1

    2

    3

    4

    5

    6

    7

    3.更新数据

    ①updateByPrimaryKey()

    User user =new User();user.setId("dsfgsdfgdsfgds");user.setUsername("wyw");user.setPassword("wyw");user.setEmail("wyw@163.com");XxxMapper.updateByPrimaryKey(user);//相当于:update usersetusername='wyw', password='wyw', email='wyw@163.com'where id='dsfgsdfgdsfgds'

    1

    2

    3

    4

    5

    6

    7

    ②updateByPrimaryKeySelective()

    User user = new User();user.setId("dsfgsdfgdsfgds");user.setPassword("wyw");XxxMapper.updateByPrimaryKey(user);//相当于:updateusersetpassword='wyw'whereid='dsfgsdfgdsfgds'

    1

    2

    3

    4

    5

    ③ updateByExample() 和 updateByExampleSelective()

    UserExample example = new UserExample();Criteria criteria = example.createCriteria();criteria.andUsernameEqualTo("admin");User user = new User();user.setPassword("wyw");XxxMapper.updateByPrimaryKeySelective(user,example);//相当于:updateusersetpassword='wyw'whereusername='admin'

    1

    2

    3

    4

    5

    6

    7

    updateByExample()更新所有的字段,包括字段为null的也更新,建议使用 updateByExampleSelective()更新想更新的字段

    4.删除数据

    ①deleteByPrimaryKey()

    XxxMapper.deleteByPrimaryKey(1);  //相当于:deletefromuserwhereid=1

    1

    ②deleteByExample()

    UserExample example = new UserExample();Criteria criteria = example.createCriteria();criteria.andUsernameEqualTo("admin");XxxMapper.deleteByExample(example);//相当于:deletefromuserwhereusername='admin'

    1

    2

    3

    4

    5

    5.查询数据数量

    ①countByExample()

    UserExample example = new UserExample();Criteria criteria = example.createCriteria();criteria.andUsernameEqualTo("wyw");int count = XxxMapper.countByExample(example);//相当于:selectcount(*)fromuserwhereusername='wyw'

    相关文章

      网友评论

      • lesslie1992:用Markdown写吧,这种格式太,,,
      • 426f7355e31f:这个能不能查limit的呀?
        wvqusrtg:@苏泼慢 这个没试过,你直接环境里看看有方法木:joy:其实我是搞App的

      本文标题:MyBatis的Mapper接口以及Example的实例函数及详

      本文链接:https://www.haomeiwen.com/subject/jmiygxtx.html