Mybatis的学习笔记(一)

第一章 框架概述

1.1 软件开发常用结构

三层架构包含的三层:

界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)

三层的职责

1、界面层(表示层,视图层):主要功能是接受用户的数据,显示请求的处理结果。使用web页面和用户交互,手机app也是表示层,用户在app中操作,业务逻辑在服务器端处理。

2、业务逻辑层:接受表示传递过来的数据,检查数据,计算业务逻辑,调用数据访问层获取数据。

3、数据访问层(也叫持久层):与数据打交道。主要实现对书籍的增、删、改、查。将数据在数据库中的数据提交给业务层,同时将业务层处理的数据保存到数据库中。

三层对应的包:

​ 界面层:controller包(servlet)

​ 业务逻辑层:service包(xxxxservice类)

​ 数据访问层:dao包(xxxDao类)

三层对应的处理框架:

扫描二维码关注公众号,回复: 13141317 查看本文章

​ 界面层:----servlet----->SpringMVC(框架)

​ 业务逻辑层:service类---->spring(框架)

​ 数据访问层:---->dao类----->mybatis(框架)

三层的处理请求交互:

​ 用户---->界面层------->业务逻辑层—>数据访问层------>DB数据库

1.2 框架是什么

框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。简而言之,框架其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。
简单说就是使用别人搭好的舞台,你来做表演,别人也可以来使用,使用舞台现有的道具(框架的功能)来达到不同的效果,舞台是可以重复使用的。而且,框架一般是成熟的,不断升级的软件。

1.3 JDBC编程

1.3.1 JDBC程序的回顾

publicstaticvoidmain(String[] args) {
    
    
	Connection connection = null;
	PreparedStatement preparedStatement = null;
	ResultSet resultSet = null;
	try{
    
    
		//加载数据库驱动
		Class.forName("com.mysql.jdbc.Driver");
		//通过驱动管理类获取数据库链接
		connection = DriverManager
		.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8","root", "root");
		//定义sql语句?表示占位符
		String sql = "select *from user where username =?";
		//获取预处理statement
		preparedStatement = connection.prepareStatement(sql);
		preparedStatement.setString(1, "王五");
		//向数据库发出sql执行查询,查询出结果集
		resultSet = preparedStatement.executeQuery();
		//遍历查询结果集
		while(resultSet.next()){
    
    
			System.out.println(resultSet.getString("id")+"
			"+resultSet.getString("username"));
			}
		}catch(Exception e){
    
    
			e.printStackTrace();
		}
		//释放资源 代码省略
		......
	//上边使用jdbc的原始方法(未经封装)实现了查询数据库表记录的操作。
}

1.3.2 JDBC的问题分析

1、数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,
   如果使用数据库链接池可解决此问题。
2、Sql语句在代码中硬编码,造成代码不易维护,
   实际应用sql变化的可能较大,sql变动需要改变java代码。
3、使用preparedStatement向占有位符号传参数存在硬编码,
   因为sql语句的where条件不一定,可能多也可能少,修改sql还要修改代码,系统不易维护。
4、对结果集解析存在硬编码(查询列名),
   sql变化导致解析代码变化,系统不易维护,如果能将数据库记录封装成pojo对象解析比较方便。

1.4 MyBatis框架概述

​ Mybatis本是apche的一个开源项目iBatis,2010年这个项目由apache software foundation 迁移到了goole code,并改名为Mybatis。2013年11月迁移到Github。

​ iBATIS一词源于“internet”和“abatis”的组合,是一个基于java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)

​ 当前,最新版本是Mybatis3.5.1,其发布时间是2019年4月8日。

总结: mybatis是一个sql映射框架,提供数据库的操作能力,增强的JDBC,使用Mybatis让开发人员集中精神写sql语句就行了,不必关心Connection、Statement、ResultSet的创建,销毁。

猜你喜欢

转载自blog.csdn.net/qq_45316731/article/details/115443776