![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MyBatis
文章平均质量分 60
学之以恒_大道至简
专注后端技术
展开
-
什么叫持久层框架
什么是持久层?持久是相对于瞬时来说的,* 持久层,可以理解成数据 保存在 数据库或者 硬盘一类可以保存很长时间的设备里面,不像放在内存中那样断电就消失了,也就是把数据存在持久化设备上* ,你想一下 内存中的数据 断电就没有了,硬盘的数据 是否会像内存中的数据一样断电消失么?为什么要使用持久化框架?企业应用中* 数据很重要(各种订单数据、客户数据、库存数据之类的),比应用程序本身更重要,...转载 2018-08-14 15:18:20 · 5508 阅读 · 0 评论 -
几种分页方式分析
一.逻辑分页 1.逻辑分页的第一种方式,利用ResultSet的滚动分页。步骤如下: a.根据条件sql查询数据库。 b.得到ResultSet的结果集,由于ResultSet带有游标,因此可以使用其next()方法来指向下一条记录。 c.利用next()方法,得到分页所需的结果集。 这种分页方式依靠的是对结果集的算法来分页,因此通常被称为“逻辑分页”。 代码如下:pack...转载 2018-08-20 11:07:01 · 522 阅读 · 0 评论 -
MyBatis原理分析之六:RowBounds分页原理
Mybatis可以通过传递RowBounds对象,来进行数据库数据的分页操作,然而遗憾的是,该分页操作是对ResultSet结果集进行分页,也就是人们常说的逻辑分页,而非物理分页。 RowBo...转载 2018-08-20 10:59:38 · 3834 阅读 · 1 评论 -
MyBatis原理分析之五:一次SQL查询的源码分析
前面我们讲到Mybatis加载相关的配置文件进行初始化,这回我们讲一下一次SQL查询怎么进行的。准备工作Mybatis完成一次SQL查询需要使用的代码如下: String resource = "mybatis.cfg.xml"; Reader reader = Resources.getResourceAsReader(resource); ...原创 2018-08-20 10:31:17 · 242 阅读 · 0 评论 -
MyBatis原理分析之四:自动映射器Mapper的底层实现原理
简单使用这是一个简单的Mybatis保存对象的例子@Testpublic void testSave() throws Exception { //创建sessionFactory对象 SqlSessionFactory sf = new SqlSessionFactoryBuilder(). build(Resources.getReso...转载 2018-08-19 22:42:40 · 2816 阅读 · 1 评论 -
MyBatis原理分析之三:初始化(配置文件读取与解析)
Mybatis的初始化过程,就是组装Configuration的过程,主要分为系统环境参数初始化和Mapper映射初始化,其中Mapper映射初始化尤为重要。先看一个配置文件mybatis-config.xml,里面的内容大致为:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "...原创 2018-08-19 16:00:50 · 439 阅读 · 0 评论 -
MyBatis原理分析之二:从JDBC到Mybatis的过程
1.引言本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架。再而论述Mybatis作为一个数据持久层框架本身有待改进之处。&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;2.JDBC实现查询分析我们先看看我们最熟悉也是最基础的通过JDBC查询数据库数据,一般需要以下七个步骤:(1)&amp;amp;amp;nbsp;&amp;a转载 2018-08-19 11:30:43 · 205 阅读 · 0 评论 -
MyBatis原理分析之一:框架整体设计
&nbsp;1.引言本文主要讲解Mybatis的整体程序设计,理清楚框架的主要脉络。后面文章我们再详细讲解各个组件。&nbsp;2.整体设计2.1 总体流程(1)加载配置并初始化&nbsp; &nbsp; &nbsp; 触发条件:加载配置文件&nbsp; &nbsp; &nbsp; 配置来源于两个地方,一处是配置文件,一处是Java代码的注解,转载 2018-08-19 11:21:10 · 320 阅读 · 0 评论 -
MySql数据库连接池专题
一、什么是数据库连接池?官方:数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。个人理解:创建数据库连接是一个很耗时的操作,也容易对数据库造成安全隐患。所以,在程序初始化的时候,集中创建多个数据库连接,并把他们集中...转载 2018-08-18 16:36:12 · 203 阅读 · 0 评论 -
PreparedStatement与Statement的区别
本人的几点浅见,各位大大不喜勿喷。先说下这俩到底是干啥的吧。其实这俩干的活儿都一样,就是创建了一个对象然后去通过对象调用executeQuery方法来执行sql语句。说是CreateStatement和PrepareStatement的区别,但其实说的就是Statement和PrepareStatement的区别,相信大家在网上已经看到过不少这方面的资料和博客,我在此处提几点,大家看到过的,...转载 2018-08-18 10:42:52 · 162 阅读 · 0 评论 -
MyBatis 延迟加载,一级缓存,二级缓存设置
什么是延迟加载 resultMap中的association和collection标签具有延迟加载的功能。延迟加载的意思是说,在关联查询时,利用延迟加载,先加载主信息。使用关联信息时再去加载关联信息。设置延迟加载需要在SqlMapConfig.xml文件中,在<settings>标签中设置下延迟加载。lazyLoadingEnabled、aggressiveLaz...转载 2018-08-21 10:26:54 · 164 阅读 · 0 评论