JS日期正则表达式教程:从基础到精准验证

核心内容摘要

语音数据预处理提速秘籍:FSMN-VAD调优实践
以机器学习为基础的房价预测分析研究数据集十相关代码十大报告(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

Docker镜像体积压缩至18MB以下的农业AI模型部署术(附农机ROS2+Docker实时推理基准测试数据)

SqlSession初始化与获取SqlSession是MyBatis的核心对象用于执行SQL操作。

SqlSessionFactory是创建SqlSession的工厂类通过build()方法初始化并通过openSession()方法获取SqlSession。

SqlSessionFactoryBuilder是构建SqlSessionFactory的工具类负责解析配置文件并创建SqlSessionFactory。

示例代码java复制// 构建 SqlSessionFactory public SqlSessionFactory build(InputStream inputStream) { Configuration configuration new Configuration(); // 创建配置对象 XMLConfigBuilder xmlConfigBuilder new XMLConfigBuilder(inputStream); // 解析配置文件 configuration xmlConfigBuilder.parse(); // 解析 XML 配置 return new DefaultSqlSessionFactory(configuration); // 创建 SqlSessionFactory }

SqlSession中的select方法SqlSession提供了selectOne()和selectList()等方法用于执行查询操作。

这些方法最终调用select()方法通过Executor执行SQL查询。

示例代码java复制public E ListE selectList(String statement, Object parameter) { Executor executor this.configuration.newExecutor(this, ExecutorType.SIMPLE); // 创建 Executor return executor.query(statement, parameter); // 执行查询 }

Executor接口与query()方法Executor是MyBatis的核心执行器负责执行SQL操作。

常见的Executor实现包括SimpleExecutor每次执行SQL时都会创建新的PreparedStatement。

ReuseExecutor重用PreparedStatement。

BatchExecutor批量执行SQL。

query()方法通过StatementHandler和ResultSetHandler处理SQL的准备、执行和结果映射。

示例代码java复制public ListObject query(String statement, Object parameter) throws SQLException { StatementHandler handler configuration.newStatementHandler(); // 创建 StatementHandler Statement stmt handler.prepare(connection, transaction); // 准备 SQL ResultSetHandler resultSetHandler configuration.newResultSetHandler(); // 创建 ResultSetHandler return resultSetHandler.handleResultSets(stmt); // 处理结果集 }

StatementHandler的工作原理StatementHandler负责SQL的准备工作包括创建PreparedStatement。

设置SQL参数。

执行SQL语句。

prepare()方法用于预编译SQL语句并为查询设置参数。

ParameterHandler的作用ParameterHandler负责将Java对象中的参数绑定到SQL语句中。

setParameters()方法根据SQL语句中参数的顺序通过PreparedStatement将Java参数绑定到SQL中。

ResultSetHandler的工作原理ResultSetHandler负责处理SQL执行后的结果集将ResultSet中的数据映射到Java对象中。

它会将每一行数据从ResultSet中提取出来并根据MappedStatement的配置映射为目标对象。

MappedStatement的配置与SQL映射MappedStatement是MyBatis中用于封装SQL语句和映射信息的对象。

它包含了SQL语句。

查询参数类型。

结果类型。

MappedStatement由SqlSession传递给Executor执行。

事务管理与Transaction接口MyBatis使用Transaction接口管理事务负责开启、提交和回滚事务。

Transaction接口的实现由数据库连接控制MyBatis会根据配置使用不同的事务管理方式如JDBC事务、管理事务等。

自动生成SQL和参数绑定的流程MyBatis支持动态SQL语句的生成例如通过if、choose等标签生成不同的SQL语句。

在执行时SqlSession会根据MappedStatement的配置动态构建SQL。

ParameterHandler会在执行SQL时根据用户输入的参数生成最终的SQL语句。

总结MyBatis通过以下流程完成SQL的执行SqlSessionFactory初始化通过SqlSessionFactoryBuilder解析配置文件创建SqlSessionFactory。

SqlSession获取通过SqlSessionFactory的openSession()方法获取SqlSession。

SQL执行SqlSession调用Executor的query()方法。

Executor通过StatementHandler准备SQL通过ParameterHandler绑定参数通过ResultSetHandler处理结果集。

事务管理通过Transaction接口管理事务。

补充说明动态SQLMyBatis支持通过XML中的if、choose、when、otherwise等标签动态生成SQL语句。

这些标签允许根据条件动态拼接SQL提高灵活性。

缓存机制MyBatis提供了两级缓存一级缓存SqlSession级别的缓存同一个SqlSession中重复执行相同的查询语句时会直接从缓存中获取结果。

二级缓存Mapper级别的缓存多个SqlSession可以共享缓存数据。

插件机制MyBatis支持插件Interceptor可以通过插件机制拦截和修改Executor、StatementHandler、ResultSetHandler等组件的行为实现日志记录、性能监控等功能。

推特9.1破解版-推特9.1破解版应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123