草庐IT

Mybatis-Generator

全部标签

一篇聊聊Mybatis插件开发

Mybatis的插件,主要用于在执行sql前后,对sql进行封装加工,或者在sql执行后,对数据进行加工处理。常用于一些公共数据操作处理,例如:分页插件,在执行sql查询前增加分页参数多租户系统中,增加租户ID参数。增加更新时间、创建时间、更新人、创建人的参数信息。数据权限中,增加参数查询。插件开发过程确定需要拦截的签名指定需要拦截的方法,通过方法签名来指定,方法签名即指定哪个类的哪个方法+方法参数。这里的类不能随便写,只能从以下几个类中选,也就是说,MyBatis插件可以拦截四大对象中的任意一个。Executor 是执行SQL的全过程,包括组装参数,组装结果集返回和执行SQL过程,都可以拦截

mybatis实战:四、insert 用法(普通插入、返回主键自增的值)

一、简单的insert方法1.UserMapper.xmlinsertintosys_user(user_name,user_password,user_email,user_info,head_img,create_time)values(#{userName},#{userPassword},#{userEmail},#{userInfo},#{headImg,jdbcType=BLOB},#{createTime,jdbcType=TIMESTAMP})1.指定特殊数据类型(1)为了防止类型错误,对于些特殊的数据类型,建议指定具体的jdbcTypeheadimg指定BLOB类型,crea

MyBatis中#和$的区别

MyBatis中#{}和${}的用法说一下为什么要写这篇文章,最近面试有被问到,一下子想不出来有啥区别,想记录一下加深自己的理解,同时自己也经常用MyBatis-Plus忽略了XML文件的编写和使用,所以需要加深一下这块的知识一、例子1、#{}将传入的数据当作一个字符串,会对传入的数据加上一个双引号。比如select*fromstudentwherestudent_name=#{studentName}如果传入的值为zhangxiangwei,那么经过Mybatis解析完成之后的语句是select*fromstudentwherestudent_name="zhangxiangwei"2.${

【业务功能篇52】Springboot+mybatis mysql开启批量执行sql参数 allowMultiQueries=true

allowMultiQueries=true参数的作用:可以在sql语句后携带分号,实现多语句执行。可以执行批处理,同时发出多个SQL语句。在application-xxx.xml配置文件中,配置数据库的信息spring:datasource:dynamic:primary:mysqldb#默认数据源datasource:mysqldb:driverClassName:org.mariadb.jdbc.Driverurl:jdbc:mysql://localhost:3306/data_dev?useUnicode=yes&characterEncoding=UTF-8&useAffected

为什么说MyBatis默认的DefaultSqlSession是线程不安全?

1环境准备mybatis-config.xmlUsersMapper.xmlselect*fromt_usersUsersMapper.javapackagecom.pack.mapper;importjava.util.List;importcom.pack.domain.Users;publicinterfaceUsersMapper{ListselectList();}Users.javapublicclassUsers{privateStringid;privateStringusername;privateStringpassword;}UsersMapperTest.java测试类

【MyBatis持久层框架】配置文件实现增删改查实战案例

文章目录1.前言2.准备工作3.查询所有数据3.1编写接口方法3.2编写sql语句3.3编写测试方法3.4resultMap的使用4.查询详情4.1编写接口方法4.2编写sql语句4.3编写测试方法4.4参数占位符4.5parameterType使用4.6特殊字符的处理5.多条件查询5.1编写接口方法5.2编写sql语句5.3编写测试方法5.4动态SQL6.动态SQL的单条件查询

mybatis数据库分页查询

数据库分页查询分页查询的优点PageHelper实现分页查询原理PageHelper的基本使用编写持久层编写业务逻辑层编写控制层使用JsonPage返回结果分页查询的优点PageHelper实现分页查询原理 dependency>groupId>com.github.pagehelpergroupId>artifactId>pagehelper-spring-boot-starterartifactId>dependency>PageHelper的基本使用编写持久层 //分页查询所有订单的方法//适用PageHelper框架完成分页查询的原理是在sql语句运行时,在sql语句后添加limit

MyBatis 动态SQL之<set>标签

简介在Mybatis中,update语句可以使用set标签动态更新列。set标签可以为SQL语句动态的添加set关键字,剔除追加到条件末尾多余的逗号。作用:自动在要修改的第一个字段之前添加SET关键字去掉要修改的第一个字段前的连接符(,)语法set>set>网络案例updateid="updateWebsite"parameterType="net.biancheng.po.Website">UPDATEwebsiteset>iftest="name!=null">name=#{name},if>iftest="url!=null">url=#{url},if>set>WHEREid=#{id

MyBatis的动态拦截sql并修改

需求因工作需求,需要根据用户的数据权限,来查询并展示相应的数据,那么就需要动态拦截sql,在根据用户权限做相应的处理,因此需要一个通用拦截器,并以注解实现。该文只做查询拦截,如有其他需求,可根据工作做相应更改。步骤一该注解是方法级,因此需要注解在dao层方法上,如有需要也可更改为类级注解:@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)@Documented//指名数据库查询方法需要和权限挂钩public@interfacePermission{}步骤二定义拦截器实现接口重写其intercept方法@Intercept

mybatis-plus 复合主键的应用(多主键操作)

在实际的生产过程中,某些业务场景会用到复合主键来标识唯一性。但是mybatisPlus亦或mybatis都不默认支持对复合主键的操作。刚好再一次实际的数据项目中遇到这个需求了,记录下来。#1、首先是导入项目的依赖这里使用maven管理依赖,依赖于mybatis-plus有版本关联,使用的时候注意区分。  com.baomidou  mybatis-plus-boot-starter  3.4.0  com.github.jeffreyning  mybatisplus-plus  1.5.1-RELEASE #2、业务实体的复合主键配置这里区不使用`@TableId`,复合主键使用注解 `@M