1:主流框架:
Struts2
MVC设计模式的实现 拦截器 可变和可重用的标签
Hibernate:
ORM,简化数据库操作 DAO层
Spring:
依赖注入容器/AOP实现
声明式事务
简化Java EE应用
黏合剂,将大家组装到一起(组合)
Spring MVC:
结构最清晰的MVC Model2实现
高度可配置,支持多种视图技术
定制化开发
MyBatis(MyBatis轻量级框架:)
半自动化的ORM实现 DAO层 动态SQL 小巧灵活、简单易学
2:ORM(object(java) Relational(关系) Mapping(映射))
对象关系映射 (对象数据库关联)
java通过执行将数据传送到数据库,数据库在进行传送,最后显示出来
编写程序的时候,以面向对象的方式处理数据
保存数据的时候,却以关系型数据库的方式存储
操作实体类映射到数据库
3:ORM解决方案;
在持久化对象上执行基本的增删改查操作
对持久化对象提供一种查询语句或者API
对象关系映射工具
提供与事务对象交互,执行检查,延迟加载以及其他优化功能
4:持久化:(一个相互转化的过程)
持久化是程序数据在瞬时状态和持久状态间转换的过程
瞬时状态:数据保存在内存当中(变量,属性)
持久状态:数据保存在磁盘当中(保存在数据库中)
游离状态:
原来保存在内存中,后来不保存了
5:MyBatis的特点:
基于SQL语法,简单易学
能了解底层封装过程
SQL语句封装在配置文件中,便于统一管理与维护,降低程序的耦合度
方便程序代码调试
5:HIBERNATE和MyBatis
HIBERNATE 自动,不能灵活完成要求
自动生成SQL语句
在数据库中自动创建表
MyBatis 需要自己写SQL语句
所以MyBatis不是全自动框架
灵活 动态SQL
7:MyBatis 与JDBC相比:
优点
与JDBC相比,减少了50%以上的代码量
最简单的持久化框架,小巧并简单易学
SQL代码从程序代码中彻底分离,可重用
提供XML标签,支持编写动态SQL
提供映射标签,支持对象与数据库的ORM字段映射
缺点
SQL语句编写工作量大,对开发人员有一定要求
数据库移植性差
8:MyBatis基本要素
MyBatis的核心对象 SqlSessionFactoryBuilder SqlSessionFactory SqlSession
mybatis-config.xml 系统核心配置文件
mapper.xml SQL映射文件
9:MyBatis核心对象;
SqlSessionFactoryBuilder
用完就扔生命周期只在方法内
可重用其来创建多个SqlSwssionFactory实例
负责构建SqlSessionFactory,并提供多个build方法的重载
SqlSessionFactory
生命周期与应用的生命周期相同
作用:创建SqlSession实例
作用域:Application
单例:(存在于整个应用运行时,并且同时只存在一个对象实例)
SqlSession
包含了执行SQL所需的所有方法(处理SQL语句,得到结果)
对应一次数据库会话,会话结束必须关闭
线程级别,不能共享
注:在SqlSession里可以执行多次SQL语句,但一旦关闭了SqlSession就需要重新创建
SqlSession的两种使用方式
通过SqlSession实例直接运行映射的SQL语句
基于Mapper接口方式操作数据
10:MyBatis专注于SQL本身,是一个足够灵活的DAO层解决方案
11:系统核心配置文件
mybatis-config.xml 系统核心配置文件
configuration 配置
properties 可以配置在Java 属性配置文件中
settings 修改 MyBatis 在运行时的行为方式
typeAliases 为 Java 类型命名一个别名(简称)
typeHandlers 类型处理器
objectFactory 对象工厂
plugins 插件
environments 环境
environment 环境变量
transactionManager 事务管理器
dataSource 数据源
mappers 映射器
12:配置properties元素
配置properties元素的两种方式 通过外部指定的方式(database.properties),实现动态配置 直
接配置为xml,实现动态配置
13:resource属性值的优先级高于property子节点配置的值
14:settings元素
用来修改MyBatis运行时的行为方式 主要是MyBatis的一些全局配置属性的设置
15:typeAliases元素
类型别名
仅仅只关联XML配置,简写冗长的Java类名
16:environments元素
environments元素 表示配置MyBatis的多套运行环境,将SQL映射到多个不同的数据库上
子元素节点:environment,但是必须指定其中一个为默认运行环境(通过default指定)
每个SqlSessionFactory实例只能选择一个运行环境
transactionManager-事务管理器
<transactionManager type="[ JDBC | MANAGED ]" />
dataSource
dataSource元素使用基本的JDBC数据源接口来配置JDBC连接对象的资源
有三种内建的数据源类型
<dataSource type=" [UNPOOLED | POOLED | JNDI]" />
17;mapper
映射器,定义SQL映射语句
须在配置中引用mapper映射文件
方式一:使用类资源路径获取资源
<!-- 将mapper映射文件加入到系统核心配置文件中 -->
<mappers>
<mapper resource="cn/smbms/dao/user/UserMapper.xml"/>
</mappers>
方式二:使用URL获取资源
<mappers>
<mapper url="file:///E:/sqlmappers/UserMapper.xml"/> <mapper url="file:///E:/sqlmappers/ProviderMapper.xml"/>
</mappers>