持久层框架之-------mybatis学习(—)

mybatis框架概述

1、mybatis入门

mybatis的概述
mybatis的环境搭建
mybatis入门案例
自定义mybatis框架(主要的目的是为了让你们了解mybatis中执行细节)
复制代码

2、mybatis基本使用

mybatis的单表crud操做
mybatis的参数和返回值
mybatis的dao编写
mybatis配置的细节
	几个标签的使用
复制代码

一、什么是框架?java

它是咱们软件开发中的一套解决方案,不一样的框架解决的是不一样的问题。
使用框架的好处:
	框架封装了不少的细节,使开发者可使用极简的方式实现功能。大大提升开发效率。
复制代码

二、三层架构git

表现层:
	是用于展现数据的
业务层:
	是处理业务需求
持久层:
	是和数据库交互的
复制代码

三、持久层技术解决方案

JDBC技术:
	Connection
	PreparedStatement
	ResultSet
Spring的JdbcTemplate:
	Spring中对jdbc的简单封装
Apache的DBUtils:
	它和Spring的JdbcTemplate很像,也是对Jdbc的简单封装

以上这些都不是框架
	JDBC是规范
	Spring的JdbcTemplate和Apache的DBUtils都只是工具类
复制代码

四、mybatis的简介

mybatis是一个持久层框架,用java编写的。
它封装了jdbc操做的不少细节,使开发者只须要关注sql语句自己,而无需关注注册驱动,建立链接等繁杂过程
它使用了ORM思想实现告终果集的封装。

ORM:
	Object Relational Mappging 对象关系映射
	简单的说:
		就是把数据库表和实体类及实体类的属性对应起来
		让咱们能够操做实体类就实现操做数据库表。

		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的建立使用了三种设计模式

一、建造者模式
二、工厂模式
三、代理模式
复制代码

mybatis实现增删改查的底层原理

实际上底层经过代理对象(sqlSession)调用selectList方法实现的,对JDBC底层一些细节作了封装。github

一张图让你清楚mybatis的底层执行流程

分析代理dao的执行过程(开发中常用代理对象执行方法,不须要写dao的实现类)

分析编写dao实现类mybatis的执行过程(比较麻烦,了解便可)

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
复制代码

写在最后

推荐本身的Github地址: github.com/Lmobjectsql

欢迎点赞与留言哦!您的点赞是对做者作大的鼓励与支持。谢谢!!!
复制代码
相关文章
相关标签/搜索