https://blog.csdn.net/wyz0516071128/article/details/80877831 https://blog.csdn.net/chaizepeng/article/details/119384531 https://blog.csdn.net/lengyuezuixue/article/details/78961645 https://blog.csdn.net/weixin_45851945/article/details/114287877 https://blog.csdn.net/qq_41489540/article/details/113624586
MyBatis:
mybatis半自动化用于持久层和轻量级ORM框架,包装所有jdbc支持自定义操作和设置查询参数和获取结果集sql、存储过程和高级映射。(作者只是略知这句话,几乎能理解它的意思。
持久层这是什么意思?你可以删除层字,持久,也就是说,长期保持的意思。他的目标是系统中数据存在的时限,而不是其他数据。有一个基本问题你应该知道,内存中的数据不持久,如果计算机崩溃或其他原因关闭,数据会丢失,但磁盘上的数据是持久的,因此,用于持久层,框架是用来将内存中的数据写入磁盘,具体来说,是写入数据库。因此,综上所述,框架用于持久层,即该框架用于数据库中的数据操作。
轻量级框架:可以简单单地理解为,当所使用的框架开发程序开始时,它占用的资源较少,对业务代码的侵入性较弱,配置方便,使用和部署简单,独立部署可以使用,而无需依赖其他框架。这是一个轻量级框架,而是一个重量级框架。如今,随着互联网的快速发展和产品迭代的快速更新,轻量级框架更容易被接受,这也是spring胜出,EJB退出的原因。
ORM,Object Relational Mapping, 直接翻译是对象关系的映射,我也没有更好的解释,看一下百科上是这样介绍的”用于实现面向对象编程语言里不同类型系统的数据之间的转换。就效果而言,它实际上创建了一个可用于编程语言的虚拟对象数据库。面向对象是基于软件工程的基本原理(如耦合、聚合和包装),而关系数据库是从数学理论发展起来的,理论有显著的差异。对象关系映射技术应运而生,以解决这一不匹配现象。这里可以简单地理解,java数据类和数据库之间的类型系统是不同的,在使用中java在处理数据库时,需要转换相应的类型mybatis你可以这样做,你可以java数据库中的类型逐一映射到字段类型上,因此可视为一种ORM框架。那为什么是半自动呢?ORM框架呢?使用mybatis,需要手动配置pojo、sql用户可以定制与映射的关系sql,这些sql对数据库的处理,但这些sql需要接受一些查询java类型参数或返回结果集包装java这些都是需要配置的,所以mybatis半自动ORM框架。说到底还是因为需要写还是因为需要写sql,将数据映射到数据库中java而不是直接基于类别java类获取相应数据库中的数据。这里多说说,hibernate是全自动的ORM框架,因为只需要提供pojo与映射的关系可以直接基于后期pojo获取数据。
这里可以类比数据表之间的映射关系,即一对一、一对多、多对多。
MySQL:
MySQL是一个关系型数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL是开源的。
MySql支持大型数据库,可处理数千个记录的大型数据库。
MySql支持标准的SQL数据语言形式。
MySql它可以在多个系统支持多种语言。
MySql对PHP有很好的支持。
MySql支持大型数据库和记录5000万条的数据仓库,32位系统表文件最多可支持4个GB,64位系统支持的最大表文件是8TB
MySql可定制使用GPL协议。
SQL:
Structure Query Language(结构化查询语言)简称SQL,它是美国国家标准局(ANSI)美国标准被确定为关系数据库语言,然后被国际标准组织(ISO)采用与数据库语言国际标准。数据库管理系统可以通过SQL管理数据库;定义和操作数据,维护数据的完整性和安全性。 上述解释转自
NoSQL:
NoSQL是海量数据增删改查, 基本不支持SQL语法,NoSQL(NoSQL = Not Only SQL ),不仅仅是意SQL在互联网的早期阶段,我们的大部分数据都存储在关系数据库中。其特点是通过外键连接标准化的数据结构(预定义模式)、强一致性、表和表,使我们对数据的管理更加清晰和严格,但随着互联网数据的发展,我们需要更好的灵活性和更快的数据库速度。这就是NoSql能做到的。无需提前定义模式,无需主外关联,支持分片,支持复本。 NoSQL横向扩展非常方便。只需添加节点和机器。.比普通数据库方便多了。
NoSQL 可扩展性很强。
四者区别与联系:
他们不是一件事,而是有联系的。 SQL数据库管理系统是一种结构化的查询语言SQL管理数据库;定义和操作数据,维护数据的完整性和安全性。 NoSQL是海量数据增删改查, 基本不支持SQL语法,NoSQL(NoSQL = Not Only SQL ),不仅仅是意SQL” MySQL体积小,速度快,成本低,结构稳定,查询方便,能保证数据的一致性,但缺乏灵活性。 NoSQL高性能、高扩展、高可用性,不限于固定结构,减少时间和空间成本,但难以保证数据一致性。 如果规模和性能比24小时的数据一致性更重要,那么NoSQL是理想的选择 (NoSQL依赖于BASE模型-基本可用,软状态,最终一致性)。 但如果要保证始终一致,尤其是机密信息和财务信息,那么MySQL很可能是最佳选择(MySQL依赖于ACID模型-原子性、一致性、独立性和耐久性)。 mybatis半自动化用于持久层和轻量级ORM支持自定义的框架sql,一般来说,当我们在公司使用它时,用它Java、并且需要SQL句子需要mybatis。
NoSQL和MySQL的区别
结合:《javaEE 互联网轻量级框架整合开发》 https://blog.csdn.net/Gjc_csdn/article/details/80449299 https://blog.csdn.net/allen_a/article/details/50611966
即非关系数据库和关系数据库。
:事务处理-保持数据的一致性;数据更新的成本很小(基本上只有一个相同的字段),可以进行Join等复杂查询
:首先,它是基于内存的,即数据放在内存中,而不是像数据库一样把数据放在磁盘上,内存的读取速度是磁盘读取速度的几十到几百倍,所以NoSQL工具的读取速度远快于数据库,满足了高响应的要求。即使NoSQL在磁盘中放置数据也是半结构化数据 读取分析的复杂性远比格式复杂MySQL因为MySQL存储复杂规则的数据,如结构化和多范式,恢复内存结构的速度较慢。NoSQL它在很大程度上满足了高并发性、快速读取/和响应的要求,因此也是如此Java互联网系统的利器。 简单的扩展:典型的例子是Cassandra,因为它的结构类似于经典P2P,因此,这个集群可以通过轻松添加新节点来扩展; 低成本:这是大多数分布式数据库的共同特征,因为它主要是开源软件,没有昂贵的License成本;
:大多数NoSQL数据库不支持事务,也不像 SQL Server和Oracle它可以提供各种附加功能,如BI和报表等; 不提供对SQL的支持
如果规模和性能比24小时的数据一致性更重要,那么NoSQL是理想的选择 (NoSQL依赖于BASE模型-基本可用,软状态,最终一致性)。 但如果要保证始终一致,尤其是机密信息和财务信息,那么MySQL很可能是最佳选择(MySQL依赖于ACID模型-原子性、一致性、独立性和耐久性)。
如果关系数据库在你的应用场景中工作得很好,而且你非常擅长使用和维护关系数据库,那么我认为你根本没有必要迁移到NoSQL除非你是个喜欢折腾的人。如果你在金融、电信等以数据为王的关键领域,目前使用它Oracle提供高可靠性的数据库,除非遇到特别大的瓶颈,否则不要贸然尝试NoSQL。
然而,在WEB2.在0网站中,大多数关系数据库都有瓶颈。在磁盘IO、开发人员在数据库的可扩展上花费了相当多的精力进行优化,比如做分表分库(database sharding)、然而,这些工作所需的技术能力越来越高,也越来越具有挑战性。如果你正在经历这些场合,我认为你应该试试NoSQL了。
MySQL体积小,速度快,成本低,结构稳定,查询方便,能保证数据的一致性,但缺乏灵活性。 NoSQL高性能、高扩展、高可用,不用局限于固定的结构,减少了时间和空间上的开销,却又很难保证数据致性。