mybatis-generator 插件使用

mybaits在业务系统中的使用很广泛,mybatis-generator就是一款是实用的插件用来生成model和mapper。

maven插件配置

pom.xml文件配置:


        
            org.mybatis
            mybatis
            3.4.0
        
    
    
        
            
                org.mybatis.generator
                mybatis-generator-maven-plugin
                1.3.5
                
                    true
                    true
                
            
        
    

mybatis-generator 配置




    
    
    
    
    
        
        
        
        
        
            
            
        
        
        
        
        
            
        
        
        
            
            
        
        
        
            
        
        
        
            
        
        
        
        

enableXXXExample 是一个很有用的配置,可以帮助生成基本的增删查(包含统计)改接口,其中查询接口是非常强大的。然而这些查询仅限于单表查询,其实单表查询的情况比例是非常大的,实在需要级联查询、特殊查询的时候可以再单独写sql。

条件查询示例

//根据手机号码查询用户
public UserInfo getByPhoneNo(String phoneNo) {
        UserInfoExample userInfoExample = new UserInfoExample();
        userInfoExample.createCriteria()
                .andUserPhoneEqualTo(phoneNo);
        List userInfos = userInfoMapper.selectByExample(userInfoExample);
        return SaftyListUtil.getFirst(userInfos);
    }

条件更新示例

//更新某个人的所有消息状态
@Transactional
    public void updateStatusByUserId(int userId, MessageStatus newStatus, MessageStatus oldStatus) {
        MessageInfoDetailExample messageInfoDetailExample = new MessageInfoDetailExample();
        messageInfoDetailExample.createCriteria()
                .andReceiverUserIdEqualTo(userId)
                .andStatusEqualTo(oldStatus.getCode());
        MessageInfoDetail messageInfoDetail = new MessageInfoDetail();
        messageInfoDetail.setStatus(newStatus.getCode());
        messageInfoDetailMapper.updateByExampleSelective(messageInfoDetail, messageInfoDetailExample);
    }

运行插件

如果需要覆盖之前生成的类和mapper,需要加入参数-Dmybatis.generator.overwrite=true,遗憾的是,1.3.5版本时mapper文件只能追加,不能覆盖。所以在运行之前需要手动删除mapper。做个脚本就可解决,详见附录。

mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate

附录

window下bat:

RMDIR src\main\resources\mapping /s/q
mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate

shell:

DIR="src/main/resource/mapping" 
if [ -e  "$DIR" ]  
then
  rm -rf $DIR
  echo "delete mappig dir"
else
  echo "no mapping dir"
fi
mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate

你可能感兴趣的:(mybatis-generator 插件使用)