202112-13 浅谈Springboot下引入mybatis遇到的坑点 一、springBoot+Mybatis配置完成后,访问数据库遇到的问题首先出现这个问题,肯定是xml文件与mapper接口没有匹配上,甚至是xml文件根本没有被扫描到。于是会从配置上进行检查:1、xml中的namespace命名是否与mapper接口路径一致,需保证一致。2、application.properties或者application.yml文件中配置mybatis的属性对否,如下:第一行typeAliasesPackage是实体类的包路径;第二行mapperLocations:是Mapper的xml文件存放的位... 继续阅读 >
202112-10 mybatis使用foreach遍历list集合或者array数组方式 一、准备工作1.db.properties文件(记得修改自己的数据库和用户名、密码)dataSource.driver=com.mysql.jdbc.DriverdataSource.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8dataSource.username=blogdataSource.password=blog2.主配置文件<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http://mybatis.org/dtd... 继续阅读 >
202112-09 mybatis中方法返回泛型与resultType不一致的解决 mybatis方法返回泛型与resultType不一致当xxxMaaper.java的方法返回值类型是List<A>,而xxxMappper.xml中对应的sql的resultType指定为B对象,这样是不会包错的(即使A与B不存在关系)原因分析:1.集合对象原本就是存储对象,可以是不同的对象List2.直接处理List类型常常会出现类型转换异常,jdk5出现泛型,使得程序员向list中存放相同类型对象3.泛型作用于编译阶段,仅为了防止类型混乱而出现,类型转换异常4.mybatis结果集封装bean时采用... 继续阅读 >
202112-09 Mybatis查询语句返回对象和泛型集合的操作 Mybatis查询语句返回对象和泛型集合EmpMapper映射接口:packagecn.et.mybatis.lesson03;importjava.util.List;importorg.apache.ibatis.annotations.Result;importorg.apache.ibatis.annotations.Results;importorg.apache.ibatis.annotations.Select;publicinterfaceEmpMapper{/***查询单条数据,*每一列的列名都会去Emp实体类中去匹配对应的属性*匹配时会把二边都转为小字母进行匹配*匹配成功就... 继续阅读 >
202112-09 Mybatis #foreach中相同的变量名导致值覆盖的问题解决 目录背景问题原因(简略版)Mybatis流程源码解析(长文警告,按需自取)一、获取SqlSessionFactory二、获取SqlSession三、执行SQL背景使用Mybatis中执行如下查询:单元测试@Testpublicvoidtest1(){Stringresource="mybatis-config.xml";InputStreaminputStream=null;try{inputStream=Resources.getResourceAsStream(resource);}catch(IOExceptione){e.printStackTrace();}... 继续阅读 >
202111-19 MyBatis中XML 映射文件中常见的标签说明 SQL映射文件只有很少的几个顶级元素(按照应被定义的顺序列出):cache?对给定命名空间的缓存配置。cache-ref?对其他命名空间缓存配置的引用。resultMap?是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。parameterMap?已被废弃!老式风格的参数映射。更好的办法是使用内联参数,此元素可能在将来被移除。sql?可被其他语句引用的可重用语句块。insert?映射插入语句up... 继续阅读 >
202111-09 Mybatis order by 动态传参出现的问题及解决方法 问题由来一个简单的需求,要求把和当前用户相关的数据置顶展示。这里,我用了一个简单的用户表来复现这个需求。很简单,查询语句后面加上:orderbyt.login_name='wulaoer'desc就行了。如下所示,吴老二就到顶了。那Mybatis脚本怎么写呢?就这么写👇🏻<selectid="selectUserPageOrder"resultType="cn.fighter3.entity.User">select*fromusertorderbyt.login_name=#{req.currentUser}des... 继续阅读 >
202111-07 mybatis+springboot中使用mysql的实例 目录依赖引入配置引入案例实现案例源码在软件开发中,数据库的引入是必不可少的,其中又属mysql使用最为广泛,而在springboot中,集成使用mysql的方式有很多(例如jpa),这里来展现一下通过mybatis框架在springboot中使用mysql。依赖引入首先在使用初始化工程的时候加入mybatis、mysql相关的依赖,如下所示:<dependencies><dependency><groupId>org.springframework.boot</groupId><artifact... 继续阅读 >
202111-05 mybatis 运行时加载自定义mapper文件方式 mybatis运行时加载自定义mapper文件用mybatis一定要写mapper文件,这是使用mybatis的常识,但有时候应用需求,mapper文件中的节点需要动态生成,或者根据业务场景进行组装,那这个时候的SQL语句直接写在mapper文件显然不可取,又或者采用动态SQL完成,今天介绍一种方式,支行时加载自定义mapper配置文件。我首先介绍一种mapper文件存在的写法,也是大家常用的,至于spring-mybatis配置方法,我这里就不列了:dao接口:packagecom... 继续阅读 >
202111-05 SpringBoot MyBatis简单快速入门例子 目录一、MyBatis简介二、MyBatis使用步骤一、MyBatis简介MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和JavaPOJO(PlainOldJavaObjects,普通老式Java对象)为数据库中的记录。二、MyBatis使用步骤 1、MyBatis工程总体目录结构2、创建简单的SpringBoot... 继续阅读 >
202111-05 Mybatis中使用万能的Map传参实现 在编程中,有可能遇到我们的实体类或者数据库中表的字段或参数过多的情况,那这时候用Map传参是比较理想的选择。Map的特性是键值对应的,只要确定了一个键key,那么值value可以是任何的数据,这样就可以在map内存中存入任何数据。下面例子演示在mybatis中结合Map实现基本的增删改查数据库表(fruits)结构:实体类:packagecom.pojo.pp1;importjava.math.BigDecimal;/***简述:*创建实体*@author:LiYansheng*@date:2021/... 继续阅读 >
202111-05 mybatis 如何通过resultMap 返回long mybatisresultMap返回long<resultMapid="ResultOfLong"type="java.lang.Long"><resultcolumn="budget"property="budget"javaType="long"/></resultMap>mybatislong类型返回为null报异常Mappermethod'com.mpn.dao.TWeatherMapper.avgWeatherTemperatureattemptedtoreturnnullfromamethodwithaprimitivereturntype(long).<selectid="avgWeatherTemperature"resultType="java.lang.Long"... 继续阅读 >
202111-01 mybatis createcriteria和or的区别说明 createcriteria和or的区别mybatisgenerator插件生成的example中,有createcriteria和or方法,他们有什么区别呢?通过源码,能很清楚的看出差别createcriteria,当没有规则时,则加入到现有规则,但有规则时,不再加入到现有规则,只是返回创建的规则publicCriteriacreateCriteria(){Criteriacriteria=createCriteriaInternal();if(oredCriteria.size()==0){oredCriteria.add(criteria);... 继续阅读 >
202111-01 springboot+mybatis plus实现树形结构查询 目录背景使用场景设计思路递归模型实现代码注意事项总结背景实际开发过程中经常需要查询节点树,根据指定节点获取子节点列表,以下记录了获取节点树的操作,以备不时之需。使用场景可以用于系统部门组织机构、商品分类、城市关系等带有层级关系的数据结构;设计思路递归模型即根节点、枝干节点、叶子节点,数据模型如下:idcodenameparent_code... 继续阅读 >
202110-29 mybatis之增删改查 目录jar包需要三个连接数据库的以及mybatis的jar包下面创建数据库复制到一??文档里面导入数据库即可mybatisUtils文件mybatis.xml配置文件ParkingMapp接口ParkingMapper.xml文件为增删改查sql?句model类ParkingInfo最后就是测试类了:总结jar包需要三个连接数据库的以及mybatis的jar包下面创建数据库复制到一??文档里面导入数据库即可/*NavicatMySQLDataTransferSourceServer:localhost_3306SourceServerVersio... 继续阅读 >
202110-25 mybatis plus CU自动填充 和 软删除自动填充的实现方法 说明CU是CRUD中的创建和修改本文实现以下需求效果创建数据时自动填充createTime更新数据时自动填充updateTime(每次修改都自动填充新的updateTime值)软删除数据时自动填充deleteUserId和deleteTime创建实体类为实体类(DO)的createTime字段配置以下Annotation,代表标记在插入(insertinto)时自动填充字段值@TableField(fill=FieldFill.INSERT)privateDatecreateTime;实现MetaObjectHandler如果实体(D... 继续阅读 >