当前位置: 首页 > news >正文

网站统计分析手机百度高级搜索

网站统计分析,手机百度高级搜索,手机做网站的教程,宣传片接单平台点击上方“Java知音”,选择“置顶公众号”技术文章第一时间送达!作者:Alan_beijingcnblogs.com/wangjiming/p/10384975.html在JAVA发展过程中,涌现出一系列的ORM框架,JPA,Hibernate,Mybatis和Spring jdbc,本…

点击上方“Java知音”,选择“置顶公众号”

技术文章第一时间送达!

作者:Alan_beijing

cnblogs.com/wangjiming/p/10384975.html

在JAVA发展过程中,涌现出一系列的ORM框架,JPA,Hibernate,Mybatis和Spring jdbc,本系列,将来研究Mybatis。

70eb34748b42a6b0d044594a932aee6b.png

通过研究mybatis源码,可将mybatis的大致架构总结为下图:

  • 根据Mybatis源码,将其抽象为三层:基础支持层,核心处理层和接口层

  • 基础支持层包括:数据源、事务管理、日志、类型转换、缓存、Bind、解析器等

  • 核心处理层包括:配置解析、配置映射、SQL解析、SQL执行、结果集映射、插件等

  • 接口层主要提供JAVA API

35482f04b33364b413ba87189576ea4a.png

在本篇文章中,将基于该框架图,解决如下几个问题:

Q1:结合代码解析mybatis的CRUD原理是怎样的?
Q2:为什么半自动化的Mybatis比自动化的Hibernate受欢迎?
Q3:Mybatis为什么能实现松耦合?

一、mybatis的CRUD原理

为了解决该问题,我们先来看看如下代码:

该代码实现的功能是:根据user_id查询用户信息。 从代码中,我们可以看出,大致分为:

  • 读取mybatis的全局配置文件mybatis-config.xml内容

  • 创建SqlSessionFactory会话工厂

  • 根据SqlSessionFactory创建SQL会话SqlSession

  • 执行查询操作

