springboot mybatis 配置

本文介绍mybatis、mybatis-generator配置使用。

依赖安装



    mysql
    mysql-connector-java
    runtime
    8.0.17



    org.mybatis.spring.boot
    mybatis-spring-boot-starter
    2.1.0


    org.mybatis.generator
    mybatis-generator-core
    1.3.5



    com.github.pagehelper
    pagehelper
    5.0.0

添加数据源&mybatis配置

springboot中mybatis配置文档:http://mybatis.org/spring-boo...

application.properties添加如下内容:

#================== mysql数据库 =====================#
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/maven-test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

#================== mybatis =====================#
#映射文件路径
mybatis.mapper-locations=classpath:mybatis/mapper/*Mapper.xml
#指定mybatis生成包
mybatis.type-aliases-package=com.chenglulu.mybatis.entity.*
#指定mybatis配置文件路径
mybatis.config-location=classpath:mybatis/mybatis-config.xml

mybatis配置文件mybatis-config.xml如下




    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    
    
        
    



mybatis-generator配置

classpath:mybatis路径下新建mybatis-generator.xml文件。





    
    
     
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
            
            
             
        
        
        
            
        
        
        
            
            
        
        
        
            
            
            
            
            
            
            
            
        
        
        
            
        
        
        
            
        
        
        

pom.xml配置

  • 添加资源打包

    
        src/main/resources
        
            **/*.properties
            **/*.yml
            **/*.xml
        
        true
    
  • 添加mybatis-generator配置插件

            
                org.mybatis.generator
                mybatis-generator-maven-plugin
                ${plugins.mybatis.generator.maven.version}
                
                    true
                    true
                    src/main/resources/mybatis/mybatis-generator.xml
                
                
                    
                        org.mybatis.generator
                        mybatis-generator-core
                        1.3.5
                    
                    
                        mysql
                        mysql-connector-java
                        ${dep.mysql.connector.java.version}
                    
                
            

启动类添加mapper接口扫描

@SpringBootApplication
@MapperScan(basePackages = {"com.chenglulu.mybatis.dao"})
public class MySpringBootApplication {
    public static void main(String[] args){
        SpringApplication.run(MySpringBootApplication.class, args);
    }
}

示例

maven-test数据库

首先新建maven-test数据库,并新建users表,如下图:

springboot mybatis 配置_第1张图片

users表结构如下:

springboot mybatis 配置_第2张图片

生成mapper、dao实体类

执行mvn mybatis-generator:generate -e命令:

  • 连接数据库,数据库为mybatis-generator.xml中配置的数据库连接
  • 生成实体类,对应mybatis-generator.xmltable

生成文件如下:

  • 生成UsersMapper.xml文件

springboot mybatis 配置_第3张图片

  • 生成mapper、dao实体类

springboot mybatis 配置_第4张图片

Service使用

package com.chenglulu.service.database;
import com.chenglulu.controller.users.domain.FindUsersParams;
import com.chenglulu.enums.UserDeleteEnum;
import com.chenglulu.enums.UserStatusEnum;
import com.chenglulu.mybatis.dao.UsersMapper;
import com.chenglulu.mybatis.entity.Users;
import com.chenglulu.mybatis.entity.UsersExample;
import com.chenglulu.utils.CommonUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
@Service
@Slf4j
public class UsersDatabase {
    @Autowired(required=false)
    private UsersMapper usersMapper;
    /**
    * 新建用户 * @param users Users
    * @return boolean 
    */ 
    public Users insertUser(Users users){
        Date date = new Date();
        users.setId(CommonUtils.getUuid());
        users.setCreateTime(date);
        users.setUpdateTime(date);
        users.setStatus(UserStatusEnum.OK.getCode());
        users.setDelete(UserDeleteEnum.NORMAL.getCode());
        int insertResult = usersMapper.insertSelective(users);
        log.info("insertUser insertResult = {}", insertResult);
        if(insertResult == 1){
            return users;
        }
        return null;
    }
    /**
    * 查询用户列表 * @param params FindUsersParams
    * @return List
    */
    public List findUsers(FindUsersParams params){
        UsersExample example = new UsersExample();
        UsersExample.Criteria criteria = example.createCriteria();
        // 按照创建时间 降序排列, id 升序排列; ASC升序,DESC降序,多个条件用逗号分隔
        example.setOrderByClause("create_time desc, id asc");
        if(StringUtils.isNotBlank(params.getUserId())){
            criteria.andIdEqualTo(params.getUserId());
        }
        // 用户名模糊查询
        if(StringUtils.isNotBlank(params.getUsername())){
            criteria.andUserNameLike("%" + params.getUsername() + "%");
        }
        // 手机号查询
        if(StringUtils.isNotBlank(params.getPhone())){
            criteria.andPhoneEqualTo(params.getPhone());
        }
        // 邮箱模糊查询
        if(StringUtils.isNotBlank(params.getEmail())){
            criteria.andEmailEqualTo("%" + params.getEmail() + "%");
        }
        // 删除状态查询
        if(params.getDelete() != null){
            criteria.andDeleteEqualTo(params.getDelete());
        }
        // 多状态过滤
        if(CollectionUtils.isNotEmpty(params.getStatusList())){
            criteria.andStatusIn(params.getStatusList());
        }
        List usersList = usersMapper.selectByExample(example);
        log.info("findUsers usersList = {}", usersList);
        return usersList;
    }
}

你可能感兴趣的:(springboot mybatis 配置)