七十六、MyBatis框架入门

举报
托马斯-酷涛 发表于 2022/05/26 01:31:50 2022/05/26
【摘要】 MyBatis 框架: MyBatis 是一个优秀的基于 java 的持久层框架,内部封装了 jdbc,开发者只需要关注 sql 语句本身,而不需要处理加载驱动、创建连接、创建 statement、关闭连接。 目录 框架定义 框架解决的问题 使用JDBC的缺陷 使用MyBatis的优点 MyBatis功能架构 M...

MyBatis 框架: MyBatis 是一个优秀的基于 java 的持久层框架,内部封装了 jdbc,开发者只需要关注 sql 语句本身,而不需要处理加载驱动、创建连接、创建 statement、关闭连接。

目录

框架定义

框架解决的问题

使用JDBC的缺陷

使用MyBatis的优点

MyBatis功能架构

MyBatis框架流程


框架定义

框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种认为,框架是可被应用开发者定制的应用骨架、模板。

简单的说,框架其实是半成品软件,就是一组组件,供你使用完成你自己的系统。从另一个角度来说框架一个舞台,你在舞台上做表演。在框架基础上加入你要完成的功能。

框架是安全的,可复用的,不断升级的软件。

框架解决的问题

框架要解决的最重要的一个问题是技术整合,在 J2EE 的框架中,有着各种各样的技术,不同的应用,系统使用不同的技术解决问题。需要从 J2EE 中选择不同的技术,而技术自身的复杂性,有导致更大的风险。

企业在开发软件项目时,主要目的是解决业务问题。 即要求企业负责技术本身,又要求解决业务问题。这是大多数企业不能完成的。框架把相关的技术融合在一起,企业开发可以集中在业务领域方面。 另一个方面可以提供开发的效率。

使用JDBC的缺陷

  1. 代码比较多,开发效率低
  2. 需要关注 Connection ,Statement, ResultSet 对象创建和销毁
  3. 对 ResultSet 查询的结果,需要自己封装为 List
  4. 重复的代码比较多些
  5. 业务代码和数据库的操作混在一起

使用MyBatis的优点

  1. 减轻使用 JDBC 的复杂性
  2. 不用编写重复的创建 Connetion , Statement 
  3. 不用编写关闭资源代码
  4. 直接使用 java 对象,表示结果数据
  5. 让开发者专注 SQL 的处理。 其他分心 的工作由 MyBatis 代劳

MyBatis功能架构

我们把Mybatis的功能架构分为三层:

1、API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。

2、数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。

3、基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。

MyBatis框架流程

MyBatis(前身是iBatis)是一个支持普通SQL查询、存储过程以及高级映射的持久层框架。

1、注册数据库的驱动

Class.forName(“com.mysql.jdbc.Driver”)
 

2、创建 JDBC 中必须使用的 Connection , Statement, ResultSet 对象

3、从 xml 中获取 sql,并执行 sql 语句,把 ResultSet 结果转换 java 对象


  
  1. List<Student> list = new ArrayLsit<>();
  2. ResultSet rs = state.executeQuery(“select * from student”);
  3. while(rs.next){
  4. Student student = new Student();
  5. student.setName(rs.getString(“name”));
  6. student.setAge(rs.getInt(“age”));
  7. list.add(student);
  8. }

4、关闭资源

ResultSet.close() , Statement.close() , Conenection.close()


 

文章来源: tuomasi.blog.csdn.net,作者:托马斯-酷涛,版权归原作者所有,如需转载,请联系作者。

原文链接:tuomasi.blog.csdn.net/article/details/123290123

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。