【框架】-- Mybatis
mybatis
木子松的猫
为了毫不费力,所以必须努力。
展开
-
【Mybatis】-JDBC到Mybatis的过渡学习
8.0.11安装原创 2018-06-17 21:35:42 · 301 阅读 · 6 评论 -
【Mybatis映射】-一对多查询
一对多有两种方法方法一: 使用嵌套ResultMap + collection关键字<resultMap type="Course" id="CourseResult"> <id column="course_id" property="courseId"/> <result column="name" proper原创 2018-05-27 17:32:10 · 277 阅读 · 17 评论 -
【Mybatis】- mapper.java和mapper.xml是如何映射起来的-源码分析
上篇博客我们讲到sqlSession是如何产生的。这篇博客我们讲讲mapper.java和mapper.xml是如何映射起来的。程序中我们只有mapper.java接口,没有mapper实现类,那么是如何调用方法的呢?mybatis里所有mapper接口的实现类都可以看做是mapperProxy,mapper代理类,然后调用MapperProxy.invoke()方法,invoke()方法...原创 2019-04-01 16:14:46 · 11663 阅读 · 3 评论 -
【Mybatis】- mapper.java接口如何操作数据库-源码分析
1、上篇博客我们拿到了mapper接口的实现类MapperPorxy,sql语句的执行过程也是从这个类开始执行的,在这个阶段最重要的是exector。/** * MapperProxy在执行时会触发此方法 */ @Override public Object invoke(Object proxy, Method method, Object[] args) throws ...原创 2019-04-01 16:25:56 · 829 阅读 · 1 评论 -
【Mybatis】- 框架架构
Mybatis怎么理解借用官网的介绍:MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings.MyBatis eliminates almost all of the JDBC code and manual se...原创 2019-03-28 16:05:34 · 5430 阅读 · 1 评论 -
【Mybatis】- 获取sqlSession-源码分析
首先,SqlSessionFactoryBuilder去读取mybatis的配置文件,然后build一个DefaultSqlSessionFactory。源码如下:/** * 一系列的构造方法最终都会调用本方法(配置文件为Reader时会调用本方法,还有一个InputStream方法与此对应) * @param reader * @param environment * ...原创 2019-04-01 15:32:16 · 572 阅读 · 0 评论 -
JDK动态代理
代理一般分为三种:静态代理、JDk动态代理、CGLib动态代理;我们常说的代理模式一般只静态代理;mybatis的mapper接口主要应用JDK动态代理;Spring的AOP主要应用JDk动态代理和CGLib动态代理。本文主要介绍JDK动态代理。静态代理原理静态代理由被代理类,代理类,接口三部分组成。代理类和被代理类都需要实现接口,被代理类实现主要业务方法,代理类通过创建一个业务实现类对象来...原创 2019-04-14 19:11:38 · 286 阅读 · 1 评论 -
【Mybatis】- 一张图的总结
原创 2019-03-24 21:23:57 · 246 阅读 · 1 评论 -
MyBaits分页插件-PageHelper
MySql对分页的支持MySql对分页的支持是通过limit字句实现的: Limit [offset,rows] offset是相对与首行的偏移量(首行是0),rows是返回条数 例如:每页30条数据,取第一页:select * from tableName limit 0,30; 每页30条数据,取第二页:select * from tableName limi...原创 2018-07-31 13:54:13 · 647 阅读 · 9 评论 -
【Mybatis】-${}和#{}的区别
动态 SQL 是 mybatis 的强大特性之一,也是它优于其他 ORM 框架的一个重要原因。mybatis 在对 sql 语句进行预编译之前,会对 sql 进行动态解析,解析为一个 BoundSql 对象,也是在此处对动态 SQL 进行处理的。在动态 SQL 解析阶段, #{ } 和 ${ } 会有不同的表现{}表示一个占位符号#{id}:其中的id表示接收输入 的参数,参数名称就是...原创 2018-06-18 16:15:54 · 573 阅读 · 8 评论 -
【Mybatis】-mybatis和Mysql返回插入的主键ID
需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的主键值自增主键返回思路: 通过mysql函数获取到刚插入记录的自增主键:LAST_INSERT_ID() 执行过程: 执行insert提交之前自动生成一个自增主键,在insert之后调用此函数。 函数解释: keyProperty:将查询到主键值设置到pa...原创 2018-06-18 15:17:15 · 1588 阅读 · 7 评论