• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

标签:Mybatis

源码分析 Mybatis 的 foreach 为什么会出现性能问题

背景最近在做一个类似于综合报表之类的东西,需要查询所有的记录(数据库记录有限制),大概有1W条记录。该报表需要三个表的数据,也就是根据这 1W 个 ID 去执行查询三次数据库,其中,有一条查询 SQL 是自己写,其他两条是根据别人提供的接口进行查询。刚开始的时候,没有多想,直接使用 in 进行查询,使用 Mybatis 的 foreach 语……

MyBatis动态SQL(认真看看, 以后写SQL就爽多了)

MyBatis 令人喜欢的一大特性就是动态 SQL。 在使用 JDBC 的过程中, 根据条件进行 SQL 的拼接是很麻烦且很容易出错的。 MyBatis 动态 SQL 的出现, 解决了这个麻烦。MyBatis通过 OGNL 来进行动态 SQL 的使用的。目前, 动态 SQL 支持以下几种标签:1 数据准备为了后面的演示, 创建了一个 Ma……

原来resultMap解析完是这样(mybatis源码)

在 select 语句中查询得到的是一张二维表, 水平方向上看是一个个字段, 垂直方向上看是一条条记录。作为面向对象的语言, Java 中的的对象是根据类定义创建的。 类之间的引用关系可以认为是嵌套的关系。在 mybatis 中, resultMap 节点定义了结果集和结果对象(JavaBean)之间的映射规则。本文主要讲解的是 result……

IDEA 中生成 MyBatis 逆向工程实践

IDEA 逆向 MyBatis 工程时,不像支持 Hibernate 那样有自带插件,需要集成第三方的 MyBatis Generator。MyBatis Generator的详细介绍 http://mybatis.github.io/generator/index.html本篇博客图解 MyBatis Generator 的使用过程……

Mybatis的基本要素–核心对象

大家好啊,今天呢来说下Mybatis的核心对象,也就是说基本三要素.核心接口和类。Mybatis核心配置文件(mybatis-config.xml)SQL映射文件一、下面首先介绍Mybatis的核心接口和类。(1) 每个MyBatis的应用程序都以一个SqlSessionFactory对象的实例为核心.(2) 首先……

《深入理解mybatis原理》 Mybatis初始化机制详解

对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外。本章将通过以下几点详细介绍MyBatis的初始化过程。1.MyBatis的初始化做了什么2. MyBatis基于XML配置文件创建Configuration对象的过程3. 手动加载XML配置文件创建Configuration对象完成初始化,创建并使用SqlSes……

关于 Mybatis的 $ 和 # , 你真的知道他们的细节吗 ?

前言在JDBC中,主要使用的是两种语句,一种是支持参数化和预编译的PrepareStatement,能够支持原生的Sql,也支持设置占位符的方式,参数化输入的参数,防止Sql注入,一种是支持原生Sql的Statement,有Sql注入的风险。在使用Mybatis进行开发过程中,隐藏了底层具体使用哪一种语句的细节,我们通过使用#和$告诉……

通过源码分析MyBatis的缓存

前方高能! 本文内容有点多,通过实际测试例子+源码分析的方式解剖MyBatis缓存的概念,对这方面有兴趣的小伙伴请继续看下去~MyBatis缓存介绍首先看一段wiki上关于MyBatis缓存的介绍:MyBatis支持声明式数据缓存(declarative data caching)。当一条SQL语句被标记为“可缓存”后,首次执行它时从数据……

Java面试中问及Hibernate与MyBatis的对比,在这里做一下总结

我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和学习,使自己在做项目中更加得心应手。第一方面:开发速度的对比就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些。Mybat……

程序员,Mybatis你踩过坑吗?

大多数开发者应该都使用过Hibernate或者Mybatis的框架,或多或少都踩过一些坑!如在MyBatis/Ibatis中#和$的区别,#方式能够很大程度防止sql注入,$方式无法防止Sql注入。所以,老司机 对新手说,最好用#。简单的说#{}是经过预编译的,是安全的,而解决一些实际问题。如在执行sql语句时你有时并不希望让变量进行处理……

源码级别解读Mybatis插件

简介:MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射……

SqlSessionTemplate是如何保证MyBatis中SqlSession的线程安全的?

一、DefaultSqlSession的线程不安全性在MyBatis架构中SqlSession是提供给外层调用的顶层接口,实现类有:DefaultSqlSession、SqlSessionManager以及mybatis-spring提供的实现SqlSessionTemplate。默认的实现类为DefaultSqlSession如。类图结……

