MyBatis操作GBase8s数据库的执行流程

本文详细介绍了MyBatis整合GBase8s数据库的步骤,包括驱动引用、配置文件设置、实体类创建和查询、插入操作。接着解析了MyBatis获取Mapper接口的过程,以及Mapper接口与映射文件的绑定。重点讲解了SQL执行流程,从寻找SQL到执行SQL的步骤,并分析了参数映射和结果集映射,展示了如何自定义typeHandler以实现特定需求。通过对MyBatis源码的分析,读者可以理解其工作原理,以及如何针对GBase8s数据库进行定制化操作。
摘要由CSDN通过智能技术生成

MyBatis可能很多人都一直在用,但是MyBatis的SQL执行流程可能并不是所有人都清楚了,那么既然进来了,通读本文你将收获如下:
1、如何使用Mybatis整合GBase8s数据库
2、Mapper接口和映射文件是如何进行绑定的
3、MyBatis中SQL语句的执行流程
4、自定义MyBatis中的参数设置处理器typeHandler
5、自定义MyBatis中结果集处理器typeHandler
PS:本文基于MyBatis3.5.5版本源码
1.Mybatis整合GBase8s数据库
Mybatis是一款在持久层使用的SQL映射框架,可以将SQL语句单独写在XML配置文件中,或者使用带有注解的Mapper映射类来完成数据库记录到Java实体的映射。它支持定制化SQL、存储过程及高级映射。MyBatis框架是对JDBC轻量级的封装,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。
下面通过实例介绍如何通过mybatis中间件实现连接GBase8s数据库,实现数据查询与添加过程。
1.1GBase8s数据库驱动引用
首先,在POM文件中引用GBase8s驱动程序

cn.gbase.jdbc
gbase8s
system
E:\gbasedbtjdbc.jar

1.2配置mybatis-config.xml文件

<?xml version="1.0" encoding="UTF-8"?>
		</dataSource>
	</environment>
</environments>
<mappers>
	<mapper resource="mapper/UserMapper.xml" />
</mappers>

【配置dataSource数据源】
url属性,配置为GBase8s连接地址。
格式如:
jdbc:gbasedbt-sqli://ip:port/test:GBASEDBTSERVER=实例名;
其中jdbc:gbasedbt-sqli:为协议名称,
IP:数据库服务器ip地址
port:数据库服务器 端口地址
GBASEDBTSERVER字段表示内容为GBase8s实例名称。
username属性,为GBase8s数据库用户名
password属性,为GBase8s数据库密码

【配置Mapping文件】
mapper/UserMapper.xml文件如下:
在这里插入图片描述

1.3配置实体类
在这里插入图片描述

1.4执行用例
1)查询GBase8s数据表–获取指定用户信息
在这里插入图片描述

2)插入GBase8s数据表–新建用户
在这里插入图片描述

2.获取Mapper接口(getMapper)
通过SqlSession对象是获取一个Mapper接口,这个流程还是相对简单的,下面就是我们调用session.getMapper方法之后的运行时序图:
在这里插入图片描述

1、在调用getMapper之后,会去Configuration对象中获取Mapper对象,因为在项目启动的时候就会把Mapper接口加载并解析存储到Configuration对象
在这里插入图片描述

2、通过Configuration对象中的MapperRegistry对象属性,继续调用getMapper方法
在这里插入图片描述

3、根据type类型,从MapperRegistry对象中的knownMappers获取到当前类型对应的代理工厂类,然后通过代理工厂类生成对应Mapper的代理类
在这里插入图片描述

4、最终获取到我们接口对应的代理类MapperProxy对象
在这里插入图片描述

而MapperProxy可以看到实现了InvocationHandler,使用的就是JDK动态代理。
在这里插入图片描述

至此获取Mappe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值