zoukankan      html  css  js  c++  java
  • 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实际获取的时间点
    • 动态代理的应用
    • 一级和二级缓存
  • 相关阅读:
    CodeForces 156B Suspects(枚举)
    CodeForces 156A Message(暴力)
    CodeForces 157B Trace
    CodeForces 157A Game Outcome
    HDU 3578 Greedy Tino(双塔DP)
    POJ 2609 Ferry Loading(双塔DP)
    Java 第十一届 蓝桥杯 省模拟赛 19000互质的个数
    Java 第十一届 蓝桥杯 省模拟赛 19000互质的个数
    Java 第十一届 蓝桥杯 省模拟赛 19000互质的个数
    Java 第十一届 蓝桥杯 省模拟赛十六进制转换成十进制
  • 原文地址:https://www.cnblogs.com/gabin/p/13748167.html
Copyright © 2011-2022 走看看