框架技术

框架

框架是一个提供了可重用的公共结构的半成品,对于程序来说框架就是程序的骨架
是一个应用程序的半成品
提供可重用的公共结构
按一定规则组织的一组组件

当前主流的框架

Struts 2 框架

以webwork优秀的设计思想为核心,吸收了Struts框架的部分优点,提供了一个更加整洁的基于MVC设计模式实现的web应用程序框架

Hibernate 框架

Hibernate 框架是一个优秀的持久化框架,负责简化将对象数据保存到数据库中,或从数据库中读取数据并封装到对象的工作

Spring 框架

Spring主要作为依赖注入容器和AOP实现存在,还提供了声明式事务,对Dao层的支持等简化开发的功能

Spring MVC 框架

Spring MVC 框架是Spring框架提供的构建web应用程序的全功能MVC模块

MyBatis框架

mybatis框架是一个数据持久化的框架,在实体类和SQL语句之间建立映射关系,是一种半自动的ORM实现

MyBatis框架

持久化与ORM

持久化

持久化是程序数据在瞬时状态和持久状态间的转换过程,是将内存中的数据模型转换为存储模型以及将存储模型转换为内存中的数据模型的统称

ORM

对象/关系映射 是一种数据持久化技术,它在对象模型和关系型数据库之间建立起对应关系,并提供了一种机制,通过javabean对象去操作数据库表中的数据
编写程序的时候以面向对象的方式处理数据
保存数据的时候以关系型数据库的方式储存

mybatis的优点

基于SQL语法,简单易学
能了解底层封装过程
SQL语句封装在配置文件中,便于统一管理与维护降低程序耦合度
方便程序代码调试

mybatis搭建开发环境

下载mybatis-3.2.2.jar包并导入工程
编写MyBatis核心配置文件(configuration.xml)
创建实体类-POJO
DAO层-SQL映射文件(mapper.xml)
创建测试类
读取核心配置文件mybatis-config.xml
创建SqlSessionFactory对象,读取配置文件
创建SqlSession对象
调用mapper文件进行数据操作

mybatis的优缺点

优点
与JDBC相比,减少了50%以上的代码量
最简单的持久化框架,小巧并简单易学
SQL代码从程序代码中彻底分离,可重用
提供XML标签,支持编写动态SQL
提供映射标签,支持对象与数据库的ORM字段映射
缺点
SQL语句编写工作量大,对开发人员有一定要求
数据库移植性差

Mybatis的核心对象

核心接口和类
mybatis核心配置文件(mybatis-config.xml)
SQL映射文件(mapper.xml)


sqlsessionfactory的构造者 ——sqlsessionfactorybulider

sqlsessionfactorybulider的作用

sqlsessionfactorybulider负责构建sqlsessionfactory,并提供多个bulid()方法的重载

sqlsessionfactorybulider的生命周期和作用域

sqlsessionfactorybulider一旦创建了sqlsessionfactory对象,这个类就不需要了,因此sqlsessionfactorybulider的最佳作用域范围是在方法体内,也就是局部变量

sqlsession的工厂——sqlsessionfactory

sqlsessionfactory的作用

sqlsessionfactory就是创建sqlsession实例的工厂,可以通过sqlsession的opensession()方法来获取sqlsession实例

sqlsessionfactory的生命周期和作用域

sqlsessionfactory的对象一旦创建了,就会在整个应用的运行过程中始终存在,没有理由去销毁他或者在此创建,因此sqlsessionfactory的最佳作用域就是Application

使用sqlsession进行数据持久化操作

sqlsession的作用

sqlsession是用于执行持久化操作的对象类似于jdbc中的connection

sqlsession的作用域和生命周期

sqlsession对应着一次数据库的会话,由于数据库会话不是永久的,因此sqlsession的生命周期页不是永久的

配置文件

配置文件的结构

  1. configuration配置
  2. properties可以配置在Java属性配置文件中
  3. settings修改MyBatis在运行时的行为方式
  4. typeAliasesJava类型命名-一个别名(简称)
  5. typeHandlers类型 处理器
  6. objectFactory对象工厂
  7. plugins插件
  8. environments环境
  9. environment环境变量
  10. transactionManager事务管理器
  11. dataSource数据源
  12. mappers映射器