mybatis学习

2023-05-16

mybatis学习:

一、jdbc存在的问题:

1.频繁创建链接,造成系统资源的浪费

2.sql语句死板,造成sql语句硬编码的问题

3.代码太繁琐,维护难。

 

二、mybatis学习改进

1.通过链接池改进了jdbc频繁创建链接,消耗系统资源的问题。

2.通过mapper动态代理的方式,来改进。(其实本人觉得更加麻烦了)

3.通过实现框架的规范,一定程度上方便了修改代码。

三、mybatis架构

1.SqlMapperConfig.xml核心配置文件

2.这个文件中的子文件mapper1.xml

3.SqlSessionFactory收集1,2中的配置原料,然后造Sqlsession

4.session中有executor负责执行Sql语句

5.executor中有MapperStatement,负责解析Sql语句为一个pojo对象

 

流程:mybatis中SqlSessionFactory根据配置文件来执行Sql语句,然后操作数据库。

 

问题:二级缓存和分布式缓存

四、mybatis与hibernate之间的区别

mybatis是一个不完全的ORM框架,因为hibernate通过对象实体关系映射,不用写相关的sql语句,直接有方法可以自动生成sql语句。而mybatis不一样,需要程序员手写sql语句,然后通过sqlsession来执行。

 

五、mybatis和hibernate之间的联系

mybatis有mapper动态代理的模式。个人觉得十分像hibernate的对象实体关系映射。

首先,mybatis要写相关对象的接口类,接口类中定义需要操作相关类的方法,注意是定义,而不是实现。然后方法映射到对象的xml文件中,xml文件中写对应的sql语句。最后通过sqlsession来解析这个实现接口类,动态的生成实现对象。。。

这样的话,就类似hibernate了,hibernate也是通过session来调用insert,select这些方法,只不过这些方法是hibernate来自己封装的,然后相关的sql语句由这些方法来封装,最后我们操作hibernate的时候,也是直接通过调用session中的insert,select等方法来生成相关的语句操作数据库。mybatis则是通过sqlsession来代理出一个实现类对象,这个实现类对象来调用自己接口类中自己声明的这些insert,select这些方法,并且这些方法和xml文件中自己写的sql语句映射,所以当调用这些方法的时候,其实本质上就是调用自己在xml文件中写的那些个sql语句。在接口类中声明的这些方法其实就是为xml文件中的sql语句起了个别名而已。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mybatis学习 的相关文章

