首页

文章

mybatis原理

发布网友 发布时间:2022-03-24 22:27

我来回答

2个回答

懂视网 时间:2022-03-25 02:48

mybatis #和$区别是:

  

  1、“#”将传入的数据当成一个字符串,会对自动传入的数据加一个双引号。例如“order by #id#”,如果传入的值是111,那么解析成sql时的值变为“order by "111"”,如果传入的值是id,在解析成sql为“order by "id"”,其实原sql语句通常写成 “order by #{id} 与order by #id#”的效果一样。

  

  2、“$”将传入的数据直接显示在sql语句中。例如“order by ${id}”,如果传入的值是9则解析成sql语句为“order by 9”。

  

  3、“#”方式能够很大程度上防止sql注入,而“$”无法防止sql的注入,“$”一般用于传入数据库对象,例如传入表名一般能用#就别用“$”,mybatis排序时使用order by动态参数时需要注意,使用“$”而不是“#”。

  

  

热心网友 时间:2022-03-24 23:56

MyBatis 的工作原理:读取 MyBatis 配置文件、加载映射文件、构造会话工厂、创建会话对象、Executor 执行器、输入参数映射、输出结果映射。


mybatis原理具体介绍如下:


1、读取 MyBatis 配置文件:


mybatis-config.xml 为 MyBatis 的全局配置文件,配置了 MyBatis 的运行环境等信息,例如数据库连接信息。


2、加载映射文件:


映射文件即 SQL 映射文件,该文件中配置了操作数据库的 SQL 语句,需要在 MyBatis 配置文件 mybatis-config.xml 中加载。mybatis-config.xml 文件可以加载多个映射文件,每个文件对应数据库中的一张表。


3、构造会话工厂:

通过 MyBatis 的环境等配置信息构建会话工厂 SqlSessionFactory。


4、创建会话对象:

由会话工厂创建 SqlSession 对象,该对象中包含了执行 SQL 语句的所有方法。


5、Executor 执行器:


MyBatis 底层定义了一个 Executor 接口来操作数据库,它将根据 SqlSession 传递的参数动态地生成需要执行的 SQL 语句,同时负责查询缓存的维护。



6、MappedStatement 对象:


在 Executor 接口的执行方法中有一个 MappedStatement 类型的参数,该参数是对映射信息的封装,用于存储要映射的 SQL 语句的 id、参数等信息。



7、输入参数映射:


输入参数类型可以是 Map、List 等集合类型,也可以是基本数据类型和 POJO 类型。输入参数映射过程类似于 JDBC 对 preparedStatement 对象设置参数的过程。



8、输出结果映射:


输出结果类型可以是 Map、 List 等集合类型,也可以是基本数据类型和 POJO 类型。输出结果映射过程类似于 JDBC 对结果集的解析过程。

如何为职务侵占罪进行辩护 职务侵占如何辩护 职务侵占罪有效辩护点有哪些 miui11开发者选项在哪_小米miui11开发者选项在哪 查询考研成绩需要什么 考研查分前要做什么 考研查询需要什么证件 研究生什么专业好 什么专业的研究生最好 考研究生什么专业好 研究生学什么专业 宝石花的养殖方法介绍 宝石花怎么养才长得好 不想让老婆看到我电脑里的一些东西怎么办? 桥好路由器停电后在来电老是获取lp 勒索病毒加密的文件如何恢复? TPU贴合膜多少钱 华为手机如何将输入法改为简体 肉丝炒金针菇做法 仓储冷链信息怎么申报 什么是药品冷链物流 浙江食品冷链运输多少钱 生物冷链具备什么资质 投诉检测站最有效办法 冢君的解释 304C型钢厂 真诚推荐 永浩供 乌鲁木齐球墨铸铁厂家排名 2023年抖音618好物节招商规则 2023年抖音好物年货节好物直播间玩法说明 抖音2023好物年货节玩法攻略 互联网内容平台——小红书的优势与困境 ...女儿房间的空调洗一下滤网,问一下格力小金豆空调面罩怎么打开... 传真机和打印机有什么区别? 传真纸和打印纸哪个好 传真纸和复印纸哪个好 虚拟语气as though 的问题 We didn't know his telephone number, otherwise we would have teleph... 我想问一下 错综复杂条件句 那怎么不能使用在这里 if i can do this... 好可怕...好可怕的梦... 线束组装线束组装工艺要求 汽车线束英语翻译 带表卡尺怎么读数 带表卡尺的使用方法 压力变送器数显表 公主连结凯露表情包大全 臭鼬表情包图片一览[多图] 单眼皮怎么使用双眼皮贴? 咬人的那特小的虫子叫什么 Bose音响怎么连接蓝牙 博士音响蓝牙怎么连接 夹了一片菜叶,上面摆了七根鱼刺和在碗里放了七个汤勺,每个汤勺里放一根... 微信聊天记录怎么才能彻底删除?通过这几种操作可以确保隐私安全!_百度... IDM IDMShellExt64.dll无法删除 - 删除使用中的(进程相关或残留)文件... 写关于活动的句子100字 什么是mybatis?mybatis的优点是什么 mybatis原理是什么? 什么是mybatis框架 mybatis工作原理及为什么要用 “mybatis” 这个单词怎么读? 什么是mybatis? 华为荣耀30悬浮球怎么关闭 荣耀8青春版怎么取消悬浮球? 华为手机桌面上的悬浮球怎么取消 华为荣耀怎么关闭悬浮球 为什么滴滴出行上很多人不接单? 跑滴滴为什么到那个单数就不给派单了? 滴滴调度小助手可以不去吗? 滴滴远程调度订单能取消吗 滴滴老司机有调度无单补偿吗? 为什么我今天滴滴叫不到车?每天都能叫到,今天半个小时了,加了六元调度费都没人接单, 可不可以不听中距离调度的滴滴 滴滴调度到达在原地等吗? 滴滴接完一单就原地等吗 滴滴调度不去有什么影响 什么是mybatis 什么是mybatis 为什么要使用my batis mybatis和ibatis的区别 Java框架MyBatis工作流程是怎样的? mybatis框架的主要作用 Java框架---Mybatis是什么样的? java中的mybatis是做什么用的 单独的使用mybatis 如何来管理事务 mybatis 怎么创建数据库 vivox23的红外线什么用 vivox23支持红外吗 vivox23有红外线吗 vivox23幻彩版红外线在什么位置 请问X23有没有红外线 vivox23拆机红外在哪个位置 请问vivox23可以开空调吗 vivox23红外光敏感的通知怎么打开? vivox23幻彩版红外被异常遮挡 x23换了组装屏红外被遮挡 vivox23到底怎么样
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com