
Mybatis
文章平均质量分 95
程序员Seven
欢迎到访在线网站:www.seven97.top
展开
-
《深入理解Mybatis原理》Mybatis中的缓存实现原理
每当我们使用MyBatis开启一次和数据库的会话,MyBatis会创建出一个SqlSession对象表示一次数据库会话。在对数据库的一次会话中,我们有可能会反复地执行完全相同的查询语句,如果不采取一些措施的话,每一次查询都会查询一次数据库,而我们在极短的时间内做了完全相同的查询,那么它们的结果极有可能完全相同,由于查询一次数据库的代价很大,这有可能造成很大的资源浪费。原创 2025-01-14 08:15:00 · 593 阅读 · 0 评论 -
《深入理解Mybatis原理》MyBatis事务管理机制
对数据库的事务而言,应该具有以下几点:创建(create)、提交(commit)、回滚(rollback)、关闭(close)。对应地,MyBatis将事务抽象成了Transaction接口:使用JDBC的事务管理机制:即利用java.sql.Connection对象完成对事务的提交(commit())、回滚(rollback())、关闭(close())等。使用MANAGED的事务管理机制。原创 2025-01-13 08:15:00 · 707 阅读 · 0 评论 -
《深入理解Mybatis原理》MyBatis数据源与连接池详解
创建一个java.sql.Connection对象的代价是如此巨大,是因为创建一个Connection对象的过程,在底层就相当于和数据库建立的通信连接,在建立通信连接的过程,消耗了这么多的时间,而往往我们建立连接后(即创建Connection对象后),就执行一个简单的SQL语句,然后就要抛弃掉,这是一个非常大的资源浪费!这是要使用代理模式,为真正的Connection对象创建一个代理对象,代理对象所有的方法都是调用相应的真正Connection对象的方法实现。这个数据源的实现会每次请求时打开和关闭连接。原创 2025-01-09 08:15:00 · 1059 阅读 · 0 评论 -
《深入理解Mybatis原理》Mybatis插件机制&分页机制原理
在实现里大量使用了MetaObject这个对象,因此有必要先介绍下它。MetaObject是Mybatis提供的一个的工具类,通过它包装一个对象后可以获取或设置该对象的原本不可访问的属性(比如那些私有属性)。MetaObject forObject(Object object,ObjectFactory objectFactory, ObjectWrapperFactory objectWrapperFactory) 用于包装对象;原创 2025-01-09 08:15:00 · 620 阅读 · 0 评论 -
《深入理解Mybatis原理》MyBatis动态SQL原理
SqlSessionFactoryBean实现了Spring的InitializingBean接口,InitializingBean接口的afterPropertiesSet方法中会调用buildSqlSessionFactory方法 该方法内部会使用XMLConfigBuilder解析属性configLocation中配置的路径,还会使用XMLMapperBuilder属性解析mapperLocations属性中的各个xml文件。文本节点跟之前一样处理,if节点使用IfHandler处理。原创 2025-01-07 08:15:00 · 776 阅读 · 0 评论 -
《深入理解Mybatis原理》MyBatis的sqlSession执行流程
由于数据库会话不是永久的,因此Sqlsession的生命周期也不应该是永久的,相反,在你每次访问数据库时都需要创建它(当然并不是说在Sqlsession里只能执行一次sql,你可以执行多次,当一旦关闭了Sqlsession就需要重新创建它)。这里面最重要的一句其实就是最后一句代码,它的作用是用合适的TypeHandler完成参数的设置。在mybatis中,通过MapperProxy动态代理咱们的dao, 也就是说, 当咱们执行自己写的dao里面的方法的时候,其实是对应的mapperProxy在代理。原创 2025-01-06 08:15:00 · 646 阅读 · 0 评论 -
《深入理解Mybatis原理》MyBatis配置解析过程
假如我们系统的开发环境和正式环境所用的数据库不一样(这是肯定的), 那么可以设置两个environment, 两个id分别对应开发环境(dev)和正式环境(final),那么通过配置environments的default属性就能选择对应的environment了, 例如,我将environments的deault属性的值配置为dev, 那么就会选择dev的environment。默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认构造方法,要么在参数映射存在的时候通过参数构造方法来实例化。原创 2025-01-02 08:15:00 · 915 阅读 · 0 评论 -
《深入理解Mybatis原理》MyBatis初始化机制详解
接着上述的 MyBatis初始化基本过程讨论,当SqlSessionFactoryBuilder执行build()方法,调用了XMLConfigBuilder的parse()方法,然后返回了Configuration对象。的方法mapperElements(root.evalNode(“mappers”)), 它将解析我们配置的Mapper.xml配置文件,Mapper配置文件可以说是MyBatis的核心,MyBatis的特性和理念都体现在此Mapper的配置和设计上。那么第三句到底发生了什么。原创 2024-12-31 08:15:00 · 1452 阅读 · 0 评论 -
JDBC 底层原理
JDBC(Java DataBase Connectivity)是Java和数据库之间的一个桥梁,是一个「规范」而不是一个实现,能够执行SQL语句。JDBC由一组用Java语言编写的类和接口组成。各种不同类型的数据库都有相应的实现,注意:本文中的代码都是针对MySQL数据库实现的。System.out.println("name: " + rs.getString("name") + " :年龄" + rs.getInt("age"));原创 2024-12-30 08:15:00 · 792 阅读 · 0 评论