初始MyBatis
1.框架的概念
- 框架(Framework)是一个可重用的公式结构的半成品
2.主流框架的介绍
-
Struts 2框架
Struts 2 以WebWork优秀的设计思想为核心,吸收力Struts框架的部分优点,提供了一个更加整洁的基于MVC设计模式实现的Web应用程序框架
-
Hibernate框架
Hibernate是一个优秀的持久化框架,负责简化将对象数据保存到数据库中,或从数据库中读取数据并封装到对象的工作
-
Spring框架
Spring也是一个开源框架,它是一个轻量级的框架,渗透了JavaEE技术的方方面面
-
SpringMVC框架
SpringMVC是Spring框架的构建Web应用程序的全功能MVC模块,属于SpringFramework的后续产品,已经融合在Spring Web Flow里面,是结构最清晰的MVC Model2的实现
-
MyBatis框架
MyBatis是一个优秀的数据持久层框架,在实体类和SQL语句之间建立映射关系,是一种半自动化的ORM实现
3.MyBatis框架及ORM
-
MyBatis框架简介
MyBatis是一个开源的数据持久层框架 ,它内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询,存储过程和高级映射,几乎消除了所有的JDBC代码和参数的手工设置以及结果集的检索
-
什么是ORM
ORM(Object/Relation Mapping)即对象/关系映射,是一种数据持久化技术
4.MyBatis框架的优点缺点及其适用场合
-
MyBatis框架的优点
(1)与JDBC相比,减少了50%以上的代码量
(2)MyBatis是最简单的持久化框架,小巧并且简单易学
(3)MyBatis相当灵活,不会对应用程序或者数据库的现有设计强加任 何影响,SQL写在XML里,从程序代码中彻底分离,降低耦合度, 便于统一管理和优化,并可重用
(4)提供XML标签,支持编写动态SQL语句
(5)提供映射标签,支持对象与数据库的ORM字段关系映射
-
MyBatis框架的缺点
(1)SQL语句的编写工作量大,对开发人员编写SQL语句的功底有一定 要求
(2)SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据 库
-
Mybatis框架适用场合
MyBatis专注于SQL本身,是一个足够灵活的DAO层解决方案,对性能要求很高,或者需求变化较多的项目。
5.MyBatis的基本要素-核心对象
- 核心接口和类
- MyBatis核心配置文件(mybatis-config.xml)
- SQL映射文件(mapper.xml)
5.1 SqlSessionFactoryBuilder的作用
- build(Reader rader,String environment,Properties properties)
- build(InputStream inputStream ,String environment,Properties properties)
- build(Configuration config)
5.2 SqlSessionFactoryBuilder 的生命周期和作用域
SqlSessionFactoryBuilder 的最大特点是:用过即丢。
5.3 SqlSessionFactory的作用
SqlSessionFactory简单的理解就是创建SqlSession实例的工厂
5.4 SqlSeesionFactory 的生命周期和作用域
SqlSeesionFactory 对象一旦创建,就会在整个应用运行过程中始终存在
5.5 SqlSession的作用
SqlSession是用于执行持久化操作的对象,类似于JDBC中的Connection
5.6 SqlSession的生命周期和作用域
SqlSession对应着一次数据库会话,由于数据库会话不是永久的,因此 SqlSession的生命周期也不应该是永久的
6.MyBatis的基本要素-核心配置文件
6.1 MyBatis-config.xml文件结构
-
properties元素
描述的都是外部化,可替代的属性
1.database.properties: driver=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/smbms user=root password=root使用 2.mybatis-config.xml部分内容 <!--引入 database.properties 文件--> <properties resouces="database.properties"/> <dataSouces type="POOLED"> <property name="driver" value="${driver}"> <property name="url" value="${url}"> <property name="username" value="${user}"> <property name="password"value="${password}"> </dataSouces>
-
settings元素
设置项 描述 允许值