Mybatis-Plus

org.mybatis.spring.annotation.MapperScan.factoryBean()

扶醉桌前 提交于 2020-07-26 03:55:30
IDEA:springboot项目启动程序添加@MapperScan(value = "com.xxx.xxx.dao")报错:Invalid default: public abstract java.lang.Class org.mybatis.spring.annotation.MapperScan.factoryBean() 这个错误找了半开,网上也查了,很多说是没有添加spring与Mybatis的相关jar,对于我自己的错误是这样的 错误的 <dependency> <groupId> com.baomidou </groupId> <artifactId> mybatis-plus-boot-starter </artifactId> </dependency> 正确的 <dependency> <groupId> com.baomidou </groupId> <artifactId> mybatis-plus-boot-starter </artifactId> <version> 3.3.2 </version> </dependency> 错误原因是因为我在maven依赖中没有写版本号 来源: oschina 链接: https://my.oschina.net/u/4236225/blog/4298371

记Mybatis Plus中使用枚举类型时遇到的一个类型转换问题

走远了吗. 提交于 2020-05-09 00:44:13
具体的基本使用方法可参考官方文档: https://mp.baomidou.com/guide/enum.html ,这里只想列出遇到的一些问题及解决方法。 本人系统中使用的mp版本是3.0.6(3.1.0以后使用更简便)。 本人在一个实体对象中使用了两个枚举类型 AuditMethodEnum 和 EnableStatusEnum ,代码如下: @Data @TableName(value = "audit_item") @Accessors(chain = true) public class AuditItem { @TableId(value = "id", type= IdType.AUTO) private Integer id; private String name; private AuditMethodEnum auditMethod; private String description; private Integer companyId; private Integer operatorId; private EnableStatusEnum status; private LocalDateTime createTime; } 其中 AuditMethodEnum 如下: public enum AuditMethodEnum implements

Mybatis-plus中对新增和修改的思考

