第一章 初始MyBatis

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>

原文地址:https://www.cnblogs.com/zjx-959/p/13812797.html