随机推荐

  • Shiro实战以及源码解析

    一 明白什么是认证和授权 从百度百科上理解的 xff0c 感觉非常通俗易懂 你要登机 xff0c 你需要出示你的 passport 和源 ticket xff0c passport 是为了证明你张三确实是你百张三 xff0c 这就是 认证
  • 谈谈你对深拷贝和浅拷贝的理解-Java

    一 区别 1 深拷贝中既要拷贝基本数据类型也要拷贝引用类型的数据 xff0c 也就是说拷贝一份完全一样的对象 2 浅拷贝中之拷贝基本数据类型 xff0c 引用类型的数据只是拷贝了原来的引用 xff0c 并没有把引用的数据也拷贝 二 方式 1
  • 谈谈你对依赖注入(DI)和控制反转(IoC)的理解

    学习过Spring框架的人一定都会听过Spring的IoC 控制反转 DI 依赖注入 这两个概念 xff0c 对于初学Spring的人来说 xff0c 总觉得IoC DI这两个概念是模糊不清的 xff0c 是很难理解的 xff0c 今天和大
  • Guava Cache应用以及源码解析

    Guava Cache的学习 https github com google guava 一 Guava的适用性 二 两种缓存的加载 1 第一种CacheLoader方式 xff0c 返回的是LoadingCache对象 xff0c 这个对
  • java邮箱激活

    一 分析 xff1a 1 xff1a 先从前端接收到一个邮箱帐号 xff0c 由于鲁棒性的要求 xff0c 在发送邮箱之前邮箱格式必须正确 xff01 xff01 不然的话第一发送不了 xff0c 第二会发生错误 xff0c 出现异常 所以
  • 解决Count and Say

    一 题目 xff1a The count and say sequence is the sequence of integers with the first five terms as following 1 1 2 11 3 21 4
  • 大数据概述

    一 大数据定义 量大 复杂 二 四个特征以及应用场景 三 大数据技术 1 展现与交互 报表 图形 可视化工具 增强现实 2 数据计算 查询 统计 分析 预测 挖掘 图谱 BI 3 数据存储 分布式文件系统 xff0c 分布式数据库 4 数据
  • hdfs的理解以及shell命令

    一 hdfs的实现思想 xff1a 1 hdfs是利用分布式集群来存储文件的 xff0c 为客户端提供一个便捷的访问方式 xff0c 就是一个虚拟的目录结构 2 文件存储的时候是被分割成若干的block块的 3 文件的bloc块存放在若干台
  • js中的prop()和attr()方法

    以下两种方法等价 xff1a span class token operator lt span input id span class token operator 61 span span class token string 34 t
  • iOS富文本(NSAttributedString)---尽力弄全了

    把简书文章搬过来 最近浮躁 xff0c 毛线都没写 xff0c 不断有人关注点赞我 xff0c 必须总结点干货了 项目上要加载html格式的文本 xff0c 学习一下富文本相关内容 1 加载HTML标签文本 因为解析的数据里面有html标签
  • $ is not defined之SpringMVC中关于jsp中的ajax连接不到controller的问题

    刚刚写完jsp中的ajax xff0c 发现Controller路径名称以及取得的参数取得都正确 xff0c 文本域中的触发函数也正确 xff0c 可就是触发onblur方法的时候 xff0c 发现Controller并没有反应 经过调试后
  • codem2018年初赛A轮

    第六题 小美创建了一套算法 xff0c 第一行输入两个整数 xff0c a和b xff0c 第二行输入一个字符串c 假如a b的小数部分中包含第三个输入的数c xff0c 则输出c在小数部分出现的位置k xff0c 如果不包含 xff0c
  • 接口和抽象类的区别

    在interface里面的变量都是public static final 的 所以你可以这样写 xff1a public static final int i 61 10 或则 int i 61 10 xff1b xff08 可以省略掉一部
  • 动态代理

    动态代理是在不改变原来方法的代码的前提下 xff0c 用来增强原来方法的功能的 在程序的角度上来说 xff0c 就是说让别人来帮助自己完成更加强的功能 xff0c 别人就是动态代理对象 java中的动态代理由两个核心的组件来完成 xff0c
  • 数据库的读写分离和负载均衡

    mysql的数据库读写分离是为了要解决如何在复制集群的不同角色上 xff0c 去执行不同的sql语句 读尽量分布到从服务器上 xff0c 写只能在主服务器上 读的负载均衡则是解决如何在相同的从服务器上分担相同的sql语句的问题 读的负载均衡
  • NIO,BIO,AIO的区别和联系

    一个IO操作其实分成了两个步骤 xff1a 发起IO请求和实际的IO操作 IO操作可以分为3类 xff1a 同步阻塞 xff08 即早期的IO操作 xff09 同步非阻塞 xff08 NIO xff09 异步 xff08 AIO xff09
  • springmvc中文件的上传和下载

    步骤 xff1a 1 在前端的form表单中申明enctype 61 34 multipart form data 34 2 在前端的文件区域设置yourfile lt input type 61 34 file 34 name 61 34
  • git的使用

    管理员从master分支创建develop分支用于开发 git checkout b develop RD从远程仓库pull最新的develop分支 xff0c 并拉个feature分支用于需求开发 git pull origin deve
  • JAVA内存模型剖析

    java内存模型剖析 xff1a A xff1a 内存模型是什么鬼 xff1a 一 cpu和缓存一致性 计算机中cpu要和数据打交道 xff0c 而数据往往是放到主存中去的 xff0c 所以就可以理解成cpu和主存打交道 随着cpu的不断优
  • mybatis学习

    mybatis学习 xff1a 一 jdbc存在的问题 xff1a 1 频繁创建链接 xff0c 造成系统资源的浪费 2 sql语句死板 xff0c 造成sql语句硬编码的问题 3 代码太繁琐 xff0c 维护难 二 mybatis学习改进