草庐IT

Fluent-MyBatis

全部标签

mybatis plus怎么实现动态表名

MybatisPlus可以通过使用TableNameParser接口来实现动态表名。你需要自定义一个实现了TableNameParser接口的类,并在MybatisPlus的配置中将其注册为自定义的TableNameParser实例。然后,你就可以在你的mapper接口中使用@TableName注解来动态指定表名了。例如:@MapperpublicinterfaceUserMapper{@Select("SELECT*FROM${tableName}WHEREid=#{id}")UserfindById(@Param("tableName")StringtableName,@Param("id

Mybatis-Plus的SQL注入器实现批量插入/修改,效率比较

Sql效率mysql支持一条sql语句插入多条数据。但是Mybatis-Plus中默认提供的saveBatch、updateBatchById方法并不能算是真正的批量语句,而是遍历实体集合执行INSERT_ONE、UPDATE_BY_ID语句。mybatis-plus虽然做了分批请求、一次提交的处理。但如果jdbc不启用配置rewriteBatchedStatements,那么批量提交的sql到了mysql就还是一条一条执行,mysql并不会将这些sql重写为insert多值插入,相比一条sql批量插入,性能上会差点。rewriteBatchedStatements文档https://dev.

MyBatis 核心组件 —— Configuration

概述Mybatis的核心组件如下所示:Configuration:用于描述MyBatis的主配置信息,其他组件需要获取配置信息时,直接通过Configuration对象获取。除此之外,MyBatis在应用启动时,将Mapper配置信息、类型别名、TypeHandler等注册到Configuration组件中,其他组件需要这些信息时,也可以从Configuration对象中获取MappedStatement:用于描述Mapper中的SQL配置信息,是对MapperXML配置文件中等标签或者@Select/@Update等注解配置信息的封装SqlSession:是MyBatis提供的面向用户的AP

Mybatis多表关联查询(一对多关联查询)

1、Mybatis一级缓存与二级缓存目的:提高查询效率,降低数据库查询压力,提升系统整体性能。一级缓存:默认开启,Session级别,同一个会话内生效。命中缓存的情况:statementid、SQL语句、结果集的范围、传递的参数相同。同一个查询之前执行DML操作,清空缓存,session.clearCache()也会清空缓存。二级缓存:需要配置,SQLSessionFactory级别,不同会话之间可以共享。使用步骤:1、全局配置mybatis_config.xml文件中2、mapper.xml配置要使用二级缓存的查询3、使用查询返回的对象的类必须实现序列化接口。MemCached、OSCach

Mybatis多表关联查询(一对多关联查询)

1、Mybatis一级缓存与二级缓存目的:提高查询效率,降低数据库查询压力,提升系统整体性能。一级缓存:默认开启,Session级别,同一个会话内生效。命中缓存的情况:statementid、SQL语句、结果集的范围、传递的参数相同。同一个查询之前执行DML操作,清空缓存,session.clearCache()也会清空缓存。二级缓存:需要配置,SQLSessionFactory级别,不同会话之间可以共享。使用步骤:1、全局配置mybatis_config.xml文件中2、mapper.xml配置要使用二级缓存的查询3、使用查询返回的对象的类必须实现序列化接口。MemCached、OSCach

MyBatis实现 Java 对象和数据库中日期类型之间的转换(超详细)

背景数据库存储的时间字段的类型是datetimeJava实体类的时间字段类型是Date需求:响应前端的时间字段格式为”yyyy-MM-ddHH:mm:ss“步骤1、定义resultMap定义Java对象和数据库表字段的对应关系,在mapper.xml文件中使用#{属性名,jdbcType=数据库字段类型}来进行参数传递和结果集映射,例如:resultMapid="userResultMap"type="User">idcolumn="id"property="id"jdbcType="INTEGER"/>resultcolumn="name"property="name"jdbcType="V

Mybatis Plus 公共字段自动填充功能

目录 1、问题引入2、基本功能实现3、功能完善3.1ThreadLocal3.1.1介绍3.1.2常用方法3.2思路分析3.3代码实现1、问题引入在我们的项目开发中,我们会发现有一些数据库表字段是每个表都有的,例如:创建时间,创建人,更新时间,更新人。而我们目前的针对这些字段我们的目前的处理方式就是增加或者修改的时候一个一个的去赋值。如果都按照上面的方法进行操作的话,那我们就需要在每个业务方法中进行操作,这样会不会显得我们的代码过于冗余、繁琐。这个时候我们就可以使用MybatisPlus提供的公共字段自动填充功能。2、基本功能实现MybatisPlus公共字段自动填充,也就是在插入或者更新的时

Mybatis Plus 公共字段自动填充功能

目录 1、问题引入2、基本功能实现3、功能完善3.1ThreadLocal3.1.1介绍3.1.2常用方法3.2思路分析3.3代码实现1、问题引入在我们的项目开发中,我们会发现有一些数据库表字段是每个表都有的,例如:创建时间,创建人,更新时间,更新人。而我们目前的针对这些字段我们的目前的处理方式就是增加或者修改的时候一个一个的去赋值。如果都按照上面的方法进行操作的话,那我们就需要在每个业务方法中进行操作,这样会不会显得我们的代码过于冗余、繁琐。这个时候我们就可以使用MybatisPlus提供的公共字段自动填充功能。2、基本功能实现MybatisPlus公共字段自动填充,也就是在插入或者更新的时

在IDEA中配置MySQL数据库连接以及在使用mybatis时设置sql语句的代码提示功能

在IDEA中配置MySQL数据库连接以及在使用mybatis时设置sql语句的代码提示功能一:在IDEA中配置MySQL数据库连接第一步:在IDEA右侧区域有database选项,点击进去第二步:database ->datasoucre->mysql  第三步:配置连接信息,连接数据库 第四步:显示的数据库以及表的信息 第五步:双击当前表名,查看表数据 第六步:新建查询第七步:写sql并执行 二:在使用mybatis时设置sql语句的代码提示功能(有些时候在xml文件中写sql语句的时候没有提示,可以使用以下方法)第一步:alt+enter 当你初次添加之后,后续再次使用就不要设置了。比如这

mybatis-plus 批量插入示例

正常我们使用mybatis-plus插入的时候,首先想到的是  saveBatch 方法,不过看了下打印出来的sql和底层代码,才发现它并不是真正的批量插入。IService中的代码为defaultbooleansaveBatch(CollectionentityList){returnthis.saveBatch(entityList,1000);}  实现层  ServiceImpl 中的代码为publicbooleansaveBatch(CollectionentityList,intbatchSize){StringsqlStatement=this.getSqlStatement(S