
mybatis-plus
huayang183
不积跬步无以至千里
不积小流无以成江海
展开
-
2.1.9的mybatis-plus-boot-starter,无法使用QueryWrapper
用EntityWrapper原创 2021-08-28 10:44:37 · 1061 阅读 · 0 评论 -
MyBatis 批量插入(ExecutorType.BATCH)
一、在mybatis中ExecutorType的使用1.Mybatis内置的ExecutorType有3种,默认的是simple,该模式下它为每个语句的执行创建一个新的预处理语句,单条提交sql;而batch模式重复使用已经预处理的语句,并且批量执行所有更新语句,显然batch性能将更优;2.但batch模式也有自己的问题,比如在Insert操作时,在事务没有提交之前,是没有办法获取到自增的id,这在某型情形下是不符合业务要求的;在测试中使用simple模式提交10000条数据,时间为18248 毫原创 2021-07-02 17:41:16 · 6393 阅读 · 3 评论 -
使用MybatisPlus在实体中添加数据库表中不存在的字段
例如:age属性在表中不存在,在实体中添加age属性,需要在字段上加注解 @TableField(exist = false)@TableField(exist = false) private Integer user_age;原创 2021-07-01 11:20:17 · 2417 阅读 · 1 评论 -
[MyBatis]DAO层只写接口,不用写实现类
团队开发一个项目,由老大架了一个框架,遇到了DAO层不用写接口了,我也是用了2次才记住这个事的,因为自己一直都是习惯于写DAO层的实现类,所以,习惯性的还是写了个实现类。于是遇到错误了。找不到那个方法。问了团队的人才知道,方法名和Mapper中配置的id名必须一样。实现:一、配置Spring集成MyBatis:<beans xmlns=“http://www.springframework.org/schema/beans”xmlns:xsi=“http://www.w3.org/2001/原创 2021-06-29 09:14:53 · 581 阅读 · 0 评论 -
mybaties :required string parameter ‘XXX‘is not present
情况一:原因是由于头文件类型不对,可以在MediaType中选择合适的类型,例如GET和POST情况二:jquery提交delete时,不支持@RequestParam,只支持@PathVariable形式情况三:若api在调用的时候,如果存在重类型,但不重名;例如:/id与/name,两者在类型上是一样的情况四:这里提示Required String parameter ‘XXX’ is not present并不一定是XXX的错,也有可能是后面的参数错误。总的来说就是页面传递的参数和后台接受参数名原创 2021-06-28 09:08:03 · 496 阅读 · 0 评论 -
mybatis中使用小于号
方法一:使用特殊转义字符例如,>=开始日期 并且<=结束日期> > 大于号< < 小于号 AND tcci.consume_time >= CONCAT(#{searchTimeBegin},' 00:00:00') AND tcci.consume_time <= CONCAT(#{searchTimeEnd},' 23:59:59') 方法二:使用<![CDATA[ ]]>原创 2021-06-26 16:47:42 · 1936 阅读 · 4 评论 -
MyBatis-Plus Wrapper条件构造器查询
/** * 通过单个ID主键进行查询 */ @Test public void selectById() { User user = userMapper.selectById(1094592041087729666L); System.out.println(user); } /** * 通过多个ID主键查询 */ @Test public void selectByLi...原创 2021-05-14 14:23:38 · 709 阅读 · 0 评论 -
Mybatis Plus语法+示例
一、Mybatis plus环境搭建创建数据库表:-- ------------------------------ Table structure for user-- ----------------------------DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `id` bigint(20) NOT NULL, `NAME` varchar(32) CHARACTER SET utf8 COLLATE utf8_gen...原创 2021-04-12 10:54:20 · 2663 阅读 · 0 评论 -
mybatis中转义 大于,小于,大于等于,小于等于
& &< <> >" " //双引号' ' //单引号a<=b a <=b 或者 a <![CDATA[<= ]]>ba&g...原创 2021-04-07 13:55:18 · 1327 阅读 · 0 评论 -
MyBatis中大于号以及小于号的表达方式
以下介绍两种可行方法:①转义法大于:>小于:<大于等于:>=小于等于:<=笔者案例:<select id="view" parameterType="map" resultMap="BaseResultMap"> SELECT * FROM task t,staff s,product p WHERE t.staff_id = s.id AND t.product_id = p.id &l.转载 2021-03-28 23:34:08 · 3023 阅读 · 1 评论 -
Mybatis 查询返回List<String>集合
返回List<String>集合时,需要将resultType的值定义为集合中元素类型,而不是返回集合本身。 有时候,我们不需要整个表的所有字段,而是只需要某一个字段的内容,比如:我希望从资产表中查出所有资产的名称,并且不存在重复。 <select id="groupNameList" resultType="java.lang.String"> SELECT `asset_name` FROM `asset` group by `asset_name` ...原创 2021-03-18 15:14:30 · 5353 阅读 · 0 评论 -
Mybatis的resultMap返回map
<resultMap type="Map" id="bankMaintainMap"> <result column="bank_name" property="bankName"/> <result column="maintain_time_interval" property="maintainTimeInterval"/> </resultMap> <select id="getMaintainNotice" p.原创 2021-03-18 15:12:56 · 2672 阅读 · 0 评论 -
MyBatis查询返回Map类型数据
1.Mapper中SQL:<select id="getBaseMap" resultType="java.util.HashMap">select base,traffic_fare from T_EAD_TRAFFICBASE</select>2.DAO中的成员方法:public List<Map<String, Object>> getBaseMap();3.对返回List<map>的处理:private Ma.原创 2021-03-18 15:11:44 · 2757 阅读 · 0 评论 -
Mybatis mapper配置文件传入数组参数
<select id="yktestOrder" resultType="com.yuxun.fantuan.security.entity.User"> select u.id, u.username FROM user u WHERE 1 = 1 <if test="null != ids and ids.size > 0"> A.原创 2021-02-01 17:49:41 · 1660 阅读 · 0 评论 -
mybatis-plus忽略映射字段
mybatis-plus使用对象属性进行SQL操作,经常会出现对象属性非表字段的情况,忽略映射字段使用以下注解:@TableField(exist=false):表示该属性不为数据库表字段,但又是必须使用的。@TableField(exist= true):表示该属性为数据库表字段。Mybatis-Plus 插件有这个功能,可以看一下@TableName:数据库表相关@TableId:表主键标识@TableField:表字段标识@TableLogic:表字段逻辑处理注...原创 2020-12-02 20:52:46 · 1622 阅读 · 0 评论 -
mybatis plus使用in查询
原创 2020-12-02 20:52:05 · 2027 阅读 · 0 评论 -
mybatis-plus @Select select in 查询实现
<select id="querySortiePlanNumber" resultMap="sortiePlanNumberMap"> select sp.flightplan_id,count(sp.id) sp_count from t_flightplan_set fs join t_sortie_plan sp on fs.id=sp.flightplan_id and fs.del_flag='0' and sp.del_flag='0' <if test=".原创 2020-12-02 20:51:05 · 5570 阅读 · 0 评论 -
mybatis之foreach用法
foreach元素的属性主要有item,index,collection,open,separator,close。item:集合中元素迭代时的别名,该参数为必选。 index:在list和数组中,index是元素的序号,在map中,index是元素的key,该参数可选 open:foreach代码的开始符号,一般是(和close=")"合用。常用在in(),values()时。该参数可选 separator:元素之间的分隔符,例如在in()的时候,separator=","会自动在元素中间用“,原创 2020-11-17 09:14:46 · 490 阅读 · 0 评论 -
mybatis-plus -- mapper中foreach循环操作(新增,或修改)
.循环添加接口处:分别是 void 无返回类型 ;有的话是(resultType)返回类型,参数类型(parameterType) list ,如:在mapper文件中分别对应ID,参数类型和返回类型。循环处理,如下: <insert id="insertPack" parameterType="java.util.List"> insert into t_ev_bu_pack ( PACK.原创 2020-11-17 09:14:35 · 12150 阅读 · 0 评论 -
Mybatis动态sql的动态表名问题
<update id="obsoleteWeigh"> update #{tableName} set iobsolete = 1,update_date = #{date} where reg_id in <foreach item="id" collection="ids" separator="," open="(" close=")" index=""> #{id} </foreach></update原创 2020-11-17 09:14:25 · 1241 阅读 · 0 评论 -
mybatis-plus控制台打印SQL
在application.yml添加配置#mybatis-plus配置控制台打印完整带参数SQL语句mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl原创 2020-11-17 09:13:34 · 10205 阅读 · 0 评论 -
SpringBoot + mybatis 多字段更新(不为空判断)的解决办法
<update id="updateUserById" parameterType="com.example.demo.entity.UserEntity"> UPDATE user <trim prefix="set" suffixOverrides=","> <if test="userName != null"> userName = #{userName},</if> <if test="Update...原创 2020-11-14 10:36:24 · 1132 阅读 · 0 评论 -
Mybatis注解的方式,如何实现MySQL ,update后,返回更新后的值
如果你查看mybatis的源码你就会发现mybatis实现update操作是这样做的 @Override public int update(Statement statement) throws SQLException { PreparedStatement ps = (PreparedStatement) statement; ps.execute(); int rows = ps.getUpdateCount(); Object parameterObjec原创 2020-11-14 10:36:07 · 2542 阅读 · 3 评论 -
Mybatis 动态传入表名 字段名 的解决办法
1.添加属性statementType="PREPARED"2.同时sql里的属有表名变量取值都改成${xxxx},条件变量是#{xxx}<delete id="deleteDataBaseTable" parameterType="java.util.List" statementType="PREPARED" > <foreach collection="list" item="item" index="index" separator=";"> .原创 2020-11-17 09:14:13 · 986 阅读 · 0 评论 -
Mybatis 动态表名,插入数据
Mapper 中方法:int insert(@Param("tableName") String tableName, @Param("user") User user);Mybatis xml 代码 :<insert id="insert" parameterType="com.ihuaqiang.spring.bean.User"> insert into .原创 2020-11-13 13:11:32 · 2007 阅读 · 0 评论 -
Mybatis中javaType和jdbcType对应关系
JDBCType JavaType CHAR String VARCHAR String LONGVARCHAR String NUMERIC java.math.BigDecimal DECIMAL java.math.BigDecimal BIT boolean BOOLEA..原创 2020-11-13 13:11:19 · 174 阅读 · 0 评论 -
Mybatis批量插入数据
java代码:注意:这里循环的时候需new 出来新的对象,而不能通过循环改变属性的值就认为这是一个新的对象了,通俗的说就是new ReddemCode()要放在for循环的里面.xxxMapper.xml 1 <!-- 批量插入生成的兑换码 --> 2 <insert id ="insertCodeBatch" parameterType="java.util.List" > 3 <selectKey res...原创 2020-11-13 13:10:38 · 151 阅读 · 0 评论 -
MyBatis批量插入数据实现(MySQL)
假如需要搬一万块砖到楼顶,有一部电梯,电梯一次可以放适量的砖(最多放 500)。可以选择一次运送一块砖,也可以一次运送 500 块砖,哪个时间消耗大?一、SQL层面实现数据插入单条插入数据的写法:insert into table ([列名],[列名]) values ([列值],[列值]));或:insert into table values ([列值],[列值]));批量插入 一种可以在代码中循环着执行上面的语句,但是这种效率太差。另一种,可以用MySQL支持的批量插入.原创 2020-11-13 13:10:28 · 780 阅读 · 0 评论 -
MyBatis批量插入数据实现(MySQL)
一、SQL层面实现数据插入先复习一下单条/批量插入数据的sql语句怎么写:单条插入数据的写法:insert into table ([列名],[列名]) values ([列值],[列值]));或:insert into table values ([列值],[列值]));批量插入 一种可以在代码中循环着执行上面的语句,但是这种效率太差。 另一种,可以用mysql支持的批量插入语句,这种方式相比起来,更高效。 insert into table ([列名],[列名]) VAL原创 2020-11-13 13:10:16 · 12188 阅读 · 2 评论 -
Mybatis 向指定表中批量插入数据
UserMapper.xml的方法 <insert id="insertUser" parameterType="java.util.Map"> insert into ${tablename} (building, room, name, phone, email) values <foreach collection="userPOS" item="UserPO" index= "index" separat原创 2020-11-13 13:09:56 · 465 阅读 · 0 评论 -
mybatis中批量插入的两种方式(高效插入)
MyBatis简介MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。一、mybiats foreach标签foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach元素的属性主要有原创 2020-11-13 13:09:44 · 535 阅读 · 0 评论 -
MyBatis 使用 foreach 批量插入
yml文件spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/db3?serverTimezone=Asia/Shanghai&allowMultiQueries=true username: root password: rootmybatis: type-aliases-package: com.mozq.原创 2020-11-12 11:58:57 · 1558 阅读 · 5 评论 -
MyBatis-Plus 条件构造器(Wrapper)
接口方法的参数中,会出现各种 Wrapper,比如 queryWrapper、updateWrapper 等。Wrapper 的作用就是用于定义各种各样的条件(where)。所以不管是查询、更新、删除都会用到Wrapper。Wrapper官方文档。MyBatis-Plus系列推荐阅读顺序:MyBatis-Plus快速上手 MyBatis-Plus 条件构造器(Wrapper) Mybatis-Plus 常用操作一、Wrapper的继承关系:Wrapper 条件构造抽象类 ..原创 2020-11-06 10:46:12 · 6503 阅读 · 0 评论 -
QueryWrapper 一些常用操作 or like in 大于 小于 操作
queryWrapper.and(wrapper -> wrapper.isNull("authority").or().eq("authority",""));//得到下面的语句 WHERE (((authority IS NULL OR authority = ?))原创 2020-10-21 09:36:56 · 11675 阅读 · 0 评论 -
Mybatis-plus 将字段更新为null
mybatis-plus 以下简称mp,目前应该也算是主流的一款数据访问层应用框架。源于其对mybatis 的近乎完美的封装,让我们在使用的时候无比的顺滑, 几乎提供了所有单表操作的方法,大大提升了效率。并且这款框架还是国产的哦,没了解过的可以去了解一下。回归正题,我们这次来讲一下,怎么样通过mp将数据库中的一个字段更新为null. 可能很多人会觉得奇怪,更新为null, 直接set field = null 不就可以了。这里大家要注意一下,一般情况,我们在使用mp的时候,他的默认策略是空不更新, 这.原创 2020-10-15 18:44:29 · 28401 阅读 · 0 评论 -
MyBatis Plus EntityWarpper参数的介绍
EntityWrapper wrapper = new EntityWrapper<>();//eq: 等于wrapper.eq(“age”,“1”) //相当于age=1//like: 模糊查询wrapper.like(“username”,“admin”) //相当于username like %admin%//orderBy: 排序 (true:ASC ; false:DESC)wrapper.orderBy(“age”,true) //相当于按age升序wrappe.原创 2020-10-14 13:33:39 · 1149 阅读 · 0 评论 -
mybatis-plus中like的使用说明
like的四种用法:like(boolean condition, String column, String value)like(String column, String value)like(boolean condition, String column, String value, SqlLike type)like(String column, String value, SqlLike type)condition 是一些条件,符合才可加上你的sqlcolumn 为 数据库属.原创 2020-09-29 00:19:34 · 17582 阅读 · 0 评论 -
mybatis-plus配置控制台打印完整带参数SQL语句
如果是application.yml#by zhengkai.blog.youkuaiyun.com#mybatis-plus配置控制台打印完整带参数SQL语句mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl如果是application.properties,添加:#mybatis-plus配置控制台打印完整带参数SQL语句mybatis-plus.configuratio原创 2020-09-29 00:18:25 · 1226 阅读 · 0 评论 -
mybatis-plus 中 queryWrapper and与or嵌套
queryWrapper.and(wrapper -> wrapper.like("project_name", keyWord) .or().like("initiate_units", keyWord) .or().like("aircraft_model", keyWord) .or().like("aircraft_number", keyWord));AND ((project_name LIKE ? OR initiate_units LIKE ? O.原创 2020-09-29 00:17:11 · 15555 阅读 · 1 评论 -
springboot 使用mybatis-plus 配置乐观锁
新增 Mybatis plus乐观锁插件 配置类package com.engine.cmdbsync.config;import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;原创 2020-09-14 10:34:49 · 476 阅读 · 0 评论