当前位置: 移动技术网 > IT编程>开发语言>Java > 荐 MyBatis入门

荐 MyBatis入门

2020年07月09日  | 移动技术网IT编程  | 我要评论
文章目录一、框架概述二、三层架构和SSM框架的对应关系三、持久层技术解决方案四、MyBatis概述一、框架概述什么是框架它是我们软件开发中的一套解决方案,不同的框架解决的是不同的问题使用框架的好处框架封装了很多的细节,使开发者可以使用极简的方式实现功能,提高开发效率二、三层架构和SSM框架的对应关系三层架构:表现层:用来展示数据业务层:用来处理业务需求持久层:用来与数据交互三、持久层技术解决方案JDBC技术:ConnectionPreparedStatementResultS

一、框架概述

什么是框架

它是我们软件开发中的一套解决方案,不同的框架解决的是不同的问题

使用框架的好处

框架封装了很多的细节,使开发者可以使用极简的方式实现功能,提高开发效率

二、三层架构和SSM框架的对应关系

三层架构:
表现层:用来展示数据
业务层:用来处理业务需求
持久层:用来与数据交互
在这里插入图片描述

三、持久层技术解决方案

JDBC技术:
Connection
PreparedStatement
ResultSet
Spring的JdbcTemplate:Spring中对JDBC的简单封装
Apache的DBUtils:它跟Spring的JdbcTemplate很像,也是对JDBC的简单封装
以上这些都不是框架,JDBC是规范,Spring的JdbcTemplate和Apache的DBUtils都只是工具类

JDBC程序的缺点

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

四、MyBatis概述

MyBatis的概述
MyBatis是一个持久层框架,使用java编写的
它封装了JDBC操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动、创建连接等繁杂过程
它使用了ORM思想实现了结果集的封装

ORM思想的概述
ORM的全称:Object Relational Mapping 对象关系映射
简单来说:就是把数据库表和实体类的属性对应起来,让我们通过操作实体类来操作数据库表
我们后期可以实现把以下数据库表单与实体类对应起来:

user User
id userId
user_name userName
但是现在我们先做到:实体类中的属性和数据库表的字段名保持一致

五、mybatis的入门

mybatis的环境搭建

    第一步:创建maven工程并导入坐标
	第二步:创建实体类和dao的接口
	第三步:创建Mybatis的主配置文件
			SqlMapConifg.xml
	第四步:创建映射配置文件
			IUserDao.xml
环境搭建的注意事项:
	第一个:创建IUserDao.xml 和 IUserDao.java时名称是为了和我们之前的知识保持一致。
		在Mybatis中它把持久层的操作接口名称和映射文件也叫做:Mapper
		所以:IUserDao 和 IUserMapper是一样的
	第二个:在idea中创建目录的时候,它和包是不一样的
		包在创建时:com.itheima.dao它是三级结构
		目录在创建时:com.itheima.dao是一级目录
	第三个:mybatis的映射配置文件位置必须和dao接口的包结构相同
	第四个:映射配置文件的mapper标签namespace属性的取值必须是dao接口的全限定类名
	第五个:映射配置文件的操作配置(select),id属性的取值必须是dao接口的方法名

当我们遵从了第三,四,五点之后,我们在开发中就无须再写dao的实现类。

mybatis的入门案例

    第一步:读取配置文件
	第二步:创建SqlSessionFactory工厂
	第三步:创建SqlSession
	第四步:创建Dao接口的代理对象
	第五步:执行dao中的方法
	第六步:释放资源

在这里插入图片描述

注意事项:

		不要忘记在映射配置中告知mybatis要封装到哪个实体类中
		配置的方式:指定实体类的全限定类名

mybatis基于注解的入门案例:
把IUserDao.xml移除,在dao接口的方法上使用@Select注解,并且指定SQL语句
同时需要在SqlMapConfig.xml中的mapper配置时,使用class属性指定dao接口的全限定类名。
明确:
我们在实际开发中,都是越简便越好,所以都是采用不写dao实现类的方式。
不管使用XML还是注解配置。
但是Mybatis它是支持写dao实现类的。

六、自定义Mybatis的分析:

mybatis在使用代理dao的方式实现增删改查时做什么事呢?
只有两件事:
第一:创建代理对象
第二:在代理对象中调用selectList

自定义mybatis能通过入门案例看到类
class Resources
class SqlSessionFactoryBuilder
interface SqlSessionFactory
interface SqlSession

在这里插入图片描述

在这里插入图片描述

本文地址:https://blog.csdn.net/Clara9191/article/details/107088618

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网