1.JAVA下唯一一款搞定OLTP+OLAP的源码强类型查询这就是最好用的ORM相见恨晚
2.教程三分钟学习NCNN算法移植
3.Read&Write-Easy Excel
4.easy_installeasy_install 使用方法
JAVA下唯一一款搞定OLTP+OLAP的强类型查询这就是最好用的ORM相见恨晚
首先,我要感谢 FreeSQL 提供的源码部分源码,它让我借鉴了若干功能点。源码easy-query 的源码整体设计并未参考 FreeSQL,因为 Java 没有expression,源码所以无法借鉴。源码poi 源码只是源码在数据库方言上,FreeSQL 提供的源码 SQL 让我少走了很多弯路。
需要说明的源码是,easy-query 是源码 Java 下唯一一款能够完全替代 SQL 的强类型 ORM,它完美支持 OLTP 和 OLAP 语法筛选。源码请记住,源码这是源码唯一的一款。
若想体验完整版,源码请查阅文档。源码由于篇幅限制,本次仅展示 OLTP 的对象关联查询。
文档地址:xuejmnet.github.io/easy...
GITHUB 地址:github.com/xuejmnet/eas...
GITEE 地址:gitee.com/xuejm/easy-qu...
easy-query 是内核源码频率表 Java 下唯一一款支持强类型 OLTP 和 OLAP 语法,并且支持分表分库的最好用的 ORM。为什么说它是最好用的 OLTP?让我们来看一个简单的例子。
假设用户和角色是多对多关系,角色和菜单也是多对多关系。
案例1:查询杭州或绍兴的用户。
案例2:查询名叫小明的用户,返回小明的姓名和所在地址。
案例3:查询名叫小明的用户,返回用户的姓名、地址和角色数量。
案例4:查询用户下面存在角色是收货员的用户。
案例5:查询用户下面存在角色是XX员,并且存在个数大于5个的用户,即用户下面的角色是XX员至少有5个以上。
案例6:查询用户下面存在的任意角色不大于年创建的。
案例7:查询每个用户和前3个最早创建的角色(支持分页),适用于评论和评论子表前N个。易房网源码
案例8:查询用户小明下面的菜单。
案例9:自动返回用户和用户下的角色和角色下的菜单。
首先通过 idea 插件 EasyQueryAssistant 在指定目录创建 Struct DTO。
最终会生成如下 dto:
查询 selectAutoInclude
最后,展示了非常强大的 OLTP 查询模式。OLAP 同样强大,可以实现 group+join,从 (匿名sql) 中实现 from,也可以实现 join (匿名sql)。
easy-query 是一款具有强类型 OLTP+OLAP 的完美解决方案,并且完美支持 mybatis 系列的任意架构逐步构建迁移,不会产生任何冲突。因为 easy-query 本身是零依赖,并且完全免费、完全开源(包括文档!)。
我相信,MySQL源码难不难easy-query 是一款可以完全打动您的 ORM 作品,也是全 Java 唯一一款全 sql 替代性产品。
本文使用 Zhihu On VSCode 创作并发布。
教程三分钟学习NCNN算法移植
本文介绍如何基于EASY EAI Nano移植NCNN部署库,以及如何成功运行yolov4的Demo。NCNN是由腾讯优图实验室开发的高性能神经网络前向计算框架,专为手机端优化,支持多输入、多分支结构的卷积神经网络计算,并且无第三方库依赖,支持跨平台操作。NCNN基于C++实现,支持ARM NEON汇编级优化,内存管理精细,支持多核并行计算,以及基于Vulkan API的GPU加速。支持8bit量化和半精度浮点存储,带大联盟棋牌源码可导入多种框架的模型。
NCNN广泛应用于图像分类、风格迁移、目标检测、人脸检测等领域,并已被多款APP使用。接下来,我们通过以下步骤完成NCNN算法的移植学习。
1. 下载与编译NCNN源码
从百度网盘获取NCNN源码包,使用解压命令展开NCNN库。
执行编译指令,生成NCNN库文件。
2. 运行yolov4的Demo
下载包含yolov4基于NCNN运行的Demo,解压并执行编译指令。
将编译后的可执行程序文件通过Ubuntu推送至EASY EAI Nano板卡的指定目录。
在EASY EAI Nano板卡执行程序,观察执行结果。
在Ubuntu端获取识别成功的,并查看实际效果。
至此,NCNN算法移植学习完成。更多教程请持续关注我们。欲了解更多关于EASY EAI Nano的信息,请访问官方页面。
Read&Write-Easy Excel
在处理大量数据导入Excel时,传统方法POI可能会出现内存溢出问题。这时,EasyExcel成为了解决方案。它基于SAX(Simple Api for Xml)事件驱动模型,通过解析XML的方式高效处理Excel文件。
要了解EasyExcel的读取功能,首先需要查看其源码。通过Easy Excel工厂创建ExcelReaderBuilder对象。
ExcelReaderBuilder的构造方法中生成了ReadWorkbook对象。
Head用于存放接收实体数据。
在1.8版本之后,readLister可以直接使用PageReadListener。
接下来,我们关注pageReadListener。其中包含一个final修饰的consumer,该consumer具有accept方法。设定batch_count为,当读取的数据量超过时,将直接进行消费,避免所有数据一次性加载到内存中,从而防止内存溢出。
在doRead()方法中,使用excel分析器分析Excel的sheet。
分析完成后,调用executor方法,通过xlsx分析器分析我们的Excel文件。
Excel写入操作与读取类似,需要创建WriteWorkbook对象,然后运行doWrite()方法。此时,可以通过注解指定Excel的列进行写入。
easy_installeasy_install 使用方法
使用方法非常简单,只需在命令行输入"easy_install 参数"即可。
首先,我们可以通过模块名称来安装所需的模块。setuptools会自动搜索PyPI以查找最新版本的模块。例如,执行命令"easy_install SQLObject"即可安装SQLObject模块。如果需要安装特定版本的模块,可以使用版本号,例如"easy_install "python_dateutil==1.5""或"easy_install "python_dateutil>=1.5""。如果安装过程需要权限,对于Ubuntu系统,可以加上sudo命令。
其次,我们可以通过指定查找页面来安装或升级模块。只需要在命令后添加查找页面的URL,例如"easy_install -f (此处添加一个url) SQLObject"。
第三,我们可以通过指定模块下载地址来下载模块源码并在下载成功后进行编译和安装。在命令中添加模块下载的URL,例如"easy_install (此处添加一个模块下载url)"。
第四,如果本地已经存在egg文件,我们可以使用该文件来安装模块。只需在命令后添加egg文件的路径,例如"easy_install /my_downloads/OtherPackage-3.2.1-py2.3.egg"。
接着,我们可以通过"easy_install --upgrade PyProtocols"来升级已经安装的模块到最新版本,如果在PyPI中该模块有最新版本。
此外,我们可以通过命令"easy_install ."从源码中安装模块(前提是在当前文件夹下已经下载并解压了源码)。
最后,我们可以使用"easy_install -m package-name"来卸载通过easy_install安装的软件包。例如,要卸载MySQL-python,可以执行命令"easy_install -m MySQL-python"。执行此操作后,MySQL-python的相关信息将从easy-install.pth文件中删除,剩下的egg文件可以手动删除。