Mybatis笔记

本文详细介绍了Mybatis作为半自动化轻量级框架的特点,包括手动编写SQL、全局配置文件与SqlSessionFactory的创建,以及如何执行SQL。还讨论了多参数处理、返回结果封装、动态SQL、缓存机制等关键概念,并提到了Mybatis逆向工程MBG的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mybatis

  1. 特点

    • 半自动化框架
    • 轻量级
    • 手动编写sql
  2. 文档

    • http://www.mybatis.org/mybatis-3/zh/getting-started.html --文档
    • https://ke.qq.com/course/199779?taid=1162699186834531 --视频
  3. 步骤

    1. 全局配置文件文件;创建一个SqlSessionFactory对象
    2. sql映射文件
    3. 将sql映射文件注册到全局配置文件中
    4. 编写代码
      1. 根据全局配置文件得到SqlSessionFactory;
      2. 通过SqlSesstionFactory获取SqlSesstion对象,使用SqlSesssion对象进行CRUD,一个sqlSession就代表和数据库的一次会话,使用完必须关闭会话。
      3. 指定sql的唯一标识(id),告诉mybatis执行那一条sql语句。sql语句到放在sql映射文件中的。
        • 注:执行sql有两种方式,通过sqlsession的CRUD方法或者通过接口式编程
        • 注:sqlsession和connection一样都是非线程安全。每次使用都要获取新的对象。
        • 注:接口式编程可以选择绑定xml文件或者编写注解(注解写sql语句)
      4. mybatis对象的作用域
        • 参考文档:入门->作用域
  4. 配置文件

    1. 使用dtd文件规范xml文件格式(安装后可以自动提示)
    2. 配置文件结构
      1. properties(属性)
      2. settings(设置)
      3. typeAliases(类型别名)
      4. typeHandlers(类型处理器):处理java和数据库类型的转换
      5. objectFatory(对象工厂):mybatis查询结果创建j为ava对象,有对象工厂创建对象
      6. plugin(插件)
      7. environments(包括事务和数据源)
      8. databaseProvider(数据库厂商标识):可以指定sql的对于的厂商,不同厂商sql语法不同
      9. mapper(映射器):告诉mybatis哪里去找映射文件
  5. 细节

    • 多参数问题
      • mybatisSql传多个参数,会把参数封装成一个map,需要按照下标获取参数,或param1…paramN。
      • 使用命名参数,可以更具参数名获取参数值
      • 使用一个对象POJO
      • 使用To
      • 使用Map
      • 注:更多参数处理查看文档或视频
    • 返回结果数据封装问题
      • 封装对象,List, Map
      • ResultMap封装,多表查询结果的封装
      • 延迟加载
    • 动态sql
      • sql多余and或者or符号的处理
      • 批量查询
      • 批量插入
      • mybatis两个内置参数
      • 动态sql中的可插拔脚本语言
    • 缓存
      • 一级缓存(本地缓存)
        • 范围:与数据库同一次会话查到的数据放到本地缓存中。
      • 二级缓存
        • 范围:基于namespace级别的缓存,一个namespace对应一个二级缓存
        • 配置:
          1. 在全局配置中启用二级缓存
          2. 在mapper.xml中配置二级缓存
          3. POJO需要实现序列化接口
    • Mybatis-逆向工程(MBG, 代码生成器)
      • 做用:更具数据库表生成javabean和=,对应的映射文件和接口
  6. 复习地址

    http://www.mybatis.org/mybatis-3/zh/getting-started.html

  7. #{}和${}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值