mybatis
文章平均质量分 85
MG-net
这个作者很懒,什么都没留下…
展开
-
Mybatis中的Configuration
在Mybatis中,存在一个十分重要的数据模型,就是Configuration。它不仅是所有配置的载体,同时也是Mybatis的四大对象(executor,statementHandler,parameterHandler和resultHandler)的创建工具。下面来了解一下Configuration的主要装载方式,其实主要是解析xml。一、主要属性1、properties:常用到配置属性文件2、settings:相关初始化参数的设置,里面的属性很多,可以查询官方来类进行配置选择,例如缓存、懒原创 2021-08-04 09:11:07 · 2320 阅读 · 0 评论 -
Mybaits的嵌套映射和动态sql
一、嵌套映射在Mybatis中,所谓的嵌套映射,就是ResultMap中返回的bean存在其它bean的List的属性,这样就设置到了重复属性的保存,因为关系型数据返回的数据都是二维的,也就是以bean中的List为主,而bean中的属性都是重复的,如下:这就涉及到了,对这些重复的属性怎么映射的问题,简单的说Mybatis中,就是使用缓存来保存这些属性的bean,发现了重复的属性,就不在创建bean,下面看下具体实现过程:...原创 2021-08-03 19:34:59 · 659 阅读 · 0 评论 -
Mybatis中延迟加载和懒加载
结果集的手动映射和自动映射在mybatis中,对于结果集的映射方式有2冲,第一种是手动映射,也就是自己写ResultMap进行查询字段和Bean中属性的映射,第二种是自动映射,也就是ResultType直接设置Bean的class值或者别名Mybatis会自动对应字段和属性Bean的值(其实自动映射最后也会转换为手动映射)。1、自动映射:在平时工作中使用的比较多的就是自动映射。2、手动映射:在手动映射中,一个ResultMap每隔属性都会对应一条ResultMapping,其中比较不常用的.原创 2021-07-28 10:00:11 · 1293 阅读 · 0 评论 -
Mybatis中的MetaObject
在mybatis中,ResultSetHandler在收集JDBC返回的结果后需要转换成对应的Bean对象,其实映射的原理基本大家都能想到使用的时候java中的反射机制,但是在Mybatis中,提供了一个更加强大的对象,就是MetaObject,使用这个对象不仅对Bean中的属性赋值、取值都十分简单,同时还能对嵌套对象进行操作。简单使用可以看到,整个MateObject让设置和获取类的属性更加方便了,在工作中可以当做工具类直接使用。底层结构MetaObject -> Be...原创 2021-07-26 17:19:11 · 1812 阅读 · 0 评论 -
Mybatis中的JDBC处理器(StatementHandler)
在Mybatis框架中,除了执行器的逻辑,比较重要的就是同JDBC打交道的StatementHandler,它封装了JDBC的连接、查询、返回值封装等。结构StatementHandler的基本结构同执行器中的基本机构类似,都是一个接口,一个Base抽象类,多个继承类。包结构如下:类图如下:在StatementHandler中定义了基础方法,如下:根据三个子类的命名,可以知道,每个子类都是提供了不同的statement,来操作JDBC。在基类BaseStatemen.原创 2021-07-25 13:58:47 · 352 阅读 · 0 评论 -
Mybatis中的执行器(Executor)
在之前的文章中介绍了mybatis的基本使用,从使用流程中可知,在每次执行CURD的时候,都需要获取SqlSession这个对象,接口如下:可以看出来这个接口主要定义类关于CRUD、数据库事务、数据库刷新等相关操作。下面看它的默认实现类:可以看到DefaultSqlSession 实现了SqlSession中的方法,(其实我们自己也可根据需要去实现)而在这个方法中,存在一个属性就是今天需要将的主角,Mybatis的执行器(Executor)。Executor简单介绍Exec.原创 2021-07-10 12:15:20 · 7384 阅读 · 0 评论 -
Mybatis的使用
使用步骤1、编写XML文件 mybatis-config.xml,其中更包含环境、设置、映射、别名文件等相关配置2、读取配置文件3、创建SqlSessionFactory(可以使用xml方式或者代码方式进行创建),一个项目中SqlSessionFactory 创建一个即可,因为是一个重对象,创建所需时间比较长,一般情况在项目启动的时候创建,主要用来 创建SqlSession的。4、使用SqlSessionFactory 创建 SqlSession,要注意的是SqlSession是线程...原创 2021-07-08 14:45:33 · 368 阅读 · 0 评论