点点圈 提交于 2020-05-08 09:57:58
一 点睛 我们对数据库进行操作时,新增和修改是一对孪生兄弟,大多数情况下新增后会再次对新增的数据进行维护,这时修改就派上用场了。 另外新增和修改如果没用好,往往会出现插入时主键重复,或更新时,不存在数据或存在多条数据的情况,这些都会导致异常。 因为经常会用这种场景,这里做个总结。 二 数据库设计 我们把数据库设计成下面这个样子,其中id是主键,另外我们还规定username和title唯一确定一条记录,我们称(username,title)为业务主键,为了提高性能,我们可以将(username,title)设为索引。 Name 记录文章列表 Code News Table news Memo 描述新闻信息 Group Name Column Name Data Type Dictionary Not Null Memo 基本属性组 标识 id Varchar(100) Y UUID 实体关系属性组 用户名 username {FK} Y 特征属性组 标题 title Varchar(100) Y 内容 content Varchar(100) Y 三 业务场景分析 1 首先当然是要把新文章以新增的方式加到数据表。 2 文章日后可以修改内容,但不能修改标题。这个时候修改就派上用场了。 四 在Mybatis-plus中可以这样写代码 @Override public void add(

MyBatis-Plus(概述、快速入门、日志配置、主键生成策略、自动填充、CRUD、性能分析插件、条件构造器、代码生成器)

安稳与你 提交于 2020-05-07 11:57:51
文章目录 MyBatis-Plus (一)概述 (二)快速入门 1. 创建数据库和表 2. 创建SpringBoot项目导入项目依赖 3. 配置 application.properties 4. 主体测试代码 (三)日志输出 1. 配置 2. 结果 (四)基本操作测试 1. 数据插入测试&雪花算法 2. 主键生成策略 2.1 主键自增 2.2 注解TableId 3. 更新数据操作 4. 自动填充 5. 查询操作 6. 分页查询 7. 删除操作 8. 逻辑删除 9. 乐观锁操作 (五)性能分析插件 1. 配置 2. 测试 (六)条件构造器 1. isNotNull、ge、gt、lt、le 2. eq 3. between 4. 模糊查询 5. inSql 6. orderByAsc、orderByDesc (七)代码生成器 1. 新建一个SpringBoot项目 2. 编写代码生成器 3. 测试结果 MyBatis-Plus (一)概述 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生;是 MyBatis 最好的搭档,就像魂斗罗中的 1P、2P,基友搭配,效率翻倍! 官网地址: https://mp.baomidou.com/ 特性: 无侵入、损耗小、强大的 CRUD 操作、支持

MyBatis-Plus 第三节 常见问题及注意事项

北城以北 提交于 2020-05-06 09:17:23
1.@TableField注解是将数据库列与Java属性进行绑定 即 @TableField("USER_CODE") private String userCode; 在XML文件中就不需要再次转换。如果转换,则拆查询不到数据,返回null 数据库列转换为Java实体时会自动将下划线转换为驼峰形式。 来源: oschina 链接: https://my.oschina.net/u/4157150/blog/4267810

Mybatis Plus 使用详解

落花浮王杯 提交于 2020-05-05 01:06:58
Mybatis Plus 是Mybatis的增强插件,对数据库操作Mybatis Plus提供了抽象层次比Mybatis更高的操作方法。 Wrapper是Mybatis Plus里拼接sql的包装类。具体的各种查询功能可以查看 Mybatis Plus 条件构造器官方文档 一、自定义查询字段 EntityWrapper 的setSqlSelect可以定义需要查询的库表字段。但是很多时候我们查询的数据可能来自不同的表,我们这时候可能需要用到子查询,那么这时候该怎么使用EntityWrapper 呢? 答案是直接写在setSqlSelect里面。例 Wrapper<Res> ew = new EntityWrapper<>(); ew.eq("deleted", 0); ew.setSqlSelect("*", "(select name from res_type where id=res_type_id) as res_type_name", "(select name from probe where id=probe_id) as probe_name"); 二、条件查询 一个很常见的场景是查询某字段的时候如果值不为空则查询,否则不查询。Mybatis Plus的拼接sql方法有一个条件拼接。 ew.eq(boolean condition,String column

MybatisPlus 自动填充

夙愿已清 提交于 2020-05-03 19:36:05
自动填充 1.在java实体文件属性中增加自动填充的时机 file:自动填充的时机 /** * 默认不处理 / DEFAULT, / * * 插入填充字段 / INSERT, / * * 更新填充字段 / UPDATE, / * * 插入和更新填充字段 */ INSERT_UPDATE //创建时间 @TableField(fill=FieldFill.INSERT) private LocalDateTime createTime; //更新时间 @TableField(fill=FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; 配置自动填充处理器 import java.time.LocalDateTime; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; @Component public class MyMetaObjectHandler implements MetaObjectHandler { /** * 创建时自动填充 *

SpringBoot 包扫描

我们两清 提交于 2020-05-03 18:29:59
通过@SpringBootApplication注解启动时只会扫描当前包及子包下的组件。其他包文件不会扫描到。 通过 @MapperScan注解可以扫描指定包。 @MapperScan("com.yxl.mybatisplus02") 也可以制定扫描多个包 @MapperScan({"com.yxl.mybatisplus01",""com.yxl.mybatisplus02""}) 使用通配符 @MapperScan("com.yxl.mybatisplus02**") **匹配任意class文件和包,而*只能匹配包, 如果让springBooT扫描扫Mybatis自定义的Mapper接口文件。 1.在mapper接口上增加@Mapper注解 @Mapper public interface UserMapper extends BaseMapper<User>{ } 2.在启动类上加@MapperScan注解 @MapperScan注解的好处是只需要在启动类上配置扫描包路径或者规则。然后会统一进行扫描。 @Mapper注解需要在每个Mapper接口上加注解 @SpringBootApplication @MapperScan("com.yxl.mapper") public class App { public static void main( String[] args )

使用Springboot整合redis与mysql

走远了吗. 提交于 2020-05-03 17:55:26
使用layui实现前台页面,实现用户的增删改查 环境参数 开发工具:IDEA 基础环境:Maven+JDK8 主要技术:SpringBoot、redis,mysql,swagger框架与layui前段框架 SpringBoot版本:2.2.6 实现步骤如下: 1.添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- mybatisPlus 核心库 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version> 3.0 . 6 </version> </dependency> <!-- thymeleaf模板引擎 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!--redis--> <dependency>