public static void main(String[] args) throws IOException {

那么,我们再来看看,Mybatis-config.xml内容:

从内容中,可以看出下面有三个子节点,,节点。

ae65ef839f4b3655c7cc817791371eb8.png

那么,这三个节点到底是表示什么呢?

1、properties节点表示属性节点,可用于动态从外部获取资源,将获取的资源供上下文使用,我们来看看jdbc.properties内容

#mysql

一看便知,这是访问数据库相关参数,那么哪个地方引用这些参数呢?子节点。

2、environment节点,环境节点配置节点,如用于配置数据库测试环境,开发环境等,很容易看出dataSource的相关子节点的占位符就引用了

properties节点从jdbc.properties获取的内容。

3、mapper节点,即映射节点,用来链接映射文件,我们来看看该映射文件内容:

<?xml  version="1.0" encoding="UTF-8"?>

显而易见,这就SQL的增删改查。

通过如上分析,我们在文章开始提出的三个问题,现在基本可以解决了。

Q3:Mybatis为什么能实现松耦合?

从如上分析,我们知道,使用mybatis作为ORM框架开发时,我们的SQL语句都写在xml配置文件中(如上文的userInfo-config.xml),从而解决了传统硬编码的强耦合问题,巧妙地实现了从“硬编码”到“软编码”的过程。

除了松耦合的好处之外,有经验的开发人员应该清楚,硬编码存在一个重大问题,即当改变SQL代码后,需要重新编译、打包、部署等后,程序方可运行起来,而通过可配置化的xml方式实现的SQL语句,却不需要。

Q4:为什么半自动化的Mybatis比自动化的Hibernate受欢迎?

从功能上讲,Hibernate是非常强大的,但其有存在一些比较难以解决的问题:

  • 学习成本大:对于新手,学习Hibernate的时间成本比Mybatis大很多,Mybatis很快就上手了

  • 笨重:Hibernate强大的另一面,折射出其笨重的一面

  • 封装SQL:Hibernate封装SQL,只向用户提供API接口,是造成其不灵活的根本因素

8f67e4b5fa5f66e533255941263f82e6.png

然而,mybatis却将SQL独立出来,让用户自定义。

bc7350c00a638182876a3cb87aa94323.png

通过如上对比,之所以说Hibernate自动化,因为SQL生成,解析,执行等都是由Hibernate自动生成的;

之所以说Mybatis半自动化,是因为SQL语句需要用户自定义,SQL的解析,执行等工作由Mybatis执行。

可以这么说,传统的jdbc是手工的,Hibernate是自动化的,而Mybati是基于jdbc和Hibernate的半自动化ORM框架。

ae659f72e3f1439b3d6fa1e83c3f5119.png

二、完整Mybatis CRUD

创建Web Application项目

打开Intellij IDEA=>Create New Project=>Java Enterprise=>勾选 Web Application=>Next=>

给项目命名MybatisCRUD=>Finish

212481a2e5f8905d2620fd46daa03021.png

导入jar包

这里主要导入两个jar包:MySQL驱动jar包和Mybatis jar包

Project Structure(Ctrl+Alt+Shift+S)=>Modules=>MybatisCRUD=>Dependencies=>选择 JARS or directories…

成功导入后的结构如下:

5157815378087a9e47b672e2cbd2e909.png

创建测试数据

#创建数据库

创建UserInfo实体

package demo.mybatis.entity;

创建三个资源文件

1.jdbc.property
#mysql
2.mybatis-config.xml
<?xml  version="1.0" encoding="UTF-8" ?>
3.userInfo.config.xml
<?xml  version="1.0" encoding="UTF-8"?>

CRUD

1.查询
package demo.mybatis.Test;
2.添加
package demo.mybatis.Test;
3.删除
package demo.mybatis.Test;

代码目录结构

af7967d37b18b376898db8131c10bfa4.png


加入Java知音技术交流,戳这里:Springboot技术交流群

更多Java技术文章,尽在【Java知音】网站。

网址:www.javazhiyin.com  ,搜索Java知音可达!

看完本文有收获?请转发分享给更多人

77eed3652f015156d5b3cc255b3a640c.png

http://www.lbrq.cn/news/2753497.html

相关文章:

  • 河南网站建设推广公司网站推广优化公司
  • 以美食为主的网站栏目怎么做双11各大电商平台销售数据
  • 网络营销概论安卓优化大师手机版下载
  • 成都网站营销推广公司网站推广软件排名
  • wordpress文章勒出sem与seo
  • 网页模板下载哪个网站好关键词全网搜索工具
  • 卖手机网站开发的必要性长沙网站推广排名优化
  • 南昌网站开发建设哪些店铺适合交换友情链接
  • 靖江有哪些做网站的专门看网站的浏览器
  • 中国可以做交互的网站企业文化的重要性和意义
  • 什么网站可以做相册ip域名查询地址
  • 浦东做网站长沙seo服务哪个公司好
  • 网页特效网站品牌推广方案
  • 政府制作网站建议免费注册推广网站
  • 国内视差网站百度广告投放平台官网
  • 网站开发好要租服务器吗网站推广方法
  • 中介做哪些网站电商网站seo怎么做
  • 梧州市地图疫情最新消息站长seo
  • 上海网站建设哪里好小红书搜索优化
  • 企业品牌网站建设做网络推广一般是什么专业
  • 网站制作高端网站建设免费注册个人网站
  • 英文网站接单做翻译企业宣传推广怎么做
  • wordpress菜单相对地址性能优化大师
  • 如何做直播网站哈尔滨seo优化公司
  • 网站后台管理系统html南京seo排名公司
  • 广东佛山如何制作网站公司北京seo收费
  • 门户网站解决方案网址如何被快速收录
  • 乐山市建设局网站百度视频免费高清影视
  • 长沙域名注册公司seo优化论坛
  • 做网站都需要用到什么360竞价推广怎么做
  • Topaz Gigapixel AI:图片无损放大,细节增强的利器
  • Python使用数据类dataclasses管理数据对象
  • Android中使用Compose实现各种样式Dialog
  • 三、memblock 内存分配器
  • 自适应UI设计解读 | Fathom 企业人工智能平台
  • ​​金仓数据库KingbaseES V9R1C10安装教程 - Windows版详细指南​