WX - 微信原生转化Uni-App
一、它是谁?【miniprogram-to-uniapp】转换微信小程序”项目为uni-app项目。原则上混淆过的项目,也可以进转换,因为关键字丢失,不一定会完美。
二、它的原理是什么?最初是学了半节课堆和栈,觉得词法分析挺有意思的,再加入转换小程序插件时,发现这些繁琐的操作完全可以使用程序来完成。核心是使用Babel获取AST(词法分析),然后或使用Babel自带函数增删,或正则分析替换等等操作。可能有的朋友觉得,这种为啥不是纯正则分析? 纯正则可以解决一部分问题,对于标签与标签内容,其实正则是很难进行区分的哈。
三、它能做哪些事情?支持无云开发的小程序项目转换为uni-app项目支持有云开发的小程序项目转换为uni-app项目(cloudfunctions目录将被忽略,uni-app结合小程序云开发见:使用uni-app进行微信小程序云开发经验分享)支持解析TypeScript小程序项目支持解析使用npm模块的小程序项目支持解析include标签支持解析template标签支持解析Behavior文件为mixins文件支持.js’, .wxml和*.wxss文件进行相应转换,并做了 ...
Mybatis - 多表关联查询分页问题
背景之前给公司做的管理系统,今天被测出来,前台展示的分页数量和实际数量不符合,导致前台分页有误!(这么大的BUG竟然没发现,我也是服了自己了)本项目数据库使用MySql,插件有如下两个
MyBatisMyBatisPlus 分页插件
分析产生BUG的地方下方是未修改之前的SQL,通过多表连接查询一对多的数据
修改前的SQL12345678910SELECT u.*, r.role_id, r.role_name FROM sys_user AS u LEFT JOIN sys_user_role AS ur ON u.user_id = ur.user_id LEFT JOIN sys_role AS r ON ur.role_id = r.role_id ORDER BY u.user_id
该SQL查询出的信息如下图
可以看出,这里查询出了7条数据。对于同一个主表,如果在子表中拥有多个关联时,就会查询出多条。然后,使用查询出的结果,在后台使用 MyBatils 的 collection 进行一对多的处理。代码如下1234567891011121314151617<result ...
Mybatis - 批量操作总结
背景记录自己在项目中总结的mybatis操作和用法
mybatis 操作(批量插入,批量修改,批量删除,分页查询)
环境描述 Java\Mysql\Mybatis
批量插入
mapper 类方法1int insertBatch(List<ShoppingCartBean> goodsList);XML 配置12345678<insert id="insertBatch" parameterType="java.util.List"> insert into th_shopping_Cart (itemCode, userId, number) values <foreach collection="list" item="item" index="index" separator=","> (#{item.itemCode},#{item.userId},# ...
Java - 一个接口多个实现时
一、(Spring)项目 一个接口多个实现,指定实现类目的:一个接口多个实现时,根据不同的条件调用不用的实现
1、有如下接口
123public interface Pay { public Object pay(Map<String,Object> map);}
2、有如下两个实现
实现一:
1234567@Service("weixinPay")public class WeixinPay implements Pay{ @Override public Object pay(Map<String, Object> map){ return "weixinpay"; }}
实现二:
1234567@Service("aliPay")public class AliPay implements Pay{ @Override public Object pay(Map<String, ...
Java - 微服务代码生成
代码生成大部分项目里其实有很多代码都是重复的,几乎每个基础模块的代码都有增删改查的功能,而这些功能都是大同小异, 如果这些功能都要自己去写,将会大大浪费我们的精力降低效率。所以这种重复性的代码可以使用代码生成。
提示关于代码生成使用流程
1、修改代码生成配置单应用编辑resources目录下的application.yml多模块编辑ruoyi-generator中的resources目录下的generator.ymlauthor: # 开发者姓名,生成到类注释上packageName: # 默认生成包路径autoRemovePre: # 是否自动去除表前缀tablePrefix: # 表前缀
2、新建数据库表结构(单表)1234567891011drop table if exists sys_student;create table sys_student ( student_id int(11) auto_increment comment '编号', student_name varchar(30) ...
Linux - Linux命令行 光标移动技巧等
看一个真正的专家操作命令行绝对是一种很好的体验-光标在单词之间来回穿梭,命令行不同的滚动。在这里强烈建立适应GUI节目的开发者尝试一下在提示符下面工作。但是事情也不是那么简单,还是需要知道“如何去做”。
Ctrl组合在单词之间跳转,使用Ctrl+左右键。Ctrl+a跳到本行的行首Ctrl+e则跳到页尾Ctrl+u删除当前光标前面的文字ctrl+k-删除当前光标后面的文字Ctrl+w和Alt+d - 对于当前的单词进行删除操作,w删除光标前面的单词的字符,d则删除后面的字符ctrl+a:光标移到行首ctrl+b:光标左移一个字母ctrl+c:杀死当前进程ctrl+d:退出当前 Shellctrl+e:光标移到行尾ctrl+h:删除光标前一个字符,同 backspace 键相同ctrl+k:清除光标后至行尾的内容ctrl+l:清屏,相当于clearctrl+r:搜索之前打过的命令。会有一个提示,根据你输入的关键字进行搜索bash的historyctrl+u: 清除光标前至行首间的所有内容ctrl+w: 移除光标前的一个单词ctrl+t: 交换光标位置前的两个字符ctrl+y: 粘贴或者恢复 ...
MinIO - MinIO上传文件错误解决办法(Linux)
minio上传下载文件失败:错误消息:
1The difference between the request time and the server's time is too large.
原因:linux服务器时区的问题。
解决方案:一、查看系统时间、硬件时间
121.# date // 查看系统时间2.# hwclock // 查看硬件时间
二、时间服务器上的时间同步的方法 安装ntpdate工具
11.# yum -y install ntp ntpdate
设置系统时间与网络时间同步
12.# ntpdate cn.pool.ntp.org
将系统时间写入硬件时间
13.# hwclock --systohc
Git - Git个人学习记录手册
本篇教程是自己学习Git记录的本篇教程不会介绍Git背景以及一些专业知识,毕竟本人时间有限哈哈哈!如果喜欢教程就评论下或者把站点添加到你宝贵的收藏夹里面吧
一、安装Git 本人是MacOS系统这里只是演示一下,如Linux 、windows 请自行查阅资料 我这里就不展开了哈。
通过homebrew安装Git
未安装homebrew,需安装homebrew1/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装git1brew install git
安装完成后还需要进一步设置,打开你的终端输入:12git config --global user.name "Your Name"git config --global user.email "email@example.com"
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也 ...
Docker安装Gitlab-runner
拉取镜像1docker pull gitlab/gitlab-runner:latest
创建挂载目录1mkdir -p /opt/gitlab-runner/config
启动容器1docker run -d --name gitlab-runner --restart always -v /opt/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest
进入runner容器,注册到gitlab上
汇总操作命令:1234567891011docker exec -it gitlab-runner gitlab-runner register -n \ --url http://192.168.0.253:8090 \ --registration-token tyXBwC8frbShS4yn3nE5 \ # token需要根据实际情况进行修改 --tag-list=dockersock,docker \ - ...