2020
12-02
12-02
详解mybatis @SelectProvider 注解
01、前言为什么会写这篇文章,因为在看到MapperAnnotationBuilder构造方法初始化时,发现了四个从未见过的注解publicMapperAnnotationBuilder(Configurationconfiguration,Class<?>type){...sqlAnnotationTypes.add(Select.class);sqlAnnotationTypes.add(Insert.class);sqlAnnotationTypes.add(Update.class);sqlAnnotationTypes.add(Delete.class);//这四个注解眼生的很sqlProviderAnnotationTypes.ad...
继续阅读 >
开发项目的时候,表很多,是不可能一点点的自己去写xml,dao文件的,这里就需要用到代码的自动生成工具了。第一步:导入jar包,当然,这之前,基本环境,像mybatis,数据库之类的都得搭建好。<dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.2</version></dependency>第二步:创建启动的xml配置文件mybatis-generator-config.xml<...
在开发中可能会遇到这样的问题,使用mybatis进行结果集与实体类之间的关系映射时,可能会出现某些属性映射不上去的情况.为了方便排查问题我们需要查看mybatis访问数据库SQL信息。可以在配置Log4J:log4j.logger.com.xxx.dao=TRACElog4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUGlog4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUGlog4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUGl...
在传参与接收返回结果的时候,咱们一直是使用的全限定名。但是MyBatis自己在使用很多类型的时候(如Integer,Boolean)却可以直接使用别名。那么,咱们自己的写的类能不能使用别名呢?可以。需要配置。mybatis配置文件:<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><!--完成一个mybatis-config.xml的文件-...
现在随着mybatisplus的应用,越来越多的弱化了SQL语句,对于单表操作可以说几乎不需要进行自己编写SQL语句了,但对于多表查询操作目前mybatisplus还没有很好的支持,还需要自己编写SQL语句,如:importjava.util.List;importorg.apache.ibatis.annotations.Mapper;importorg.apache.ibatis.annotations.Param;importorg.apache.ibatis.annotations.Select;importcom.baomidou.mybatisplus.mapper.BaseMapper;importcom.s...
开发调试的时候发现MybatisPlus的逻辑删除失效了,看了下配置文件发现没有问题,通过查看以下源码发现逻辑删除需要注入的bean,查看这个bean的源码如下查看其中一个实例的类的源码,如通过ID逻辑删除LogicDeleteById的源码,如下mp在项目启动时预加载SQL是通过TableInfo中logicDelete字段判断是否开启逻辑删除的。然后让我们来看看mp内部是如何判断是否开启逻辑删除的。先看如下源码大概就是讲实体类中的字段进行循环映射数据库字...
最近用mybatisplus做项目,单表的增删改查都正常,做到1对多表的分页时,用resultMap返回的时候发现返回的记录和总数对不上返回的记录是一表的,二返回的总数是多表查了一下,这个或者是PLUS的bug大概的解决办法如下图:用collection,传参用column,我这里用了一个小技巧,把外面传入的参数,作为主表的column传入到从表。这里没找到其他方法,有其他方法可以评论告诉我补充知识:解决Mybatis-plus利用collection查询一对多...
一.问题还原1.Controller代码部分Page<FixedAssetsEntity>pageForPlus=getPage();Page<FixedAssetsEntity>fixedAssetsEntityPage=fixedAssetsService.selectPage(pageForPlus);2.spring-mybatis.xml中的sqlSessionFactory配置<beanid="sqlSessionFactory"class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean"><!--配置数据源--><propertyname="dataSource"ref="dataSource"/><!--自动...