草庐IT

Mybatis关联查询【附实战案例】

目录一、Mybatis一对一关联查询1.新增持久层接口方法2.新增映射文件对应的标签3.新增测试方法4.运行效果二、Mybatis一对多关联查询1.新增持久层接口方法2.新增映射文件对应的标签3.新增测试方法4.运行效果三、Mybatis多对多关联查询1.新增持久层接口方法2.新增映射文件对应的标签3.新增测试方法4.运行效果四、进阶查询班级信息1.新增持久层接口方法2.新增映射文件对应的标签3.新增测试方法4.运行效果一、Mybatis一对一关联查询        查询学生时,将关联的一个班级对象查询出来,就是一对一关联查询。这里还新增了几个实体类新增Classes实体类packagecom

Mybatis关联查询【附实战案例】

目录一、Mybatis一对一关联查询1.新增持久层接口方法2.新增映射文件对应的标签3.新增测试方法4.运行效果二、Mybatis一对多关联查询1.新增持久层接口方法2.新增映射文件对应的标签3.新增测试方法4.运行效果三、Mybatis多对多关联查询1.新增持久层接口方法2.新增映射文件对应的标签3.新增测试方法4.运行效果四、进阶查询班级信息1.新增持久层接口方法2.新增映射文件对应的标签3.新增测试方法4.运行效果一、Mybatis一对一关联查询        查询学生时,将关联的一个班级对象查询出来,就是一对一关联查询。这里还新增了几个实体类新增Classes实体类packagecom

MyBatis-Flex 和MyBatis-Plus Fluent-MyBatis 比较

        MyBatis-Flex是一个优雅的MyBatis增强框架,它非常轻量、同时拥有极高的性能与灵活性。我们可以轻松的使用Mybaits-Flex链接任何数据库,其内置的QueryWrapper^亮点 帮助我们极大的减少了SQL编写的工作的同时,减少出错的可能性          MyBatis-Flex主要是和 MyBatis-Plus 与 Fluent-MyBatis 对比,内容来源其官网、git或者网络文章特征​1、轻量:除了MyBatis,没有任何第三方依赖轻依赖、没有任何拦截器,其原理是通过SqlProvider的方式实现的轻实现。同时,在执行的过程中,没有任何的Sql解

Mybatis-Plus代码生成器的使用

通常我们在做项目的时候,要手动搭建项目的结构,如controller,service,mapper,entity,是不是很麻烦,特别是数据库表特别多时,现在介绍一下使用MybatisPlus时怎么自动生成这些代码。首先要在项目的pom.xml里引入必要的依赖,如下:com.baomidoumybatis-plus-boot-starter3.5.3.1com.mysqlmysql-connector-jruntimecom.alibabadruid1.2.1org.projectlomboklomboktruecom.baomidoumybatis-plus-generator3.4.1org

使用mybatis新增一条数据返回新增数据的id

第一种方法insertintouser(userName,password)values(#{userName},#{password})注意事项:useGeneratedKeys="true"表示给主键设置自增长,keyProperty="userId"表示将自增长后的Id赋值给实体类中的userId字段。parameterType="com.icc.domain.User"这个属性指向传递的参数实体类这里提醒下,中没有resultType属性,不要乱加。实体类中uerId要有getter()andsetter();方法第二种方式:SELECTLAST_INSERT_ID()INSERTIN

MyBatis批量插入数据优化,增加一个参数,效率提升百倍

项目中进行接口压测,发现批量插入的速度有点超出预期,感觉很奇怪,经过定位后发现mybatise-plus批量保存的处理十分缓慢,使用的是saveBatch方法,这点有点想不通。于是就进行了相关内容分析。根据mybatise-plus中saveBatch的方法进行源码查看: 继续跟踪逻辑,从代码上看,确实是一条条执行了sqlSession.insert(sqlStatement,entity)方法。 继续跟踪,下面的consumer执行的就是上面的sqlSession.insert方法:具体执行逻辑中是累计到一定数量后,一批数据进行flush。其实,从上述的代码实现上看,整个实现机制跟我们预想的

mybatis执行自定义sql时,在执行最后多出现了一个limit的原因及解决方法

报错:###Cause:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'LIMIT12'atline21 在执行sql的时候,使用了自定义的分页,sql会自动拼接limitPageproductPage=slGwjProductMapper.selectPage(page,wrapper);但是项目中配置了sp

Spring——IOC底层原理

目录一、IOC底层原理1.什么是IOC2.IOC底层原理二、IOC接口(BeanFanctory)三、IOC操作Bean管理(基于XML)1.创建对象2.注入属性(1)DI:依赖注入(2)p名称空间注入(了解)(3)注入其他类型属性(4)注入外部bean (5)注入内部bean和级联赋值(6)注入集合类型 4.属性注入细节一、IOC底层原理1.什么是IOC        通过控制反转(InversionofControl,缩写为IOC),对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。    1)控制反转,把对象的创建和对象之

Spring——IOC底层原理

目录一、IOC底层原理1.什么是IOC2.IOC底层原理二、IOC接口(BeanFanctory)三、IOC操作Bean管理(基于XML)1.创建对象2.注入属性(1)DI:依赖注入(2)p名称空间注入(了解)(3)注入其他类型属性(4)注入外部bean (5)注入内部bean和级联赋值(6)注入集合类型 4.属性注入细节一、IOC底层原理1.什么是IOC        通过控制反转(InversionofControl,缩写为IOC),对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。    1)控制反转,把对象的创建和对象之

八、动态SQL

一、动态SQLMyBatis框架动态SQL技术是根据特定的条件拼接SQL语句的功能,存在的意义是为了解决拼接SQL语句字符串痛点问题1.if标签If标签可通过test属性(传递过来的数据)的表达式进行判断。如果为true标签执行。在where后面添加1=1横成立条件  如果不加这个条件,此刻empName为空的时候,SQL拼接出错select*fromt_empwhereandage=?andsex=?andemail=?因为where和and连用 ①DynamicSQLMapper接口/***多条件查询*/ListgetEmp(Empemp);②DynamicSQLMapper映射文件sel