
mybatis
文章平均质量分 91
大神,快来碗里
专注于Java相关技术
展开
-
mybatis知识
mybatis+maven项目搭建 搭建一个简单的maven+mybatis项目 在pom.xml加上mybatis和数据库的配置,我这里用mysql示例 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi原创 2020-12-01 07:16:57 · 339 阅读 · 1 评论 -
mybatis(12) mybatis-plus源码分析之sql注入器
来源于微信公众号「Java科代表」 mybatis-plus是完全基于mybatis开发的一个增强工具,它的设计理念是在mybatis的基础上只做增强不做改变,为简化开发、提高效率而生,它在mybatis的基础上增加了很多实用性的功能,比如增加了乐观锁插件、字段自动填充功能、分页插件、条件构造器、sql注入器等等,这些在开发过程中都是非常实用的功能,mybatis-plus可谓是站在巨人的肩膀...原创 2019-05-04 10:38:32 · 11304 阅读 · 0 评论 -
mybatis(11) Mybatis-spring源码分析之注册Mapper Bean
来源于微信公众号「Java科代表」 Mybatis 单独使用方式 如果是单独使用 Mybatis,需要手动创建 Mapper 代理实现类: // 以下是半伪代码 // 创建 sqlSessionFactory 工厂类 SqlSessionFactory sqlSessionFactory = SqlSessionFactoryBuilder.build(configuration); //...原创 2019-05-04 10:35:49 · 11503 阅读 · 0 评论 -
mybatis(10)Mybatis源码分析之Mapper注册与绑定
来源于微信公众号「Java科代表」 Mybatis 是一个「面向 sql」的持久层框架,它可实现动态拼装 sql,极其灵活,同时避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集,其插件机制允许在已映射语句执行过程中的某一点进行拦截调用等等,让我忍不住想要撸一撸它的源码。 我们都知道 Mapper 是一个接口,它的每个方式是我们与数据库交互的入口,每个 Mapper 都有与之相对应的...原创 2019-05-04 10:33:03 · 11640 阅读 · 0 评论 -
mybatis(9) Mybatis初始化机制详解
对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外。本章将通过以下几点详细介绍MyBatis的初始化过程。 1.MyBatis的初始化做了什么 2. MyBatis基于XML配置文件创建Configuration对象的过程 3. 手动加载XML配置文件创建Configuration对象完成初始化,创建并使用SqlSessionFactory对象...原创 2019-05-04 10:21:05 · 10986 阅读 · 0 评论 -
mybatis(8) # 与 $ 区别以及 sql 预编译
mybatis 中使用 sqlMap 进行 sql 查询时,经常需要动态传递参数,例如我们需要根据用户的姓名来筛选用户时,sql 如下: select * from user where name = "ruhua"; 上述 sql 中,我们希望 name 后的参数 “ruhua” 是动态可变的,即不同的时刻根据不同的姓名来查询用户。在 sqlMap 的 xml 文件中使用如下的 sql 可以实...原创 2019-05-04 09:47:39 · 11045 阅读 · 0 评论 -
mybatis(7) Mapper中的方法和DAO接口方法是怎么绑定到一起的
Mybatis中DAO层接口没有写实现类,Mapper中的方法和DAO接口方法是怎么绑定到一起的,其内部是怎么实现的 原理 再根据网上的一些知识点,讲一下原理: mybatis通过JDK的动态代理方式,在启动加载配置文件时,根据配置mapper的xml去生成Dao的实现。 session.getMapper()使用了代理,当调用一次此方法,都会产生一个代理class的instance,看看这个代理...原创 2019-05-04 09:42:53 · 14482 阅读 · 0 评论 -
mybatis(6) 教你如何开发Mybatis的通用Mapper
出自:https://my.oschina.net/flags/blog/354573 如何开发自己的通用Mapper ##要求 自己定义的通用Mapper必须包含泛型,例如MysqlMapper<T>。 自定义的通用Mapper接口中的方法需要有合适的注解。具体可以参考Mapper 需要继承MapperTemplate来实现具体的操作方法。 通用Mapper中的Provider...原创 2019-05-04 09:08:27 · 11510 阅读 · 1 评论 -
mybatis(5) 深入了解MyBatis参数
出自:https://my.oschina.net/flags/blog/381199 深入了解MyBatis参数 相信很多人可能都遇到过下面这些异常: “Parameter ‘xxx’ not found. Available parameters are […]” "Could not get property ‘xxx’ from xxxClass. Cause: “The expre...原创 2019-05-04 08:57:49 · 11533 阅读 · 0 评论 -
mybatis(4)Mybatis解析动态sql原理分析
出自:https://www.cnblogs.com/fangjian0423/p/mybaits-dynamic-sql-analysis.html Mybatis解析动态sql原理分析 前言 废话不多说,直接进入文章。 我们在使用mybatis的时候,会在xml中编写sql语句。 比如这段动态sql代码: <update id="update" parameterType="org....原创 2019-05-04 08:50:49 · 11121 阅读 · 0 评论 -
mybatis(3) MyBatis拦截器原理探究
出自:http://www.cnblogs.com/fangjian0423/p/mybatis-interceptor.html MyBatis拦截器介绍 MyBatis提供了一种插件(plugin)的功能,虽然叫做插件,但其实这是拦截器功能。那么拦截器拦截MyBatis中的哪些内容呢? 我们进入官网看一看: MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,My...原创 2019-05-04 08:48:48 · 11128 阅读 · 0 评论 -
mybatis(2)通过源码分析MyBatis的缓存
出自:http://www.cnblogs.com/fangjian0423/p/mybatis-cache.html 前方高能! 本文内容有点多,通过实际测试例子+源码分析的方式解剖MyBatis缓存的概念,对这方面有兴趣的小伙伴请继续看下去~ MyBatis缓存介绍 首先看一段wiki上关于MyBatis缓存的介绍: MyBatis支持声明式数据缓存(declarative data ca...原创 2019-05-04 08:45:40 · 11071 阅读 · 0 评论 -
mybatis(1) SqlSessionTemplate是如何保证的MyBatis中的SqlSession的线程安全的?
一,DefaultSqlSession的线程不安全性 在MyBatis的架构中的SqlSession是提供给外层调用的顶层接口,实现类有:DefaultSqlSession,SqlSessionManager以及MyBatis的弹簧提供的实现SqlSessionTemplate默认的实现类为DefaultSqlSession如类图结构如下所示: 对于MyBatis的提供的原生实现类来说,用的最多...转载 2019-05-04 08:28:14 · 11483 阅读 · 1 评论