MyBatis—框架概述

Posted 之墨_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis—框架概述相关的知识,希望对你有一定的参考价值。

三层架构

MVC:

web开发中,使用mvc架构模式
m: 数据,v: 视图,c: 控制器
m数据:来自数据库mysql来自文件, 来自网络 v视图:现在使用jsp, html, CSS,
js。 显示请求的处理结果, 把m中数据显示出来 c控制器:接收请求,调用service对象,
显示请求的处理结果。当前使用servlet作为控制器

mvc作用:
1)实现解耦合
2)让mvc各负其职
3)使的系统扩展更好。更容易维护

作用:

  1. 界面层(视图层) :接收用户的请求,调用service, 显示请求的处理结果的。包含了jsp, html, servlet等对
    象。对应的包controller
  2. 业务逻辑层:处理业务逻辑,使用算法处理数据的。把数据返回给界面层。 对应的是service包, 和包中的很多
    的XXXService类。例如: StudentService ,OrderService, ShopService
  3. 持久层(数据库访问层) :访问数据库,或者读取文件,访问网络。获取数据。对应的包是dao。 da0包中很多
    的StudentDao, OrderDao, ShopDao等等

框架解决的问题

框架解决的最重要的一个问题是技术整合,在 J2EE 的 框架中,有着各种各样的技术,不同的应用,系统使用不同的技术解决问题。需要从J2EE 中选择不同的技术,而技术自身的复杂性,有导致更大的风险。企业在开发软件项目时,主要目的是解决业务问题
即要求企业负责技术本身,又要求解 决业务问题。这是大多数企业不能完成的。框架把相关的技术融合在一起,企业开发可以集中在业务领域方面
另一个方面可以提供开发的效率

JDBC操作数据库

public void findStudent() {
 Connection conn = null;
 Statement stmt = null;
 ResultSet rs = null;
 try {
 //注册 mysql 驱动
 Class.forName("com.mysql.jdbc.Driver");
 //连接数据的基本信息 url ,username,password
 String url = "jdbc:mysql://localhost:3306/springdb";
 String username = "root";
 String password = "123456";
 //创建连接对象
 conn = DriverManager.getConnection(url, username, password);
 //保存查询结果
 List<Student> stuList = new ArrayList<>();
 //创建 Statement, 用来执行 sql 语句
 stmt = conn.createStatement();
 //执行查询,创建记录集,
 rs = stmt.executeQuery("select * from student");
 while (rs.next()) {
 Student stu = new Student();
 stu.setId(rs.getInt("id"));
 stu.setName(rs.getString("name"));
 stu.setAge(rs.getInt("age"));
 //从数据库取出数据转为 Student 对象,封装到 List 集合
 stuList.add(stu);
 }} catch (Exception e) {
 e.printStackTrace();
 } finally {
 try {
 //关闭资源
 if (rs != null) ;
 {
 rs.close();
 }
 if (stmt != null) {
 stmt.close();
 }
 if (conn != null) {
 conn.close();
 }
 } catch (Exception e) {
 e.printStackTrace();
 }
 }
}

JDBC的缺点

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

MyBatis 框架

MyBatis 本是 apache 的一个开源项目 iBatis, 2010 年这个项目由 apache software
foundation 迁移到了 google code,并且改名为 MyBatis 。2013 年 11 月迁移到 Github。
iBATIS 一词来源于“internet”和“abatis”的组合,是一个基于 Java 的持久层框架。 iBATIS
提供的持久层框架包括 SQL Maps 和 Data Access Objects(DAOs)

MyBatis 解决的主要问题

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

  1. 注册数据库的驱动,例如 Class.forName(“com.mysql.jdbc.Driver”))
  2. 创建 JDBC 中必须使用的 Connection , Statement, ResultSet 对象
  3. 从 xml 中获取 sql,并执行 sql 语句,把 ResultSet 结果转换 java 对象
List<Student> list = new ArrayLsit<>();
ResultSet rs = state.executeQuery(“select * from student”);
while(rs.next){
 Student student = new Student();
 student.setName(rs.getString(“name”));
 student.setAge(rs.getInt(“age”));
 list.add(student);
}
  1. 关闭资源
ResultSet.close() , Statement.close() , Conenection.close()

以上是关于MyBatis—框架概述的主要内容,如果未能解决你的问题,请参考以下文章

跟着老杜学MyBatis+第1天+MyBatis概述

MyBatis框架概述

Mybatis -- 动态Sql概述动态Sql之<if>(包含<where>)动态Sql之<foreach>sql片段抽取

MyBatis概述

MyBatis框架—动态 SQL配置文件事务

MyBatis—框架概述