[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-config":3,"primary-menu":6,"category-mybatis":85,"first-post-mybatis":99,"posts-mybatis":187},{"config":4,"socialLinks":5},null,[],{"metadata":7,"spec":10,"menuItems":20},{"name":8,"creationTimestamp":9},"primary","2026-09-12T06:13:55.024154Z",{"displayName":11,"menuItems":12},"主菜单",[13,14,15,16,17,18,19],"88c3f10b-321c-4092-86a8-70db00251b74","menu-item-izrtmxer","c4c814d1-0c2c-456b-8c96-4864965fee94","menu-item-column","menu-item-tools","menu-item-zsxq","menu-item-ocrxlczu",[21,30,40,49,58,67,76],{"displayName":22,"metadata":23,"spec":25,"status":28,"children":29},"首页",{"name":13,"creationTimestamp":24},"2026-09-12T06:13:54.422830Z",{"displayName":22,"href":26,"priority":27,"menuName":8},"\u002F",0,{"displayName":22,"href":26},[],{"displayName":31,"metadata":32,"spec":34,"status":38,"children":39},"Java面试八股",{"name":14,"creationTimestamp":33},"2026-09-13T09:42:02.854891Z",{"displayName":31,"href":35,"target":36,"priority":37,"menuName":8},"\u002Fjava-interview","_self",1,{"displayName":31,"href":35},[],{"displayName":41,"metadata":42,"spec":44,"status":47,"children":48},"文章",{"name":15,"creationTimestamp":43},"2026-09-12T06:13:54.457307Z",{"displayName":41,"href":45,"priority":46,"menuName":8},"\u002Farchives",2,{"displayName":41,"href":45},[],{"displayName":50,"metadata":51,"spec":53,"status":56,"children":57},"项目实战",{"name":16,"creationTimestamp":52},"2026-09-14T00:35:08.138170Z",{"displayName":50,"href":54,"target":36,"priority":55,"menuName":8},"\u002Fcolumn",3,{"displayName":50,"href":54},[],{"displayName":59,"metadata":60,"spec":62,"status":65,"children":66},"在线工具",{"name":17,"creationTimestamp":61},"2026-09-14T00:35:08.171474Z",{"displayName":59,"href":63,"target":36,"priority":64,"menuName":8},"\u002Ftools",4,{"displayName":59,"href":63},[],{"displayName":68,"metadata":69,"spec":71,"status":74,"children":75},"知识星球",{"name":18,"creationTimestamp":70},"2026-09-14T00:35:08.199145Z",{"displayName":68,"href":72,"target":36,"priority":73,"menuName":8},"\u002Fzsxq",5,{"displayName":68,"href":72},[],{"displayName":77,"metadata":78,"spec":80,"status":83,"children":84},"特价云服务器",{"name":19,"creationTimestamp":79},"2026-09-25T15:30:59.201614Z",{"displayName":77,"href":81,"target":36,"priority":82,"menuName":8},"\u002Fserver",6,{"displayName":77,"href":81},[],{"metadata":86,"spec":91,"status":97,"postCount":64},{"name":87,"creationTimestamp":88,"labels":89},"mybatis","2026-09-13T09:13:25.626670Z",{"haloweb.section":90},"interview",{"displayName":92,"slug":87,"cover":93,"description":94,"priority":95,"hideFromList":96,"preventParentPostCascadeQuery":96},"MyBatis 面试题","","MyBatis 面试题：动态代理、一二级缓存、动态 SQL、插件机制与批量操作。",15,false,{"permalink":98,"postCount":64,"visiblePostCount":64},"\u002Fcategories\u002Fmybatis",[100,124,145,166],{"metadata":101,"spec":104,"status":113,"categories":118},{"name":102,"creationTimestamp":103},"post-mybatis-architecture-459320d3","2026-09-13T10:01:01.078209Z",{"title":105,"slug":106,"cover":93,"excerpt":107,"publishTime":109,"categories":110,"tags":111,"priority":27,"pinned":96,"deleted":96,"visible":112,"allowComment":108},"MyBatis 的核心组件和执行流程？","mybatis-architecture",{"raw":93,"autoGenerate":108},true,"2026-09-13T10:01:01.144018Z",[87],[],"PUBLIC",{"permalink":114,"excerpt":115,"lastModifyTime":116,"phase":117},"\u002Farchives\u002Fmybatis-architecture","一、核心组件 SqlSessionFactory：SqlSession 工厂，重量级，全局一个。 SqlSession：与数据库交互的会话，非线程安全，每次操作创建。 Executor：执行器，负责 SQL 执行和缓存维护。 StatementHandler：处理 JDBC Statement。 P","2026-09-16T09:14:34.243220Z","PUBLISHED",[119],{"metadata":120,"spec":122,"status":123,"postCount":64},{"name":87,"creationTimestamp":88,"labels":121},{"haloweb.section":90},{"displayName":92,"slug":87,"cover":93,"description":94,"priority":95,"hideFromList":96,"preventParentPostCascadeQuery":96},{"permalink":98,"postCount":64,"visiblePostCount":64},{"metadata":125,"spec":128,"status":135,"categories":139},{"name":126,"creationTimestamp":127},"post-mybatis-cache-37285302","2026-09-13T10:01:01.300332Z",{"title":129,"slug":130,"cover":93,"excerpt":131,"publishTime":132,"categories":133,"tags":134,"priority":27,"pinned":96,"deleted":96,"visible":112,"allowComment":108},"MyBatis 的一级缓存和二级缓存？","mybatis-cache",{"raw":93,"autoGenerate":108},"2026-09-13T10:01:01.347064Z",[87],[],{"permalink":136,"excerpt":137,"lastModifyTime":138,"phase":117},"\u002Farchives\u002Fmybatis-cache","一、一级缓存 默认开启，作用域是 SqlSession。 同一个 SqlSession 内，相同 SQL 直接从缓存取。 执行 update\u002Finsert\u002Fdelete 或 close 后缓存清空。 多个 SqlSession 不共享，可能导致脏读。 二、二级缓存 需手动开启，作用域是 Mapper","2026-09-16T09:14:34.680089Z",[140],{"metadata":141,"spec":143,"status":144,"postCount":64},{"name":87,"creationTimestamp":88,"labels":142},{"haloweb.section":90},{"displayName":92,"slug":87,"cover":93,"description":94,"priority":95,"hideFromList":96,"preventParentPostCascadeQuery":96},{"permalink":98,"postCount":64,"visiblePostCount":64},{"metadata":146,"spec":149,"status":156,"categories":160},{"name":147,"creationTimestamp":148},"post-mybatis-dynamic-sql-016cb843","2026-09-13T10:01:01.531779Z",{"title":150,"slug":151,"cover":93,"excerpt":152,"publishTime":153,"categories":154,"tags":155,"priority":27,"pinned":96,"deleted":96,"visible":112,"allowComment":108},"MyBatis 常用动态 SQL 标签？","mybatis-dynamic-sql",{"raw":93,"autoGenerate":108},"2026-09-13T10:01:01.590204Z",[87],[],{"permalink":157,"excerpt":158,"lastModifyTime":159,"phase":117},"\u002Farchives\u002Fmybatis-dynamic-sql","一、if 条件判断，满足则拼接 SQL 片段。 WHERE 1=1\n\u003Cif test=\"name != null\">AND name = #{name}\u003C\u002Fif>\n 二、where 自动去掉多余的 AND\u002FOR，自动加 WHERE。 \u003Cwhere>\n  \u003Cif test=\"name != null\"","2026-09-16T09:14:35.165093Z",[161],{"metadata":162,"spec":164,"status":165,"postCount":64},{"name":87,"creationTimestamp":88,"labels":163},{"haloweb.section":90},{"displayName":92,"slug":87,"cover":93,"description":94,"priority":95,"hideFromList":96,"preventParentPostCascadeQuery":96},{"permalink":98,"postCount":64,"visiblePostCount":64},{"metadata":167,"spec":170,"status":177,"categories":181},{"name":168,"creationTimestamp":169},"post-mybatis-lazy-loading-1fb27090","2026-09-13T10:01:01.735560Z",{"title":171,"slug":172,"cover":93,"excerpt":173,"publishTime":174,"categories":175,"tags":176,"priority":27,"pinned":96,"deleted":96,"visible":112,"allowComment":108},"MyBatis 的延迟加载？","mybatis-lazy-loading",{"raw":93,"autoGenerate":108},"2026-09-13T10:01:01.783724Z",[87],[],{"permalink":178,"excerpt":179,"lastModifyTime":180,"phase":117},"\u002Farchives\u002Fmybatis-lazy-loading","一、定义 关联查询时，只在真正用到关联对象时才执行查询加载，避免一次性加载所有数据。 二、配置 \u003Csettings>\n  \u003Csetting name=\"lazyLoadingEnabled\" value=\"true\"\u002F>\n  \u003Csetting name=\"aggressiveLazyLoading\"","2026-09-16T09:13:42.120565Z",[182],{"metadata":183,"spec":185,"status":186,"postCount":64},{"name":87,"creationTimestamp":88,"labels":184},{"haloweb.section":90},{"displayName":92,"slug":87,"cover":93,"description":94,"priority":95,"hideFromList":96,"preventParentPostCascadeQuery":96},{"permalink":98,"postCount":64,"visiblePostCount":64},{"page":37,"size":188,"total":64,"items":189,"first":108,"last":108,"hasNext":96,"hasPrevious":96,"totalPages":37},100,[190,203,216,229],{"metadata":191,"spec":192,"status":196,"categories":197},{"name":168,"creationTimestamp":169},{"title":171,"slug":172,"cover":93,"excerpt":193,"publishTime":174,"categories":194,"tags":195,"priority":27,"pinned":96,"deleted":96,"visible":112,"allowComment":108},{"raw":93,"autoGenerate":108},[87],[],{"permalink":178,"excerpt":179,"lastModifyTime":180,"phase":117},[198],{"metadata":199,"spec":201,"status":202,"postCount":64},{"name":87,"creationTimestamp":88,"labels":200},{"haloweb.section":90},{"displayName":92,"slug":87,"cover":93,"description":94,"priority":95,"hideFromList":96,"preventParentPostCascadeQuery":96},{"permalink":98,"postCount":64,"visiblePostCount":64},{"metadata":204,"spec":205,"status":209,"categories":210},{"name":147,"creationTimestamp":148},{"title":150,"slug":151,"cover":93,"excerpt":206,"publishTime":153,"categories":207,"tags":208,"priority":27,"pinned":96,"deleted":96,"visible":112,"allowComment":108},{"raw":93,"autoGenerate":108},[87],[],{"permalink":157,"excerpt":158,"lastModifyTime":159,"phase":117},[211],{"metadata":212,"spec":214,"status":215,"postCount":64},{"name":87,"creationTimestamp":88,"labels":213},{"haloweb.section":90},{"displayName":92,"slug":87,"cover":93,"description":94,"priority":95,"hideFromList":96,"preventParentPostCascadeQuery":96},{"permalink":98,"postCount":64,"visiblePostCount":64},{"metadata":217,"spec":218,"status":222,"categories":223},{"name":126,"creationTimestamp":127},{"title":129,"slug":130,"cover":93,"excerpt":219,"publishTime":132,"categories":220,"tags":221,"priority":27,"pinned":96,"deleted":96,"visible":112,"allowComment":108},{"raw":93,"autoGenerate":108},[87],[],{"permalink":136,"excerpt":137,"lastModifyTime":138,"phase":117},[224],{"metadata":225,"spec":227,"status":228,"postCount":64},{"name":87,"creationTimestamp":88,"labels":226},{"haloweb.section":90},{"displayName":92,"slug":87,"cover":93,"description":94,"priority":95,"hideFromList":96,"preventParentPostCascadeQuery":96},{"permalink":98,"postCount":64,"visiblePostCount":64},{"metadata":230,"spec":231,"status":235,"categories":236},{"name":102,"creationTimestamp":103},{"title":105,"slug":106,"cover":93,"excerpt":232,"publishTime":109,"categories":233,"tags":234,"priority":27,"pinned":96,"deleted":96,"visible":112,"allowComment":108},{"raw":93,"autoGenerate":108},[87],[],{"permalink":114,"excerpt":115,"lastModifyTime":116,"phase":117},[237],{"metadata":238,"spec":240,"status":241,"postCount":64},{"name":87,"creationTimestamp":88,"labels":239},{"haloweb.section":90},{"displayName":92,"slug":87,"cover":93,"description":94,"priority":95,"hideFromList":96,"preventParentPostCascadeQuery":96},{"permalink":98,"postCount":64,"visiblePostCount":64}]