【Mybatis】Mybatis的工作原理

目录

 

工作原理图

 使用 MyBatis 操作数据库通常需要以下几个步骤:

1、配置数据库连接信息:

2、定义数据表对应的实体类:

3、编写 SQL 映射文件:

4、配置 MyBatis 映射文件:

5、创建 MyBatis 的 SqlSessionFactory:

6、创建 SqlSession:

7、执行 SQL 查询:

8、处理查询结果:

9、提交事务或回滚:

10、释放资源:


 

工作原理图

 

 使用 MyBatis 操作数据库通常需要以下几个步骤:

1、配置数据库连接信息:

        在 MyBatis 的配置文件中,需要指定数据库的连接信息,例如数据库类型、URL、用户名和密码等。

<configuration><environments default="development"><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/mydatabase" /><property name="username" value="root" /><property name="password" value="password" /></dataSource></environment></environments>
</configuration>

2、定义数据表对应的实体类:

        创建 Java 类,用于映射数据库中的表结构。该实体类的字段应该与数据库表中的列相对应,并提供相应的 getter 和 setter 方法。

public class User {private int id;private String name;private int age;// getter 和 setter 方法// ...
}

3、编写 SQL 映射文件:

        创建一个 XML 文件,用于存放 SQL 语句。在该文件中,可以定义查询、插入、更新和删除等操作的 SQL 语句,以及参数的映射关系。

<mapper namespace="com.example.mapper.UserMapper"><select id="getUserById" resultType="com.example.model.User">SELECT * FROM User WHERE id = #{id}</select>
</mapper>

4、配置 MyBatis 映射文件:

        在 MyBatis 的配置文件中,需要引入之前编写的 SQL 映射文件,并且配置相应的命名空间和别名。

<configuration><mappers><mapper resource="com/example/mapper/UserMapper.xml" /></mappers>
</configuration>

5、创建 MyBatis 的 SqlSessionFactory:

        在 Java 代码中,使用 MyBatis 提供的 SqlSessionFactoryBuilder 来创建 SqlSessionFactory,它是 MyBatis 的核心类,负责创建 SqlSession 的实例。

6、创建 SqlSession:

        使用 SqlSessionFactory 创建一个 SqlSession 实例,通过 SqlSession 可以执行具体的数据库操作,如查询、插入、更新和删除等。

SqlSession sqlSession = sqlSessionFactory.openSession();

7、执行 SQL 查询:

        在 SqlSession 中调用相应的方法执行 SQL 查询操作,如 selectOne()selectList() 等,可以传递参数并获取返回的结果。

User user = sqlSession.selectOne("com.example.mapper.UserMapper.getUserById", 1);

8、处理查询结果:

        获取 SQL 查询的返回结果,并通过之前定义的实体类进行封装,从而将查询结果转化为 Java 对象。

9、提交事务或回滚:

        如果在数据库操作中使用了事务管理,需要在适当的时候提交事务或回滚事务,以确保数据的一致性。

sqlSession.commit(); // 提交事务
// 或
sqlSession.rollback(); // 回滚事务

10、释放资源:

        使用完 SqlSession 后,需要手动关闭它以释放数据库连接和相应的资源,可以通过 close() 方法来关闭。

sqlSession.close();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/128273.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SSM的宿舍管理系统【附源码文档】

基于SSM的宿舍管理系统【附源码文档】 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringSpringMVCMyBatis工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色&#xff1a;管理员、宿舍管理员、学生 管理员&#xff1a;院系信息、班级信…

leetcode872. 叶子相似的树(java)

叶子相似的树 题目描述递归 题目描述 难度 - 简单 leetcode - 872. 叶子相似的树 请考虑一棵二叉树上所有的叶子&#xff0c;这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。 举个例子&#xff0c;如上图所示&#xff0c;给定一棵叶值序列为 (6, 7, 4, 9, 8) 的树。 如果…

Undefined symbols for architecture arm64

解决问题之前&#xff0c;先了解清晰涉及到的知识点&#xff1a; iOS支持的指令集包含&#xff1a;armv6、armv7、armv7s、arm64&#xff0c;在项目TARGETS---->Build Settings--->Architecturs 可以修改对应的指令集&#xff0c;目前Standard Architectures(arm64, arm…

SSM - Springboot - MyBatis-Plus 全栈体系(五)

第二章 SpringFramework 四、SpringIoC 实践和应用 2. 基于 XML 配置方式组件管理 2.5 实验五&#xff1a;高级特性&#xff1a;FactoryBean 特性和使用 2.5.1 FactoryBean 简介 FactoryBean 接口是Spring IoC容器实例化逻辑的可插拔性点。 用于配置复杂的Bean对象&#x…

精益制造、质量管控,盛虹百世慧共同启动MOM(制造运营管理)

百世慧科技依托在电池智能制造行业中的丰富经验&#xff0c;与盛虹动能达成合作&#xff0c;为其提供MOM制造运营管理平台&#xff0c;并以此为起点&#xff0c;全面提升盛虹动能的制造管理水平与运营体系。 行业困境 中国动力电池已然发展为全球最大的电池产业&#xff0c;但…

Android 系统源码目录frameworks/base/packages和packages/apps下的APP区别

