- 博客(80)
- 资源 (2)
- 收藏
- 关注
原创 Mysql使用WITH RECURSIVE查询树结构
一个查询是能使用一个WITH RECURSIVE,当需要一个sql同时查出节点的上下级节点时,需要值标记一下这条记录是否需要子节点或父节点,使用prev来标记需要父节点,使用sub来标记需要子节点。使用mysql的 WITH RECURSIVE 创建一个递归查询。查询过程中将cte_name当做一张表来处理。数据库中一张表存放树结构。
2025-01-07 18:55:13
353
原创 kettle列转行(行扁平化)的使用
kettle行扁平化节点是将多行数据合并为一行数据如,其行为类似于css中的float排列。需要注意数据需要按照name category排序,并且中间不能有缺失的数据。使用行扁平化节点配置需要扁平化的字段,扁平化后转为多少字段。将上表格数据转换为下表格数据。上表数据需要补上两条数据。
2024-06-07 18:07:07
629
原创 Cesium 地图覆盖物事件注册封装
mouseover和mouseout事件注册同一个InputAction MOUSE_MOVE,在回调中获取鼠标指针上的覆盖物,触发mouseover事件,此时标记当前移入的覆盖物,如果下次MOUSE_MOVE事件未获取到该鼠标指针上的覆盖物,则触发mouseout事件。Cesium中的事件监听支持的类型与前端主流的事件有差别(没有mouseover,mouseout等事件),封装一个较为通用的事件管理器。一个的map,用于保存注册事件的覆盖物。基于Cesium版本1.95。
2024-03-04 10:44:22
563
原创 kettle计算增长率
1.使用统计中的分析查询节点能在每一行中添加前后行的数据。读取一段时间内的数据记录,计算相邻记录的比率。2.使用计算器节点计算比率。
2024-02-23 18:23:07
443
原创 Cesium1.95地图使用UrlTemplateImageryProvider加载supermap rest服务报错问题
将url中的"&origin={‘x’:" + originx + “,‘y’:” + originy + "}"部分用customTag替换。将请求url 用encode方法编码,依然存在问题,应该是Cesium1.95地图强制将url中的{}解析为模板。使用Cesium1.65时能正常加载,升级为1.95后,获取图片的请求报400 Bad Request错误。查看错误请求发现url中传递的参数 origin={x:,y:} 包含了特殊字符 “{}”加载supermap的 rest服务。
2024-02-23 09:23:27
934
原创 java使用反射用父类对象生成子类对象
如果子类中有重写父类的方法,则调用setter时是子类重写的方法。mybatis自动生成基础类,使用继承扩展基础类。
2023-07-06 19:25:10
599
原创 springmvc中使用内部类做数据缓存
service中新建一个内部类用@Scope改变类的作用域,在用@Lookup注入,这样每次请求都能获取到新的Cache对象。springmvc自动注入的Service中保存一个全局变量,全局变量每一个请求对应一个新的变量。
2023-03-10 11:54:15
228
原创 基于webrtc浏览器截图
网页上某个元素截图,截图后需要显示浏览器提供的navigator.mediaDevices.getDisplayMedia方法可以实现录屏功能,我们将它投放到video标签中进行播放,然后截取其中的一帧。video标签放在最底层藏起来(display不能设none),计算目标元素的位置进行截图...
2022-06-24 18:19:17
2739
原创 MySql指定排序顺序
MySql指定排序顺序有时我们取数据的时候知道了,要取哪几条,然后想要按照给定的顺序取。可以使用filed函数来自定顺序。SELECT *FROM AWHERE id IN (10997,10998,10999, 11000)ORDER BY FIELD ( id,10999,10998)注意如果field函数不包括某些id的话,这些记录将按照默认顺序排在前面,上例结果为 10997、11000、10999、10998...
2022-05-17 20:53:11
500
原创 echarts点击数据联动列表滚动到对应数据位置
点击echarts中的散点图,左侧列表滚动到对应数据位置。使用jquery的scrollTop方法,需要自己计算滚动的偏移距离。我的列表每列都是30px,dataIndex是点击的数据在echarts中的索引,要确定echarts和列表之间数据的对应关系,我这里使用同一组数据 this.chart.on('click', params => { $('#list').animate({scrollTop: params.dataIndex * 30}, 400);});...
2022-04-15 16:49:27
1095
原创 kettle数据脱敏
利用Janino计算Java表达式lxdh.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2")利用javascriptfunction noPassByName(str){ if(null != str && str != undefined){ if(str.length==2){ return str.substring(0,1)+'*' //截取name 字符串截取第一个字符,
2022-03-24 20:06:42
1670
1
原创 ztree隐藏无叶子节点的父节点
递归的方法遍历节点,计数有无子节点,无子节点直接隐藏hideNoLeafNode(ztreeObj.getNodes()[0])hideNoLeafNode: function (rootNode) { if (!rootNode.isParent) { return rootNode.isHidden ? 0 : 1; } var nodes = rootNode.children; if (!nodes ||
2022-03-14 19:45:23
1090
原创 kettle将多行转为一行,一行转多行处理技巧
kettle中记录是一条一条处理的,每条记录是独立的,如果需要对记录分组进行处理的话会很麻烦。这里提供一种在数据库读入时将记录合并的方法,使用 GROUP_CONCAT将字段拼接,然后在script中解析处理SELECT GROUP_CONCAT(id SEPARATOR ',') AS ids,GROUP_CONCAT(IFNULL(name,'NULL') SEPARATOR ',') AS namesFROM table1GROUP BY groupsidnamegroup
2022-03-07 10:45:32
3094
1
原创 js百度地图计算点与折线最短距离
百度地图Android SDk中的方法,用js重写,原理不懂,实际使用时感觉有明显误差,但误差可以接受。/** * * @param linesPoint 折线点列表 Point(lng,lat) * @param point 计算最短距离点 * @param map 百度地图实例,用于计算两点间距离 * @returns {{distance: number, point: (*)}} 最短距离,点 */function getNearestPointFromLine(linesPoin
2022-03-02 19:22:58
2409
原创 echarts饼图轮播效果
echarts饼图轮播效果echarts提供的dispatchAction方法可以控制饼图某一段“highlight”’高亮,或“downplay”取消高亮。利用定时器控制饼图循环高亮。循环好做,主要是鼠标移入饼图也会触发高亮导致冲突,显示效果出现问题。需要同时监听echarts的mouseover事件,鼠标移入做特殊处理。 var option; var ele = document.getElementById("chart"); echarts.d
2022-02-21 19:58:10
2068
原创 自定义jsp标签
需求一个古老的项目使用jsp页面,shiro进行权限控制(已开发权限管理系统)。现在App要开发H5页面。由于身份校验方式不同,App使用后台H5页面不走系统中的shiro权限校验逻辑。现在想要使用当前shiro权限配置系统去配置App页面。现在可以通过静态方法获取用户的当前用户所拥有的权限代码。我们可以自定义一个jsp标签去控制权限实现准备一个java静态方法,输入权限字符串,输出true / falsepublic class ShiroUtil { public static Boole
2022-01-26 17:32:01
243
原创 Android 使用注解根据后台传入的权限列表控制显示
后台传入一个字符串数组,表示该用户拥有的权限,根据权限控制是否显示某个控件。String[] permissions = {"show_layout1"};新建注解RequirePermission@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.FIELD)public @interface RequirePermission { String permission() default "";}在activity中给la
2022-01-20 15:04:55
2221
原创 Android webview H5页面input选择文件传递参数
Android中webview对input选择文件支持不是很好,通过重写onShowFileChooser方法然后返回选中文件的Uri来实现。但是在实际开发中常常遇到需要不同input做不同动作。比如我想实现选择图片的功能,其中包含三种不同状态:打开文件选择器选择图片直接打开相机拍照用户选择打开相机或选择图片onShowFileChooser方法只提供了一个webview对象,一个ValueCallback回调,以及FileChooserParams(提供少量的信息)。我们怎么区分这些情况
2022-01-10 19:34:43
3344
5
原创 vuedraggable两个列表拖动,当其中一个列表为空时,无法从另一个列表拖入
问题原因查看页面html文件,我发现他把transition-group标签转成了一个span标签,宽高还是0。当一边的列表为空时,我试图把另一个列表中的列表项拖入空列表正常位置时,无法拖入。但是当我把列表项拖到span标签的位置时,可以拖入。问题就出在这个span上,span是拖动的目标。我们需要给他一个宽高解决方案给transition-group标签设置宽高style(因为转成的span标签为行内元素,要加上display: inline-block才能设置宽高)<transiti
2021-12-02 20:28:49
1122
1
原创 百度地图框选时,在地图外松开鼠标报错
3d地图下引入框选插件DrawingManager.js,当拖动鼠标,鼠标移出地图外,松开鼠标后报错,地图中框无法删除。报错信息:DrawingManager.js:1552 Uncaught TypeError: Cannot read properties of undefined (reading 'lng') at getRectAllPoints (DrawingManager.js:1552) at HTMLDocument.endAction (DrawingManager
2021-12-02 19:51:31
1005
原创 多层iframe嵌套之间的函数调用
ruoyi中tab、弹窗是以iframe的形式添加到页面上的,这样想要实现类似广播的逻辑,一个iframe可以通知其他iframe做一些操作。iframe是有自己的window对象的,被调用的iframe
2021-11-10 14:22:41
1139
原创 android SQLite helper的onCreate和onUpgrade不调用
今天写sqlite更新,发现无论升级版本号还是卸载app重装,onUpgrade都不调用,甚至连onCreate都不调用。后来发现是我的写法有问题。我建了一个基类来放数据库名和版本号,然后子类各自连接数据库class BaseDao{ static final String dbName = "test_db"; static final int version = 1;}class TestDao extends BaseDao{ class TestHelper extends SQLi
2021-10-19 21:08:22
1220
2
原创 Fragment嵌套Fragment时 onActivityResult回调问题
问题描述在Activity中启动FragmentA,FragmentA嵌套FragmentB,在FragmentB中startActivityForResult,返回时FragmentA的onActivityResult并没有被调用,而调用了Activity中的onActivityResult。解决方案问题出在的FragmentManager上,从Activity中启动FragmentA是调用的Activity中的getFragmentManager,他获取到的是Activity的FragmentMa
2021-09-26 19:33:16
382
原创 SQL 带条件的聚合函数
今天遇到一个问题,我需要count带条件的两组数据,这样无法使用where语句进行条件判断select count(a = 1), count(b = 1) from table1 group by ccount(true) 和count (false)都会使计数加一,只有count(null)才不会使计数加一。这样利用case来区分count(1)和count(null)。select count(case a when 1 then 1 else null end) from table1 gr
2021-09-06 20:04:37
1955
2
原创 thymeleaf抽取公共html控件复用问题
有时我们需要将html中多次出现的代码抽取出来,使用include进行复用。<th:block th:include="xxx :: xxx" /><div th:fragment="xxx"> <div onclick="testClick()"></div> <script> function testClick(){ ... } </script></div>组件不可避免的需要包括一些方
2021-08-18 16:09:13
262
原创 okhttp下载文件设置进度监听
okhttp下载文件设置进度监听仿照上传写一个responseBodyokhttp下载文件监听与上传文件监听原理类似,上传通过requestBody的writeTo将报文发出。下载就是通过responseBody的source方法将报文接收。仿照上传写一个responseBodypublic class ProgressResponseBody extends ResponseBody { ... @Override public MediaType contentType() {
2021-07-15 19:47:32
1964
原创 java 内存分配与GC策略
java 内存分配与GC策略内存分配新生代老年代空间分配担保参考 《深入理解Java虚拟机_JVM高级特性与最佳实践》内存分配堆内存分为新生代层和老年代层,新生代层中放 最新分配内存的对象,这些对象中标记存活时间(GC触发时间增长),当时间增长到一定程度(默认15)或达到其它某些条件就将新生代中的对象转入老年代中。这样将常用的对象与临时的对象分离,减少对常用对象的GC操作,提高效率。新生代新生代层内存分为eden区和survivor区。eden区用来存放最新分配的对象,新生代层经历了GC(Min
2021-07-12 19:44:15
301
原创 Android 计时工具
Android 计时工具封装了一下timer实现方式public class Chronoscope { private Timer timer; private TimerTask timerTask; private int hour = 0; private int min = 0; private int sec = 0; public Chronoscope(final ChronoscopeCallback callback) {
2021-07-01 19:24:34
152
原创 Android Studio引入依赖成功,代码报红
问题描述今天引入okhttp3的依赖,从官网上考的implementation(“com.squareup.okhttp3:okhttp:4.9.0”)sync之后,依赖包成功下载,但是使用时无法自动import包。手动import也找不到包,使用OkHttp代码报红。但是编译打包没问题。注释掉sync后在加回来再sync,没用清Android Studio缓存,没用重启电脑,也没用解决方案将okhttp版本降低implementation(“com.squareup.okhttp3:ok
2021-06-15 19:10:12
1609
原创 vue模板插值失效问题
用vue的模板插值,出现修改data值页面不变的问题<button @click="click">{{btnText}}</button>...data:{ btnText:'按钮'},method:{ click:function(){ $('button').ladda().start();//启动特效(瞎写的) }}由于我使用了ladda按钮特效,导致改变btnText结果页面显示不响应。猜测原因是,ladda特效修改覆盖了button的一些事件
2021-05-27 19:38:15
2947
原创 js 将小数转为科学记数法
js 将小数转为科学记数法例如将数字0.00342331转化为3.42331×10^-3的方式展示先用toExponential方法把数字转为科学记数法的字符串,在用正则表达式将小数部分与10的几次幂分离 /** * 0.00342331转为3.42331×10^-3 * 转科学记数法 * @param num 0.00342331 * @returns [3.42331,-3] */ function toScientificNum(n
2021-05-19 19:37:43
1617
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人