代码笔记
文章平均质量分 52
Habibei
这个作者很懒,什么都没留下…
展开
-
MyBatis动态SQL标签2
类似switch...case,从上到下匹配,找到匹配的条件,就结束匹配其他的!原创 2024-08-09 15:29:27 · 231 阅读 · 0 评论 -
MyBatis动态SQL标签1
如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。②if标签里的test属性里是用的OGNL表达式,这是apache下的一个标签,用法类似jstl,但有些小差别,具体的内容可以在ognl官网上查询,这里强调一点,有些符号在xml文件里写的时候,属于特殊符号,不能直接使用,我们可以在w3cschool里查。虽然在以前使用动态 SQL 并非一件易事,但正是 MyBatis 提供了可以被用在任意 SQL 映射语句中的强大的动态 SQL 语言得以改进这种情形。原创 2024-07-27 22:57:19 · 619 阅读 · 0 评论 -
MyBatis使用第三方缓存框架ehchache
内存中的缓存满了,装不下了,就放这里,注意:它是临时的文件, sessionFactory.close后, 这里的文件会自动删除!最近最少使用,缓存的元素有一个时间戳,当缓存容量满了,而又需要腾出地方来缓存新的元素的时候,那么现有缓存元素中时间戳离当前时间最远的元素将被清除缓存。只对eternal为false的有效。最少被使用,缓存的元素有一个hit属性,hit值最小的将会被清除缓存。指定对象的缓存配置,其中 name 属性为指定缓存的名称(必须唯一)在磁盘上缓存的最大对象数量,默认值为0,表示不限制。原创 2024-07-25 19:54:22 · 525 阅读 · 0 评论 -
MyBatis使用缓存的配置总结
false:哪怕上面1和2开启了二级缓存,二级缓存在这个select也会失效,查false(默认):如果在查询标签上把它设置为true,等于禁用所有缓存。增改删true(默认):执行增改删操作后,刷新缓存,把原来的缓存干掉,true(默认):上面1和2开启二级缓存后,二级缓存生效。STATEMENT:如果设置为这里,相当于关闭一级缓存。注意这个设置有点特殊,干掉的缓存包括一、二级缓存。false:关闭二级缓存,但一级缓存不受影响。没配置有:关闭二级缓存,一级缓存不受影响。ture(默认):开启二级缓存,原创 2024-07-05 13:45:21 · 208 阅读 · 0 评论 -
Mabatis的二级缓存
3.当一次会话sqlsession的缓存里如果存放着两个不同类型的对象,比如User和Role对象,当一级缓存清空之前,开起二级缓存的情况下,它们两个对象会分别存入各自的名称空间的二级缓存空间中;直白地时候就是一级缓存中两个对象是放在同一Map对象(缓存就是Map对象),在二级缓存中两个对象是分别放在两个独立的Map对象里的(各自的缓存空间里)。2.一级缓存的生命周期随着一次会话session的关闭而清空,开启二级缓存的情况下,一级缓存里的数据,在清空或者提交之前会转存到二级缓存的空间中继续存在。原创 2024-07-04 13:46:20 · 461 阅读 · 0 评论 -
Mybatis一级缓存
一级缓存又被称为session级别的缓存,mybatis一直默认是开启的,每个与数据库的链接回话都有各自自己的缓存,这些一级缓存之间是不能通信的,是相互独立的缓存空间!MyBatis 3 中的缓存实现的很多改进都已经实现了,使得它更加强大而且易于配置。Mybatis和Hibernate一样,也有一级和二级缓存,同样默认开启的只有一级缓存,二级缓存也需要手动配置开启.第一个实验,查询同一个id的用户,但是用不同的sqlsession。原创 2024-07-03 19:23:19 · 271 阅读 · 1 评论 -
MyBatis-关联查询的对象是集合的处理
第二个知识点,其实前面已经提及了一下,就是全局虽然设置为了懒加载,但是如果某个关联对象查询,不想使用懒加载,要立即加载,不用在改回全局变量,只需要association标签或者collection标签设置上fetchType属性就可以,它有两个取值:lazy表示懒加载,eager表示立即加载!可以封装成Map对象,写成这个的格式。把前面的三表联合查询,变量两段,先查出user对象,然后在根据user_id查询出对应的角色list集合。原创 2024-06-28 14:31:18 · 394 阅读 · 0 评论 -
MyBatis-在分步查询的基础上配置懒加载
Mybatis作为一个优秀的ORM框架当然也支持懒加载,和Hibernate不同是,它默认情况下是禁止了懒加载的,要使用懒加载需要手动的开启,开启的方法就是配置两个全局变量:lazyLoadingEnabled设置为true,aggressiveLazyLoading设置为false。Hibernate中,涉及到关联查询的时候,懒加载是默认就开启着的,前面讲过设计懒加载就是,在关联查询中,真正需要用到关联的对象的时候,才发起sql语句,从数据库中查询数据,从而实现提升数据库性能的目标。原创 2024-06-27 12:43:13 · 160 阅读 · 0 评论 -
MyBatis-映射文件中的select属性resultMap的使用
手册里resultType和resultMap介绍有点模糊,说清楚了resultType是期望的返回的类型,集合的话是集合包含的类型,不是集合本身,且这两个不能同时使用,resultMap没说清楚,这里我们明确一下。其实两者的关系就是resultType解决数据表上的字段名称和JavaBean上的属性名称不一致的时候,前面介绍了两种方案,①在sql语句上起别名;原创 2024-06-26 14:55:09 · 301 阅读 · 0 评论 -
Mybatis-映射文件中select标签resultType属性的使用
数据库的最最基本操作“增删改查”,“查”是最复杂的,有各种各样的查询,所以对应到Mybatis中的select标签也是这四个操作中最复杂的。原创 2024-06-23 16:35:19 · 283 阅读 · 0 评论 -
映射文件中#{}里的其他属性
其他的属性除mode(存储过程相关讲到存储过程的时候在讲)外使用方式都是差不多,这里我用jdbcType解决oracle数据库不能识别mybatis的null值为例,说一下它的使用方法:解决办法在对应的接收参数的#{}里设置jdbcType属性值为NULL,表示:如果这个字段为null,对应的数据类型也是null,oracle就能识别了:上面是一种解决方案,Mybatis里还有另一种解决方案:原创 2024-06-21 18:18:46 · 204 阅读 · 0 评论 -
Mybatis调用存储过程
【代码】Mybatis调用存储过程。原创 2024-06-20 14:29:03 · 252 阅读 · 0 评论 -
Mybatis做批量操作
测试批量插入10000条记录。原创 2024-06-18 23:04:51 · 645 阅读 · 0 评论 -
Mybatis分页插件
也可以返回PagerInfo类型,它里边包含了更丰富的分页信息。原创 2024-06-15 14:21:38 · 198 阅读 · 0 评论 -
【Mybatis】动态SQL的绑定和公共sql语句片段
讲到这里,就单纯的Mybatis的基本使用的知识点,基本讲完了,也就是说凭着前面讲过的知识点,你就可以将Mybatis用起来了,但是实际上想要真正在项目开发上用好Mybatis需要的知识点还有很多,比如它的第三方插件通用Mapper,增强工具插件mybatis-plus,分页插件Mybatis_PageHelper,调用存储过程,和spring框架的整合,根据特殊的项目需要编写自己的插件,还有官方提供的自动生成xml和pojo类的Mybatis Generator工具等等。bind标签就可以帮我们实现。原创 2024-06-13 15:33:24 · 320 阅读 · 0 评论 -
工具MyBatis Generator(MBG)
【代码】工具MyBatis Generator(MBG)原创 2024-06-12 01:48:37 · 259 阅读 · 0 评论 -
【Mybatis】动态SQL内置参数
这个内置参数是接口方法传过来的参数的整体的应用,两种情况,一是如果接口方法传来的是单个参数,_parameter就是这个单参数的值,另一种情况是接口方法传来了多个参数的时候会被封装为一个map对象,_parameter就是这个map对象的引用变量。①前面为了适应多数据库查询,我们在写sql的select语句的时候,每个数据库对应写一个单独的标签,然后用databaseId来指定它所属数据库,现在用。②接上通过_parameter变量,判断传来的参数是不是null。结合,我们就可以只写一个标签。原创 2024-06-11 16:14:25 · 384 阅读 · 0 评论 -
【Mybatis】动态SQL标签3
index: 还有这个属性,数组或list集合的时候,设置索引变量,如果是Map集合就是map的key的迭代变量,这里的例子用不着这个。批量保存的sql语句,可以这么写!separator="," : 因为要构造出 (1,2,3)这种样子的字符串,设定中间的分隔符。open="(" : 因为要构造出 (1,2,3)这种样子的字符串,设定前缀的符号(close=")": 因为要构造出 (1,2,3)这种样子的字符串,设计结尾的后缀)item="id" :设定遍历集合或数组里的每一个值的迭代变量。原创 2024-06-07 23:27:16 · 281 阅读 · 0 评论 -
【Mybatis】动态SQL标签2
类似switch...case,从上到下匹配,找到匹配的条件,就结束匹配其他的!set标签代替sql中的set关键字,可以把set语句后多余的逗号干掉!set这个标签是用在更新操作上的。原创 2024-06-06 19:37:11 · 176 阅读 · 0 评论 -
【Mybatis】动态SQL标签1
如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。②if标签里的test属性里是用的OGNL表达式,这是apache下的一个标签,用法类似jstl,但有些小差别,具体的内容可以在ognl官网上查询,这里强调一点,有些符号在xml文件里写的时候,属于特殊符号,不能直接使用,我们可以在w3cschool里查。虽然在以前使用动态 SQL 并非一件易事,但正是 MyBatis 提供了可以被用在任意 SQL 映射语句中的强大的动态 SQL 语言得以改进这种情形。原创 2024-06-04 17:01:54 · 348 阅读 · 0 评论 -
什么是SpringData和Spring-data-jpa?
答案是基本的CRUD,所有的基础CRUD框架都提供,我们使用起来感觉很方便,很给力,业务逻辑层面的处理ORM是没有提供的,如果使用原生的框架,业务逻辑代码我们一般会自定义,会自己去写SQL语句,然后执行。在ORM框架中,Hibernate是一支很大的部队,使用很广泛,也很方便,能力也很强,同时Hibernate也是和JPA整合的比较良好,我们可以认为JPA是标准,事实上也是,JPA几乎都是接口,实现都是Hibernate在做,宏观上面看,在JPA的统一之下Hibernate很良好的运行。原创 2024-05-29 02:38:58 · 983 阅读 · 1 评论 -
【Mybatis】全局配置文件properties和settings标签
指定当结果集中值为 null 的时候是否调用映射对象的 setter(map 对象时为 put)方法,这对于有 Map.keySet() 依赖或 null 值初始化的时候是有用的。注意:这个配置了解一下就可以了,因为显然,在项目中是要和spring整合的,数据源是要交个spring管理的,所有肯定不会用这个配置的!不同的驱动在这方面会有不同的表现, 具体可参考相关驱动文档或通过测试这两种不同的模式来观察所用驱动的结果。这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。原创 2024-05-17 17:41:12 · 975 阅读 · 0 评论