草庐IT

不好意思,Mybatis Plus 该换了!

来源:juejin.cn/post/6886019929519177735使用fluentmybatis可以不用写具体的xml文件,通过javaapi可以构造出比较复杂的业务sql语句,做到代码逻辑和sql逻辑的合一。不再需要在Dao中组装查询或更新操作,在xml或mapper中再组装参数。那对比原生Mybatis,MybatisPlus或者其他框架,FluentMybatis提供了哪些便利呢?Part1仓库地址详细的API及用法,可参考官方仓库https://gitee.com/fluent-mybatis/fluent-mybatisPart2需求场景设置我们通过一个比较典型的业务需求来具

Mybatis 不要乱用,这个坑真不小!

来源:www.cnblogs.com/tjstep/p/15256463.htmlmybatis作为一个轻量级的ORM框架,应用广泛,其上手使用也比较简单;一个成熟的框架,必然有精巧的设计,值得学习。在使用mybatis框架时,在sql语句中获取传入的参数有如下两种方式:${paramName}#{paramName}那如何理解这两种传参方式呢?如下带你走近背后的奥义。推荐一个开源免费的SpringBoot实战项目:https://github.com/javastacks/spring-boot-best-practice先来回顾下原生Jdbc查询:publicstaticvoidmain(

MySQL命令执行sql文件的两种方法

使用命令执行sql脚本文件方法一,在Windows下使用cmd命令执行(或Unix或Linux控制台下)【Mysql的bin目录】mysql–u用户名–p密码–D数据库C:MySQLinmysql–uroot–p123456-Dtest注意:A、如果在sql脚本文件中使用了use数据库,则-D数据库选项可以忽略B、如果【Mysql的bin目录】中包含空格,则需要使用“”包含,如:“C:ProgramFilesMySQLinmysql”–u用户名–p密码–D数据库C、如果sql没有创建数据库的语句,而且数据库管理中也没有该数据库,那么必须先用命令创建一个空的数据库。方法二,进入MySQL控制台(

SpringBoot——Service单元测试(包含mybatis、mapper、私有方法等)

引言  在写单元测试时,免不了遇到私有方法、数据库等一些操作,此时就需要一些mock处理。代码实践service层demo源码publicclassDemoServiceImpl{@AutowiredprivateDemoMapperdemoMapper; @Override@Transactional(rollbackFor=Exception.class)publicBooleandeleteById(Longid){//获取实体DemoEntityentity=this.getDemoEntity(id);demoMapper.deleteById(entity);returntrue;

零基础尝试mybatis-plus读写分离

 看了好几篇博友写的文章,关于spring-boot整合mybatis-plus实现读写分离,不过都是缺这少那的,跑不起来,所以自己实操了一次,做个记录 实现方式为使用Aop切面1、增加数据库枚举类/***数据库类型*/publicenumDBTypeEnum{/***主节点*/MASTER,/***从*/SLAVE}2、配置数据源/***多数据源配置*/@AutoConfigureBefore(DruidDataSourceAutoConfigure.class)@Configuration@ConfigurationProperties(prefix="spring.datasource.

java - MyBatis 中的一对多关系

我正在尝试使用MyBatis在我的数据模型中映射一对多关系。这是基于以下类:classTeam{StringmId;StringmName;ListmPlayers;}classPlayer{StringmId;StringmName;}我想编写一个返回匹配项列表的查询,每个匹配项都填充了与该匹配项对应的标签。SELECTid,name,players.idasplayer_id,players.nameasplayer_nameFROMteamsJOINplayersONteams.id=players.team_id但我遇到的问题是每个Team对象只填充了一个Player。我如何更

Mybatis-plus的自动填充功能

Mybatis-plus的自动填充功能1.数据库级别1.修改数据库的表结构2.在实体类中添加创建时间(create_time)以及修改时间(update_time)2.代码级别1.修改数据库2.在实体类的字段属性增加注解3.编写处理器来处理注解4.测试插入和更新1.数据库级别一般数据库中的某些字段,例如创建时间(create_time)以及修改时间(update_time)都是自动化完成的,我们不希望手动更新。所有的数据库表都必须包含两个字段gmt_create和gmt_modified,因为我们需要追踪这个数据什么创建,什么时候被修改的,而且需要自动化!1.修改数据库的表结构在已有的数据库表

Mybatis的整体执行原理图解

上一篇Sharding-Jdbc与MyCat区别下一篇>>>SqlSessionFactory的创建过程原理MyBatis的核心部件:SqlSession:作为MyBatis工作的主要顶层API,表示和数据库交互的会话,完成必要数据库增删改查功能;Executor:MyBatis执行器,是MyBatis调度的核心,负责SQL语句的生成和查询缓存的维护;StatementHandler:封装了JDBCStatement操作,负责对JDBCstatement的操作,如设置参数、将Statement结果集转换成List集合。ParameterHandler:负责对用户传递的参数转换成JDBCStat

java.io.IOException: Could not find resource mybatis-config.xml解决方式

一、我们用idea导入别人的项目时,一般会将项目中的.idea文件夹删掉。因为此目录保留的是别人的工作环境,如果不删除直接导入的话,可能会与我们的本地环境配置不一致,导致不兼容从而报错。二、很多小伙伴删除.idea文件夹后导入项目就直接运行项目,导致出现java.io.IOException:Couldnotfindresourcemybatis-config.xml报错三、原因分析:报错的原因是你没有将resources文件夹设置为资源根目录,因为idea检索mybatis-config.xml文件默认从资源根目录去查找,而此时你resources文件夹知识普通的包,idea是不会去检索的四

记Mybatis的坑,解决Error attempting to get column ‘name‘ from result set,Cannot determine value type from

首先上报错:org.springframework.dao.DataIntegrityViolationException:Errorattemptingtogetcolumn‘name’fromresultset.Cause:java.sql.SQLDataException:Cannotdeterminevaluetypefromstring‘用户名’从字面上理解,这个报错是因为Mybatis查完数据之后,没法把查出来的东西放到实体类里面。这种情况一般分为这几种1、数据库的字段跟实体类的字段对不上号。比如数据库里面是name,实体类里面是username,就对不上了。2、数据库的字段类型,