ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Mybatis

2021-04-08 18:36:41  阅读:137  来源: 互联网

标签:语句 框架 技术 分层 应用 sql Mybatis


一、什么是框架?

  框架顾名思义,他是一个架子,类似于人初期搭建的房基,是个半成品,需要我们后期为他添加些东西装饰。

  在系统开发中,框架是整个或者部分系统的可重用涉及,表现为一组抽象构架及构建实例间交互的方法;另一种定义认为,框架是可应用开发者定制的股价。前者是从应用方面而后是从目的方面给出的意义。

  框架就是某种应用的半成品,是一组组件,供你选用完成自己的系统。简单来说就是使用别人搭建好的舞台,你来做表演。框架一般是成熟的,不断升级的软件。

  因此应该将应用自身的设计和具体的实现技术解耦。这样,软件企业的研发将集中在应用的设计上,而不是具体的技术实现,技术实现是应用的底层支撑,它不应该直接对应用产生影响。

二、框架解决什么问题?

  技术整合的问题,在将J2EE的框架中,有各种各样的技术,不同的软件企业需要从J2EE中选择不同的的技术,这样就使得企业最终依赖于这些技术,技术自身的复杂性和技术的风险性将会直接对应用造成冲击。而且应用是软件企业的核心,是竞争力的关键所在。

  因此应该将应用自身的设计和具体的实现技术解耦。这样,软件企业的研发将集中在应用的设计上,而不是具体的技术实现,技术实现是应用的底层支撑,它不应该直接对应用产生影响。

  在现在个个软件开发公司所用的框架基本不同,这样也就促进了技术的进步。在开发中,框架一般在底层应用平台和高层业务逻辑之间的中间层

三、为什么软件开发要分层?

  框架重要是实现了部分功能,并且能够很好的将底层应用平台和高级业务逻辑进行了缓和。

  为什么软件开发要分层,因为软件工程规定程序要“高内聚,低耦合”,分层的思想是将问题划分开来,单个解决,这样易于控制、易于延展、易于分配资源。

  在常见的MVC软件中就是应用分层的思想。

 

 

 通过分层更好的实现各个部分的职责,将每一层再细化出不同框架,分层解决问题。

四、分层开发常用框架

常见的 JavaEE 开发框架:

MyBatis

1、解决数据的持久化问题的框架

  目前使用 Spring Data 来实现数据持久化也是一种趋势。在从前使用比较多的是一个封装程度更高的框架就是 Hibernate,现在不流行了,具体原因可以百度。

2、解决 WEB 层问题的 MVC 框架

spring MVC

 

 

 3、解决技术整合问题的框架

spring框架

 

 

 五、MyBatis 框架详解

概念:

  mybatis是一个优秀的的基于Java的持久层框架,它内部封装了JDBC,开发者只需要关注sql语句本身,而不需要过多关注数据库驱动、创建链接、创建statement等复杂步骤。

  mybatis 是通过xml或者注解的方式将要执行的各种statement配置开来,并通过Java对象和statement中SQL的动态参数进行映射生成最终执行的 sql 语句,最后再通过mybatis框架执行SQL语句并将结果映射为 java 对象并返回。

  采用ORM思想解决了实体和数据库映射的问题,对JDBC进行封装,屏蔽了jdbc api的底层访问细节,我们不需要与jdbc api交流,就可以实现完成数据库持久化操作。

引入:

  为什么要使用mybatis框架?

  在以前,使用jdbc时,在开发人员使用中发现JDBC有以下问题:

  • 数据库连接创建、释放会造成系统资源浪费进而影响系统性能,如果使用数据库连接池可解决此类问题。
  • sql 语句在代码中硬解码,造成不宜维护,在实际开发中SQL语句变化很大,更改sql语句就要更改Java代码。
  • 使用 preparedStatement 向占有位符号传参数存在硬编码,因为 sql 语句的 where 条件不一定,可能多也可能少,修改 sql 还要修改代码,系统不易维护。
  • 对结果解析存在硬解码(查询列名),sql 变化导致解析代码发生变化,系统不宜维护,如果将数据库查询记录进行封装pojo对象,这样解析更方便。



 

标签:语句,框架,技术,分层,应用,sql,Mybatis
来源: https://www.cnblogs.com/PackageArray/p/14633703.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有