草庐IT

你还在手写 join 联表查询?MyBatis-Plus 这样写太香了!

使用方法安装Mavencom.github.yulichangmybatis-plus-join1.2.4Gradleimplementation'com.github.yulichang:mybatis-plus-join:1.2.4'或者clone代码到本地执行mvninstall,再引入以上依赖注意:mybatisplusversion>=3.4.0推荐一个开源免费的SpringBoot最全教程:https://github.com/javastacks/spring-boot-best-practice使用mapper继承MPJBaseMapper(必选)service继承MPJBas

你还在手写 join 联表查询?MyBatis-Plus 这样写太香了!

使用方法安装Mavencom.github.yulichangmybatis-plus-join1.2.4Gradleimplementation'com.github.yulichang:mybatis-plus-join:1.2.4'或者clone代码到本地执行mvninstall,再引入以上依赖注意:mybatisplusversion>=3.4.0推荐一个开源免费的SpringBoot最全教程:https://github.com/javastacks/spring-boot-best-practice使用mapper继承MPJBaseMapper(必选)service继承MPJBas

你还在手写 join 联表查询?MyBatis-Plus 这样写太香了!

使用方法安装Mavencom.github.yulichangmybatis-plus-join1.2.4Gradleimplementation'com.github.yulichang:mybatis-plus-join:1.2.4'或者clone代码到本地执行mvninstall,再引入以上依赖注意:mybatisplusversion>=3.4.0推荐一个开源免费的SpringBoot最全教程:https://github.com/javastacks/spring-boot-best-practice使用mapper继承MPJBaseMapper(必选)service继承MPJBas

Javascript 手写 LRU 算法

LRU是LeastRecentlyUsed的缩写,即最近最少使用。作为一种经典的缓存策略,它的基本思想是长期不被使用的数据,在未来被用到的几率也不大,所以当新的数据进来时我们可以优先把这些数据替换掉。一、基本要求固定大小:限制内存使用。快速访问:缓存插入和查找操作应该很快,最好是O(1)时间。在达到内存限制的情况下替换条目:缓存应该具有有效的算法来在内存已满时驱逐条目。二、数据结构下面提供两种实现方式,并完成相关代码。2.1Map在Javascript中,Map的key是有序的,当迭代的时候,他们以插入的顺序返回键值。结合这个特性,我们也通过Map实现LRU算法。2.2DoublyLinked

Javascript 手写 LRU 算法

LRU是LeastRecentlyUsed的缩写,即最近最少使用。作为一种经典的缓存策略,它的基本思想是长期不被使用的数据,在未来被用到的几率也不大,所以当新的数据进来时我们可以优先把这些数据替换掉。一、基本要求固定大小:限制内存使用。快速访问:缓存插入和查找操作应该很快,最好是O(1)时间。在达到内存限制的情况下替换条目:缓存应该具有有效的算法来在内存已满时驱逐条目。二、数据结构下面提供两种实现方式,并完成相关代码。2.1Map在Javascript中,Map的key是有序的,当迭代的时候,他们以插入的顺序返回键值。结合这个特性,我们也通过Map实现LRU算法。2.2DoublyLinked

记录--通过手写,分析async await核心原理

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言asyncawait语法是ES7出现的,是基于ES6的promise和generator实现的generator函数在之前我专门讲个generator的使用与原理实现,大家没了解过的可以先看那个手写generator核心原理,再也不怕面试官问我generator原理这里就不再赘述generator,专门的文章讲专门的内容。await在等待什么我们先看看下面这代码,这是asyncawait的最简单使用,await后面返回的是一个Promise对象:asyncfunctiongetResult(){awaitnewPromise((r

记录--通过手写,分析async await核心原理

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言asyncawait语法是ES7出现的,是基于ES6的promise和generator实现的generator函数在之前我专门讲个generator的使用与原理实现,大家没了解过的可以先看那个手写generator核心原理,再也不怕面试官问我generator原理这里就不再赘述generator,专门的文章讲专门的内容。await在等待什么我们先看看下面这代码,这是asyncawait的最简单使用,await后面返回的是一个Promise对象:asyncfunctiongetResult(){awaitnewPromise((r

手写一个模拟的ReentrantLock

packagecn.daheww.demo.juc.reentrylock;importsun.misc.Unsafe;importjava.lang.reflect.Field;importjava.util.concurrent.locks.LockSupport;/***@authordaheww*@date2022/7/7*/publicclassMiniReentryLockimplementsLock{/***锁的是什么-->资源-->state*0-->未加锁*>0->加锁*/privatevolatileintstate;/***独占模式*同一时刻只有一个线程可以持有锁,其它线

手写一个模拟的ReentrantLock

packagecn.daheww.demo.juc.reentrylock;importsun.misc.Unsafe;importjava.lang.reflect.Field;importjava.util.concurrent.locks.LockSupport;/***@authordaheww*@date2022/7/7*/publicclassMiniReentryLockimplementsLock{/***锁的是什么-->资源-->state*0-->未加锁*>0->加锁*/privatevolatileintstate;/***独占模式*同一时刻只有一个线程可以持有锁,其它线

C#.Net如何手写ORM

快速认识ORM对象-关系映射,即Object/RelationMapping,主要实现程序对象到关系数据库的映射。现在.Net比较流行的ORM框架有:EF、SqlSugar、Dapper、FreeSql、Nhibernate、IBatis.Net等。O/RM只是一层代码的封装,底层还是基于ADO.NET完成对数据库的访问。一般写法如果我们要写一个查询,用ADO.NET就会如下这样写。privatestaticstringConnectionStringCustomers="DataSource=.;Database=Customers;"+"UserID=sa;Password=123456;