概要 在 Android Open Source Project (AOSP) 源代码中&#xff0c;frameworks/base/packages 和 packages/apps 目录都包含 Android 系统中的应用程序&#xff0c;但它们在性质和用途上有一些区别&#xff1a; 1&#xff0c;frameworks/base/packages frameworks/base 目录…

【初阶C语言】操作符1--对二进制的操作

前言&#xff1a;本节内容介绍的操作符&#xff0c;操作的对象是二进制位。所以前面先介绍整数的二进制位 一、二进制位介绍 1.二进制介绍 &#xff08;1&#xff09;整数的二进制表示形式有三种&#xff1a;原码、反码和补码。 &#xff08;2&#xff09;原码、反码和补码的…

【ARM CoreLink 系列 3 -- CCI-550 控制器介绍 】

文章目录 CCI FamilyCCI-550 简介CCI-550 功能CCI-550 Interfaces Snoop filter 使用背景CCI-550 Snoop filter 上篇文章&#xff1a;ARM CoreLink 系列 2 – CCI-400 控制器简介 CCI Family CCI-550 简介 Arm CoreLink CCI-550 Cache Coherent Interconnect 扩展了 CoreLink…

Linux指令二【进程,权限,文件】

进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程&#xff0c;是操作系统进行 资源分配和调度的一个独立单位&#xff0c;是应用程序运行的载体。 一、进程基本指令 1.ps&#xff1a;当前的用户进程 ps 只显示隶属于自己的进程状态ps -aux 显示所有进程…

解决Spring Boot启动错误的技术指南

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

二叉搜索树

目录 二叉搜索树 操作-查找 操作-插入 操作-删除 性能分析 二叉搜索树 二叉搜索树又称二叉排序树,它要么是一棵空树,要么是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有结点的值都小于根节点的值若它的右子树不为空,则右子树上所有结点的值都大于根节点的值…

自动化运维—ansible

一、 Ansible 介绍 Ansible 是一种 IT 自动化工具。它可以配置管理&#xff0c;部署软件以及协调更高级的 IT 任务&#xff0c; 例如持续部署&#xff0c;滚动更新。 Ansible 适用于管理企业 IT 基础设施&#xff0c;从 几十台到上百台的服务器环境。Ansible 也是一种简单的自…

上海控安SmartRocket系列产品推介(六):SmartRocket PeneX汽车网络安全测试系统

产品概述 上海控安汽车网络安全测试系统PeneX&#xff08;Penetrator X&#xff09;是一款支持对整车及车辆零部件及子系统实施网络安全测试的系统&#xff0c;其包含硬件安全、软件系统安全、车内通信及车外通信四大安全测试系统&#xff1b;支持合规性测试&#xff0c;包含国…

LLMs之Falcon 180B:Falcon 180B的简介、安装、使用方法之详细攻略

LLMs之Falcon 180B&#xff1a;Falcon 180B的简介、安装、使用方法之详细攻略 导读&#xff1a;2023年9月7日(北京时间)&#xff0c;TII重磅发布Falcon-180B模型&#xff0c;它是Falcon系列的升级版本&#xff0c;是一个参数规模庞大、性能优越的开放语言模型&#xff0c;适用于…

Jetsonnano B01 笔记7:Mediapipe与人脸手势识别

今日继续我的Jetsonnano学习之路&#xff0c;今日学习安装使用的是&#xff1a;MediaPipe 一款开源的多媒体机器学习模型应用框架。可在移动设备、工作站和服务 器上跨平台运行&#xff0c;并支持移动 GPU 加速。 介绍与程序搬运官方&#xff0c;只是自己的学习记录笔记&am…

云原生Kubernetes:kubectl管理命令

目录 一、理论 1.K8S资源管理方法 2.kubectl 管理命令 3.项目的生命周期 二、实验 1.kubectl 管理命令 2.项目的生命周期 三、总结 一、理论 1.K8S资源管理方法 &#xff08;1&#xff09;管理K8S资源的三种基本方法&#xff1a; ① 陈述式资源管理方法-使用cli工具进…

【web开发】2、css基础

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、CSS是什么&#xff1f;二、使用步骤2.1.css的存放位置2.2.选择器2.3.常用CSS样式介绍与示例 一、CSS是什么&#xff1f; 层叠样式表(英文全称&#xff1a;Casc…

文献阅读:Chain-of-Thought Prompting Elicits Reasoning in Large Language Models

文献阅读&#xff1a;Chain-of-Thought Prompting Elicits Reasoning in Large Language Models 1. 文章简介2. 具体方法3. 实验结果 1. 数学推理 1. 实验设计2. 实验结果3. 消解实验4. 鲁棒性考察 2. 常识推理 1. 实验设计2. 实验结果 3. 符号推理 1. 实验设计2. 实验结果 4.…

单片机-蜂鸣器

简介 蜂鸣器是一种一体化结构的电子讯响器&#xff0c;采用直流电压供电 蜂鸣器主要分为 压电式蜂鸣器 和 电磁式蜂鸣器 两 种类型。 压电式蜂鸣器 主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成&#xff0c;当接通电源后&…

Excel VSTO开发7 -可视化界面开发

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 7 可视化界面开发 前面的代码都是基于插件启动或者退出时&#xff0c;以及Excel Application的相关事件&#xff0c;在用户实际操作…