springboot mybatis-plus整合

mybatis-plus官网:https://baomidou.gitee.io/mybatis-plus-doc/#/

使用目的:完成单表的CRUD,类似于jpa的单表操作, 以减少不必要的工作量。

注意:防止不必要的麻烦请保证版本相互兼容,最好仅引入start依赖(Invalid bound statement (not found) 有可能就是版本兼容引起的

步骤:

1. 添加mybatis-plus-boot-starter到pom文件,以及数据库连接相关的依赖
2. 添加配置文件(只配置mybatis-plus即可):mybatis-plus.mapper-locations=classpath:mapper/*.xml

3. 实体类添加表名和主键名注解

4. mapper接口继承BaseMapper类

5. 使用mybatis-plus提供的相关方法

 

1. pom文件

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.0-RELEASE</version>
</dependency>

2. 添加配置文件

#数据库连接
server.port=8080
spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
spring.datasource.username=c##scott
spring.datasource.password=tiger

#如果mapper.xml放在mapper接口相同的包内, 则不用配置以下内容
#idea工具开发时, 如果mapper.xml和mapper接口在相同的包中, 则需在pom.xml中做相应的配置, 
#idea编辑时,默认忽略java代码目录中的非java文件
#mybatis
mybatis-plus.mapper-locations=classpath*:mapper/**/*Mapper.xml
#如果仅添加上面的mapper地址, 不能找到statement, 则将下面的配置打开
#mybatis.mapper-locations=classpath*:mapper/**/*Mapper.xml

3. 实体类添加表名和主键名注解

@Data
@TableName("emp") //指定表名
public class EmpModel {
    //指定主键列, 主键是自增类型(如果不设置, 第一次插入的id值就可能会非常大)
    @TableId(value = "empno", type = IdType.AUTO) 
    private String empno;
    private String ename;
    private String deptno;
}

4. mapper接口继承BaseMapper类

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

public interface EmpMapper extends BaseMapper<EmpModel> {
    //此处并未定义任何方法
}

5. 使用mybatis-plus提供的相关方法

import com.carl.study.mybatisplus.mybatisplus.mapper.EmpMapper;
import com.carl.study.mybatisplus.mybatisplus.model.EmpModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author changez
 * @desc
 * @datetime 2019/5/12 20:17
 */
@Service
public class EmpServiceImpl  {

    @Autowired
    private EmpMapper empMapper;

    public EmpModel queryEmp(String empno){
        //调用mybatis-plus提供的selectById方法, 此时mapper类中并未写该方法,也未写mapper.xml文件
        EmpModel single = empMapper.selectById(empno);
        return single;
    }
}

6. idea开发工具,且mapper.xml和mapper接口在同一包下时相关配置

<resources>
    <resource>
        <directory>src/main/Java</directory>
        <excludes>
            <exclude>**/*.java</exclude>
        </excludes>
    </resource>
    <resource>
        <directory>src/main/resources</directory>
        <includes>
            <include>**/*.xml </include>
        </includes>
    </resource>
</resources>

7. 开发注意点

****updateById: 通过id更新实体
** 默认情况下, 仅更新参数不为null的字段
** 如果要处理当字段为null的时候, 也更新数据库的字段, 有三种处理方式
*1. 在字段添加注解(仅有对当前字段, 特殊处理null值的情况): 
    @TableField(strategy = FieldStrategy.IGNORED)
    private String phone;

*2. 在配置文件中添加全局配置(针对所有字段, 特殊处理null值的情况)
mybatis-plus:
  mapper-locations: classpath*:mapper/**/*Mapper.xml
  global-config:
    db-config:
      # com.baomidou.mybatisplus.annotation.FieldStrategy
      field-strategy: IGNORED

*3. 最方便的, 回到原始的mybatis, 在mapper.xml文件中实现sql逻辑

**** 忽略某个字段,默认情况下mybatis-plus认为实体中的所有字段都对应的有数据库字段, 如果数据库中没有该字段,则会报错. 解决方案为在字段上添加相关注解, 如下;
    @TableField(exist = false)
    private String phone;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目描述 在上家公司自己集成的一套系统,用了两个多月的时间完成的:Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级开发系统 Springboot作为容器,使用mybatis作为持久层框架 使用官方推荐的thymeleaf做为模板引擎,shiro作为安全框架,主流技术 几乎零XML,极简配置 两套UI实现(bootstrap+layer ui),可以自由切换 报表后端采用技术: SpringBoot整合SSM(Spring+Mybatis-plus+ SpringMvc),spring security 全注解式的权限管理和JWT方式禁用Session,采用redis存储token及权限信息 报表前端采用Bootstrap框架,结合Jquery Ajax,整合前端Layer.js(提供弹窗)+Bootstrap-table(数据列表展示)+ Bootstrap-Export(各种报表导出SQL,Excel,pdf等)框架,整合Echars,各类图表的展示(折线图,饼图,直方图等),使用了layui的弹出层、菜单、文件上传、富文本编辑、日历、选项卡、数据表格等 Oracle关系型数据库以及非关系型数据库(Redis),Oracle 性能调优(PL/SQL语言,SQL查询优化,存储过程等),用Redis做中间缓存,缓存数据 实现异步处理,定时任务,整合Quartz Job以及Spring Task 邮件管理功能, 整合spring-boot-starter-mail发送邮件等, 数据源:druid 用户管理,菜单管理,角色管理,代码生成 运行环境 jdk8+oracle+redis+IntelliJ IDEA+maven 项目技术(必填) Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis 数据库文件 压缩包内 jar包文件 maven搭建 Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统 http://localhost:/8080/login admin admin Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值