![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MyBatis
文章平均质量分 71
EP小良_007
万物皆有裂痕,那是光透过来的地方
展开
-
java面试题_简单说明hibernate、Struts2、Spring、springMVC、mybatis的执行流程或者原理_5_mybatis
系列文章目录文章目录系列文章目录一、MyBatis简介工作流程面试题mybatis的基本工作流程讲下MyBatis的缓存1. spring和mybatis整合之后为什么一级缓存会失效?2. 二级缓存中要注意的事情?4. #{}和${}的区别5. MyBatis与Hibernate有哪些不同6. 为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里7. Mybatis是如何进行分页的?分页插件的原理是什么?8. Mybatis映射文件中,如果A标签通过include引用B标签的内容,请问B标原创 2021-07-10 23:51:22 · 119 阅读 · 0 评论 -
SSM之MyBatis_03_5_逆向工程-根据表自动生成模型和映射文件接口即mybatis自动生成模型和映射文件、IEDA创建简单的java项目
系列文章目录文章目录系列文章目录一、逆向工程下载逆向工程总结一、逆向工程什么是逆向工程,逆向工程即 mybatis的自动生成模型和映射文件IDEA其实就有这个功能,要自己去百度一下我们这里用Mybatis官方提供的逆向工程可以针对单表自动生成mybatis代码(mapper.java\mapper.xml\po类)企业开发中,逆向工程是个很常用的工具下载逆向工程逆向工程下载地址使用方法1、创建简单的java项目2、导入jar包,创建generator配置文件;3、使用java原创 2021-04-21 22:33:17 · 229 阅读 · 0 评论 -
SSM之MyBatis_03_4_mybatis与spring的整合【后面补上-待完善】
系列文章目录文章目录系列文章目录一、mybatis与spring的整合一、mybatis与spring的整合SSH:struts2+spring+hibernateSSM:SpringMVC + Spring + MyBatis这个跟整合SSH类似我们这里只整合mybatis和springDao由spring来管理版本用Spring 3.2Mybaties 3.2.7...原创 2021-04-21 16:26:19 · 72 阅读 · 0 评论 -
SSM之MyBatis_03_3_在mapper.xml中配置禁用某个方法的二级缓存、刷新缓存(如何设置二级缓存不被清空)
系列文章目录文章目录系列文章目录在mapper.xml中配置禁用某个方法缓存刷新缓存在mapper.xml中配置禁用某个方法缓存设置好之后再测试所以执行了3次sql注意默认是允许使用缓存的,就是不写的话,是允许使用缓存的刷新缓存这里要注意清空就是刷新,默认情况下,执行了更新、删除、新增操作会刷新缓存(清除缓存)但是我们可以设置它不刷新那么如何设置二级缓存不被清空这块没啥说的,直接用就行了设置好之后执行了更新、删除、新增操作就不会刷新缓存了...原创 2021-04-21 16:06:24 · 227 阅读 · 0 评论 -
SSM之MyBatis_03_02_mybatis整合ehcache缓存、什么叫分布式、二级缓存应用场景、局限性
系列文章目录文章目录系列文章目录mybatis整合ehcache缓存前言什么是分布式mybatis整合ehcache缓存测试:用上面二级缓存例子即可二级缓存应用场景局限性mybatis整合ehcache缓存前言我们在使用hibernate的时候,可以知道,hibernate就是使用ehcache来实现二级缓存的为什么我们要用ehcache来实现缓存而不用mybatis自带的perpetualCache因为Mybatis本身是一个持久层框架,它不是专门的缓存框架,所以它对缓存的实现不够好,不能支原创 2021-04-21 12:49:01 · 121 阅读 · 0 评论 -
SSM之MyBatis_03_01_一级缓存和二级缓存(和hibernate一样有一级缓存(自动开启)和二级缓存(需手动开启))、某个方法禁止使用二级缓存
系列文章目录文章目录系列文章目录一级缓存和自带的二级缓存1、Mybatis的缓存理解一级缓存二级缓存(需要手动开启)小结:一级缓存和自带的二级缓存在mybatis里面的缓存和hibernate一样,也有一级缓存和二级缓存一级缓存:session级别的二级缓存:sessionFactory级别的其实在mybatis里面也是类似的下面我们具体看看1、Mybatis的缓存理解Mybatis的缓存,包括一级缓存和二级缓存,一级缓存是默认使用的。二级缓存需要手动开启一级缓存指的就是sqlses原创 2021-04-21 01:00:59 · 227 阅读 · 0 评论 -
SSM之MyBatis_02_10_懒加载(延时加载)、怎么配置懒加载
系列文章目录文章目录系列文章目录一、懒加载文档案例:配置懒加载总结一、懒加载延迟加载又叫懒加载,也叫按需加载。也就是说先加载主信息,在需要的时候,再去加载从信息。在mybatis中,resultMap标签 的association标签和collection标签具有延迟加载的功能懒加载就是我们要用的时候才给它加载文档案例:文档里面用的是扩展类,我们实际上也可以不用扩展类mybatis的懒加载比hibernate的懒加载稍微麻烦一点点,hibernate里面我们只要声明一个属性就行了而m原创 2021-04-20 16:11:32 · 257 阅读 · 0 评论 -
SSM之MyBatis_02_09_多对多在mybatis中的实现、多对对的理解、association用javaType、collection用ofType
系列文章目录文章目录系列文章目录多对多需求Sql格式化一下这段sql思路操作步骤第一步:UserMapper.java第二步:User/Orders/Orderdetail.java第三步:UserMapper.xml第四步:测试总结多对多需求理解:有多个学生,每个学生可以选修多门课程,每个课程可以被多个学生选修有多个订单,一个订单可以有多个商品,一个商品也可以被多个订单订购所以 商品和订单之间是多对多关系这就是多对多查询用户信息及用户购买的商品信息,要求将关联信息映射到主pojo的poj原创 2021-04-20 11:24:52 · 738 阅读 · 0 评论 -
sql:普通关联查询和 左连接右连接的区别
系列文章目录文章目录系列文章目录普通关联查询和 左连接由连接的区别普通关联查询和 左连接由连接的区别最近发现一段sql 就是普通的关联查询,在项目需求中还挺实用的,我就在想为什么不用左连接/右连接之类的呢,以前不大多时候用左连接吗实际上它们各有优势,根据需求来我们的需求是查询用户信息及用户购买的商品信息Selectuser.id,user.username,user.address,orders.id orders_id,orders.user_id,orders.number,原创 2021-04-19 10:19:47 · 1972 阅读 · 0 评论 -
SSM之MyBatis_02_08_一对多实现【模型里有集合讲解】、数据库里面的字段和model里面的字段在collection里面配置的对应关系
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例原创 2021-04-18 17:31:50 · 210 阅读 · 0 评论 -
SSM之MyBatis_02_07关联查询——实现一对一_模型里面有模型(必须使用resultMap)_resultMap的方式实现
系列文章目录文章目录系列文章目录前言一、关联查询——实现一对一_模型里面有模型总结前言接着上一篇一、关联查询——实现一对一_模型里面有模型其实很简单非常简单,如上图所示外,我们再加一个关联的标签即可新写一个接口接口里面就不再返回扩展类了而是返回Order下一步我们做什么呢?直接用?非也非也如果模型里面有模型,必须使用resultMap这是上一篇文章留下的坑现在这里把它补上association意思就是关联所以上一篇我们留下的坑就是,没有模型里面有模型,仅此而已有原创 2021-04-18 12:50:57 · 203 阅读 · 0 评论 -
SSM之MyBatis_02_06关联查询——实现一对一_扩展类的方式_(包含 super.toString( )的使用、怎么在子类里面调用父类的toString方法)
MyBatis_02_01关联查询——实现一对一文章目录MyBatis_02_01关联查询——实现一对一前言一对一 的实现 —— resultType方式实现第一步:写个订单的扩展类第二步 订单单接口和配套的映射文件第三步:加载映射文件第五步:测试一对一 的实现 —— resultMap的方式实现总结前言mybatis里面实现上一篇文章讲的关联查询的 一对一一对一 的实现 —— resultType方式实现我们使用mybatis的时候,怎么把这个数据查出来呢我们先不要在模型里面套模型,先写个原创 2021-04-18 08:57:53 · 525 阅读 · 0 评论 -
SSM之MyBatis_02_05关联查询——案例:用户和订单、什么是关联查询、一对一、一对多、多对一关系分析
系列文章目录红色字体文章目录系列文章目录一、关联查询——案例:用户和订单一、关联查询——案例:用户和订单什么是关联查询:关联查询就是多张表一起查询,然后返回数据hibernate关联查询的时候是模型里面有个模型案例:用户和订单:比如我们之前的bos系统,bos数据库里面user表里面一个用户里面放一个角色的模型这样的话,我要查找用户还要知道它所处的角色那么就不仅要查用户表,还要查角色表这个就是模型里面有模型的意思我们是免不了有这种情况的即模型里面有模型和模型里面有集合这两种情原创 2021-04-17 18:00:24 · 742 阅读 · 0 评论 -
SSM之MyBatis_02_04_mybatis与hibernate的区别【面试题】
系列文章目录文章目录系列文章目录一、mybatis与hibernate的区别【面试题】Mybatis技术特点:Hibernate技术特点:一、mybatis与hibernate的区别【面试题】Mybatis技术特点:好处:1、通过直接编写SQL语句,可以直接对SQL进行性能的优化;2、学习门槛低,学习成本低。只要有SQL基础,就可以学习mybatis,而且很容易上手;(hibernate就需要学hql,hql和sql还是有一些变化的所以相对来说hibernate的门槛要高一些)3、由于直接编原创 2021-04-17 16:55:47 · 151 阅读 · 0 评论 -
SSM之MyBatis_02_03_动态sql——foreach遍历的使用、直接传入集合的遍历以及传入的参数是数组的遍历、Sql片段
系列文章目录文章目录系列文章目录foreach遍历的使用sql片段foreach遍历的使用如果我们要查找3个人的用户信息怎么查如上图,我们需要把集合遍历一下,然后进行拼接而拼接我们就需要用到foreach我们根据文档自己玩一下,自己敲一下,非常简单非常简单sql片段什么叫sql片段意思就是我们可以把一些sql的代码放到一个sql 标签里面很简单,两步就搞定了其实就相当于把代码抽取出来了,这样提高了可重用性...原创 2021-04-17 10:14:59 · 436 阅读 · 0 评论 -
SSM之MyBatis_02_02_动态sql——if和where的使用
系列文章目录文章目录系列文章目录一、mybatis里的动态sql——if和where的使用总结注意一、mybatis里的动态sql——if和where的使用什么是动态sql ?if和where这样的可以写条件判断的sql 就是动态sqlIf标签:作为判断入参来使用的,如果符合条件,则把if标签体内的SQL拼接上Where标签:会去掉条件中的第一个and符号。注意:用if进行判断是否为空时,不仅要判断null,也要判断空字符串‘’;先写接口接着写“实现类”我们写一个简单的包含where原创 2021-04-16 15:56:20 · 794 阅读 · 0 评论 -
SSM之MyBatis_02_01_resultType结果返回类型和resultMap结果返回类型——输出映射、如果传入是参数是一个包装类怎么使用
系列文章目录文章目录系列文章目录前言resultType结果返回类型输出简单类型输出POJO单个对象输出POJO列表小结resultMap结果返回类型总结前言回顾一下前面的mybatis,我们讲到输入类型的参数类型参数类型我们也称作输入映射而resultType和resultMap也叫作输出映射(可以看前面一篇mybatis)这里接着讲输出映射resultType和resultMap而我们的mybatis的核心就是学会配置这两个东西输入就是前面将的输入参数,这里我们探讨一下返回值,即输原创 2021-04-16 09:02:30 · 637 阅读 · 0 评论 -
SVN_01_01为什么要使用SVN、SVN简介、SVN服务端安装、创建版本库
系列文章目录文章目录系列文章目录一、为什么要使用SVN二、SVN简介三、SVN服务端安装四、 SVN创建版本库总结一、为什么要使用SVN这些就是为什么要使用SVN版本控制的原因二、SVN简介检出、更新和提交是svn里面3个最基本的操作1、一般来讲比如我们第一天到一个公司上班就需要checkout 检出,即把源码下载下来2、后面每天,只需要update就行了3、什么时候需要提交,项目有进展的时候,或者一个小功能,小模块完成的时候三、SVN服务端安装只要注意 安装软件的原创 2021-04-15 00:00:00 · 401 阅读 · 0 评论 -
SSM之MyBatis_01_10_parameterType传入map的查询条件、、关联查询
系列文章目录文章目录系列文章目录parameterType传入map的查询条件总结parameterType传入map的查询条件实际项目中我们不仅像上一篇文章那样传入包装类,还可以传入map我们现在没有dao的原因是因为,mapper自动代理帮我们实现了dao也就是说到时候,我们的map里面要放两个key,一个是username的key,另外一个是sex的key执行一下看效果总结我们传入的参数既可以传简单类型,也可以传模型,包括模型的包装类 还可以传map这些都可以说是一个原创 2021-04-14 20:21:42 · 183 阅读 · 0 评论 -
SSM之MyBatis_01_09_parameterType传入包装类的查询条件、、关联查询
系列文章目录文章目录系列文章目录一、parameterType传入包装类的查询条件最后一、parameterType传入包装类的查询条件是什么注意 POJO意思是简单对象,即model现在假设我们有这样的一个需求:然后再mapper接口里面再写一个查询不好分析,我们一步一步来,先从最简单的sql开始只通过一个id来查找数据看看能不能用这是一种查询的思想成功之后,我们再来研究稍微复杂一点的sql这样就既有user也有order了,这样就既可以加user里面的原创 2021-04-14 13:40:08 · 154 阅读 · 0 评论 -
SSM之MyBatis_01_08_加载映射文件的几种方式_有3、4种方式,选择最好的使用
系列文章目录文章目录系列文章目录前言加载映射文件的几种方式总结前言加载映射文件的几种方式加载映射文件有多种写法注意,加载映射文件是在全局配置文件中加载的即这种写法还有一种就是用全路径这种方式我们基本上不用,因为全路径不方便,看一眼就知道,比较复杂臃肿,不是那么智能还有一种意思就是写类名这种方式一定要注意,要有一个接口和一个xml映射文件一一对应,否则就找不到,就会报错实际上,如果没有这个xml,也可以,这就涉及到我们的下面一种方式,即要声明注解然后放这边来ins原创 2021-04-14 10:56:55 · 368 阅读 · 0 评论 -
SSM之MyBatis_01_07_全局配置文件的properites和alias(别名)的配置
系列文章目录文章目录系列文章目录一、properties数据库文件配置二、setting【了解】三、typeAliases总结一、properties数据库文件配置在src下配置个db.properties文件二、setting【了解】三、typeAliases别名(alias)是使用是为了在映射文件中,更方便的去指定参数和结果集的类型,不再用写很长的一段全限定名mybatis支持的别名自定义别名总结...原创 2021-04-14 02:12:06 · 161 阅读 · 0 评论 -
SSM之MyBatis_01_06_mybatis-dao的编写——过渡以及 mapper代理方式实现(常用)
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例原创 2021-04-13 11:35:40 · 147 阅读 · 2 评论 -
SSM之MyBatis_01_05_mybatis-入门-怎么实现插入后自动返回主键、MySQL自增主键 、MySQL自增UUID、ORCLE主键、mybati小结
系列文章目录文章目录系列文章目录怎么实现插入后自动返回主键主键返回之MySQL自增主键主键返回之MySQL自增UUIDorcle主键mybati小结怎么实现插入后自动返回主键前言:怎么拿到我们插入的数据的 id在hibernate里面我们保存用户(user)之后,它就变成持久态了,自动会往id里面赋值,我们获取的时候,这样写就可以直接获取到但是mybatis里面这样是获取不到的,但是很多时候我们是需要这个id的所以我们希望,把数据插入到数据库之后,往id赋值,这样就能够知道我们刚刚插入的数据原创 2021-04-12 11:55:23 · 212 阅读 · 0 评论 -
SSM之MyBatis_01_04_mybatis-入门-插入删除更新的操作、增删改都需要提交事务、怎么抽取代码
系列文章目录文章目录系列文章目录一、插入删除更新的操作插入 insert 操作删除 delete 操作更新 update 操作总结怎么抽取代码一、插入删除更新的操作插入 insert 操作需要注意的是 这里的占位是模型的属性如下这种就不需要再给id赋值,因为它是自动递增的要养成一个习惯,如果model里面我们加了有参构造,一定也要加一个无参构造,否则后面框架自动化的时候可能会有问题,之前有遇到过这个问题,为确保万无一失,养成这个好习惯插入成功下面的删除、和更新操作是类似的删除 d原创 2021-04-12 10:54:07 · 621 阅读 · 0 评论 -
SSM之MyBatis_01_03_mybatis-入门-模糊查询、模糊查询用户信息
系列文章目录文章目录系列文章目录前言mybatis-入门-模糊查询总结前言mybatis-入门-模糊查询[${}]:表示拼接SQL字符串 [${value}]:表示要拼接的是简单类型参数。 注意: 1、如果参数为简单类型时,${}里面的参数名称必须为value 2、${}会引起SQL注入,一般情况下不推荐使用。但是有些场景必须使用${},比如order by ${colname} 写法: <select id="findUserByName" parameterTyp原创 2021-04-12 09:05:38 · 146 阅读 · 0 评论 -
SSM之MyBatis_01_02全局配置文件和映射文件配置
系列文章目录文章目录系列文章目录全局配置文件和映射文件配置总结注意全局配置文件和映射文件配置接上一篇文章,我们搭建好环境之后就要开始用了1、创建PO(model)类,根据需求创建;PO类就是model类,只是国际上规范开发文档,写的是PO类,明白它跟model是一个意思即可2、创建全局配置文件SqlMapConfig.xml;注意,这是一个全局的配置文件,也是放在src下<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE原创 2021-04-11 23:40:26 · 246 阅读 · 0 评论 -
SSM之MyBatis_01_01mybatis-简介(结合代码更容易理解)以及入门环境准备
系列文章目录前言一、mybatis-简介结合代码更容易理解,第一次看不懂学习了代码之后,回头再看一遍就很容易理解了 MyBatis 本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进。MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装, 使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如原创 2021-04-11 17:57:16 · 82 阅读 · 0 评论