Mybatis 处理列名—字段名映射(一) :驼峰式命名映射

在之前的博客-《 [JDBC] 处理ResultSet,构建Java对象 》中提到,我们需要分析Mybatis在转换Result到需要的Java业务对象时做的三件事,如下: [JDBC] 处理ResultSet,构建Java对象https://my.oschina.net/kailuncen/blog/906992解决了数据库……

Mybatis传递多个参数的4种方式(干货)

现在大多项目都是使用Mybatis了,但也有些公司使用Hibernate。使用Mybatis最大的特性就是sql需要自己写,而写sql就需要传递多个参数。面对各种复杂的业务场景,传递参数也是一种学问。下面给大家总结了以下几种多参数传递的方法。方法1:顺序传参法publicUser selectUser(String name,……

MyBatis的底层实现原理!是动态代理的运用

一日小区漫步,我问朋友:Mybatis中声明一个interface接口,没有编写任何实现类,Mybatis就能返回接口实例,并调用接口方法返回数据库数据,你知道为什么不?朋友很是诧异:是啊,我也很纳闷,我们领导告诉我们按照这个模式编写就好了,我同事也感觉很奇怪,虽然我不知道具体是怎么实现的,但我觉得肯定是……(此处略去若干的漫天猜想),但是也不对……

Mybatis的SqlSession运行原理

前言SqlSession是Mybatis最重要的构建之一,可以简单的认为Mybatis一系列的配置目的是生成类似JDBC生成的Connection对象的SqlSession对象,这样才能与数据库开启“沟通”,通过SqlSession可以实现增删改查(当然现在更加推荐是使用Mapper接口形式),那么它是如何执行实现的,这就是本文所介绍的东西,……

MyBatis关联映射:一对一、一对多总结一二

一、一对一场景:生活中每一个人都有一个身份证,这是最简单的一对一的关系。(1)用户表(2)身份证表(3)用户实体对象,com.xuliugen.mybatis.demo.bean.User(4)身份证实体对象,com.xuliugen.mybatis.demo.bean.Card(5)用户表XML映射文件<!……

Mybatis解析动态sql原理分析

前言废话不多说,直接进入文章。我们在使用mybatis的时候,会在xml中编写sql语句。比如这段动态sql代码:<update id=“update” parameterType=“org.format.dynamicproxy.mybatis.bean.User”> ……

Mybatis面试题

Mybatis常见面试题#{}和${}的区别是什么?{}和${}的区别是什么?在Mybatis中,有两种占位符#{}解析传递进来的参数数据${}对传递进来的参数原样拼接在SQL中#{}是预编译处理,${}是字符串替换。使用#{}可以有效的防止SQL注入,提高系统安全性。当实体类中的属性名和表中的字段名不一……

MyBatis入门

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。一、理解什么是MyBatis?MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框……

mybatis思维导图,让mybatis不再难懂(二)

上一篇文章写了mybatis的基本原理和配置文件的基本使用,这一篇写mybatis的使用,主要包括与sping集成、动态sql、还有mapper的xml文件一下复杂配置等。值得注意的是,导图17和18中讲解resultMap子元素的时候可能讲得不是很清楚,应该需要大量的代码来讲解使用方法,思维导图恰恰不适合这种表现方法。所以需要读者根据给出的……

mybatis思维导图,让mybatis不再难懂(一)

        与hibernate相比,我无疑更喜欢mybatis,就因为我觉得它真的好用,哈哈。它简单上手和掌握;sql语句和代码分开,方便统一管理和优化;当然缺点也有:sql工作量很大,尤其是字段多、关联表多时,更是如此。而且sql依赖于数据库,导致数据库移植性差。        选用一个框架之前最好先了解它的优缺点,对项目最好用……

当面试官问我Mybatis初始化原理时,我笑了

对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外。本章将通过以下几点详细介绍MyBatis的初始化过程。MyBatis的初始化做了什么MyBatis基于XML配置文件创建Configuration对象的过程手动加载XML配置文件创建Configuration对象完成初始化,创建并使用SqlSessionFactor……

Spring+Mybatis整合开发案例之部门员工管理系统

Spring+Mybatis整合开发案例之部门员工管理系统采用Maven进行项目构建,模块化开发,简单的入门级案例,企业员工管理系统,适合初学者练习。用户登录之后可以进行人员管理,查看个人信息,修改密码,查看操作日志。人员管理可以查看姓名,性别,出生日期,入职日期,部门,状态,并且可以展开详细信息。部门管理可以增删修改部门。日志信息可以查看操作日志,……

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00