• Mybatis学习笔记


    题外话:很久很久之前用过mybatis,之前是不是叫ibatis,有点忘记了。

    一堆模板代码的生成,说实话,在现在Java Class Config已经用得很习惯的情况下,再让我看那一堆XML的Mapper之类的配置,我会吐血。

    个人更倾向于根据实际项目选择,但绝大部分的公司一般JPA就足够了,因为JPA也是接口层级,所以对应HQL一般也不直接被搬上来用,个人感觉直接用sql更好(虽说是留了可以替换其他JPS实现的ORM框架,但好像实际上很少会去无缝切换。。。。)

    从Boss直聘app中的技能树看到了,很经典地都写SSM项目,很多人喜欢自己写SQL吧(说实话,感觉这个并非面向接口编程),对此我个人的看法是,大部分用框架直接生成,少部分定制(仅限于我目前就职过的公司)

    吐槽下,Boss直聘中的设计模式问题居然都是Spring的问题


    一、参考网站(中文):https://mybatis.org/mybatis-3/zh/index.html

    二、定义:套用下上面网站的--MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

    简单来说,如果是停留在老版本的印象中,应该是:

    • 得自己写一堆映射配置文件
    • 得自己实现缓存

    现在应该是可以

    • 自动映射出一些常见的sql操作
    • 默认一二级缓存(二级需要关闭session之后才会被提交,缓存优先从二级缓存获取)

    三、如何使用

    • 入门版,参考 , demo
    • 映射配置的方式(参考:https://mybatis.org/mybatis-3/zh/configuration.html#mappers)y
      • class:个人比较喜欢这个,就是相对于spring data jpa而言,一般的查询语句也要写一大堆注解,很烦;至于那种支持sql 列名注入的通用方式,实在不爱用
      • resource:xml配置
      • url:全路径名,好像用来加载外部配置文件的,不直接包含在项目中
      • package:应该是通过扫描的方式,扫描的应该是class类型的
      缓存:先从二级缓存中读取,但二级缓存需要在session关闭之后才会提交
      • 一级缓存:
      • 二级缓存:可以自行指定缓存的工具
    • 其他:有用到在继续看了,说实话,不爱用这个,有的人非要鄙视说用hibernate都不会写sql也没办法,我觉得这是一个趋势,本来Java就是写业务的,你懂sql学sql没错,但没必要强求项目都要这样写,毕竟公司要的是效益

    读源码的方向

    • 配置文件的解析,重点在于mapper
    • connection实际获取的时间点
    • 动态代理的应用
    • 一级和二级缓存
  • 相关阅读:
    沙盒中Documents、Library和tmp的用处 iOS
    LeetCode二叉树的前序遍历、中序遍历、后序遍历、层序遍历、最大深度Swift
    LeetCode判断一个单向链表是否有环?
    C#字符串处理
    【源码分享】十套C#管理系统程序源码
    【源码分享XY01】C#学生管理系统
    HL7的简单介绍
    【源码分享XY06】C#MVC+Sqlserver员工信息管理系统
    【源码分享XY04】php+MySQL开发的图书管理系统
    js将数值转为个十百千万显示
  • 原文地址:https://www.cnblogs.com/gabin/p/13748167.html
Copyright © 2020-2023  润新知