zoukankan      html  css  js  c++  java
  • 第一章 初始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>

  • 相关阅读:
    dinic模板
    ZOJ 3042 City Selection II 【序】【离散化】【数学】
    Codeforces 452D [模拟][贪心]
    Day25 python基础---面向对象进阶--模块与包
    Day22&23&24 python基础---面向对象进阶--常用模块
    Day21 python基础---面向对象进阶--内置方法
    Day19&20 python基础---面向对象进阶--装饰器函数,反射,内置方法
    Day18 python基础---面向对象三大特性---多态、封装
    Day17 python基础---面向对象三大特性---继承
    Day16 python基础---面向对象初识---组合
  • 原文地址:https://www.cnblogs.com/zjx-959/p/13812797.html
Copyright © 2011-2022 走看看