MyBatis
lovezhaohaimig
这个作者很懒,什么都没留下…
展开
-
深入底层,仿MyBatis自己写框架
前言:最近研究了一下Mybatis的底层代码,写了一个操作数据库的小工具,实现了Mybatis的部分功能:1.SQL语句在mapper.xml中配置。2.支持int,String,自定义数据类型的入参。3.根据mapper.xml动态创建接口的代理实现对象。功能有限,目的是搞清楚MyBatis框架的底层思想,多学习研究优秀框架的实现思路,对提升自己的编码能力大有裨益。小工具使用到的核心技术点:xm...原创 2018-05-23 23:33:38 · 778 阅读 · 0 评论 -
MyBatis教程(1):初识MyBatis
前言:什么是MyBatisMyBatis 是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。简单来说,MyBatis是一个实现了数据持久化的开源框架,支持三种语言的实现,Java,.NET以及Ruby。当然我们这里讲的是Java的使用,...原创 2018-05-23 23:25:58 · 181 阅读 · 0 评论 -
MyBatis教程(2):Mapper.xml详解
前言:我们知道,每一款框架产品在实际开发中,都是通过XML文件来培训框架的相关流程的,MyBatis也不例外,主要有两个配置文件:config.xml和Mapper.xml,当然,这两种配置文件可以自定义文件名。config.xml是全局配置文件,主要配置MyBatis的数据源(DataSource),事务管理(TransactionManager),以及打印SQL语句,开启二级缓存,设置实体类别...原创 2018-05-23 23:26:27 · 226 阅读 · 0 评论 -
MyBatis教程(3):逆向工程
前言:什么是Mybatis逆向工程?可以针对单表自动生成MyBatis执行所需要的代码,包括:Mapper.java,Mapper.xml,实体类。为什么要使用Mybatis逆向工程?我们之前说过MyBatis是一个"半自动"的ORM框架,SQL语句需要开发者自定义,这样做的好处是代码更加灵活,缺点是如果参与业务的表太多,每张表的业务都需要自定义SQL,创建实体类,DAO接口,难免会很麻烦。所以我...转载 2018-05-23 23:26:51 · 564 阅读 · 1 评论 -
MyBatis教程(4):延迟加载
前言:什么是延迟加载?延迟加载或者也叫惰性加载,懒加载。使用延迟加载可以提高程序的运行效率。Java程序与数据库交互的频次越低,程序运行效率越高,所以我们应该尽量减少Java程序与数据库的交互次数,MyBatis延迟加载就很好的做到了这一点。通过一个具体的业务场景来理解延迟加载:班级(Classes)和学生(Student),当我们查询Student对象时,因为有级联关系,所以会将对应的Class...转载 2018-05-23 23:33:05 · 182 阅读 · 0 评论 -
MyBatis教程(5):缓存
前言:什么是Mybatis缓存?使用缓存可以减少Java Application与数据库的交互次数,从而提升程序的运行效率。比如,查询id=1的user对象,第一次查询出来之后,会自动将该对象保存到缓存中。下一次查询该对象时,就可以直接从缓存中获取,不需要发送SQL查询数据库了。Mybatis缓存分类一级缓存:SqlSession级别,默认开启,且不能关闭。mybatis的一级缓存是SqlSess...原创 2018-05-23 23:34:01 · 832 阅读 · 0 评论 -
MyBatis教程(6):动态SQL
前言:在业务比较复杂的情况下,我们通常需要去拼接SQL语句来完成相关操作,有过这方面开发经验的同学,一定可以体会到大量的手动拼接SQL有多么痛苦,而且出错率很高。没关系,MyBatis有一个非常方便且强大的功能就是动态SQL,使用动态SQL,可以摆脱手动拼SQL的痛苦,接下来我们就一起来学习如何使用MyBatis动态SQL。代码:我们通过对user对象的操作来举例说明。User实体类package...原创 2018-05-23 23:34:22 · 141 阅读 · 0 评论 -
mybatis工作原理
m原创 2018-06-10 20:39:27 · 544 阅读 · 0 评论 -
Mybatis插入时获取主键id
一。例子xml<insert id="insert" parameterType="com.wtoip.yuncore.entity.tech.SafeFile" useGeneratedKeys="true" keyProperty="id"> insert into yun_safe_file (id, parent_id, name, total_...原创 2019-05-09 14:33:07 · 364 阅读 · 0 评论